Гид по технологиям

Установка Apache ActiveMQ на Debian 10 (Buster)

• 6 min read • DevOps • Обновлено 24 Nov 2025
Установка Apache ActiveMQ на Debian 10
Установка Apache ActiveMQ на Debian 10

Логотип или иллюстрация Apache ActiveMQ

Apache ActiveMQ — это открытый брокер сообщений на Java от Apache. Он поддерживает несколько протоколов (AMQP, STOMP, MQTT, JMS) и позволяет интегрировать приложения на разных языках (C, C++, Python, .NET и др.). В этом пошаговом руководстве показано, как установить ActiveMQ из официального бинарного архива на Debian 10 (Buster), настроить его как systemd-сервис и включить зашифрованную аутентификацию для веб-консоли.

Важно: термин “брокер сообщений” — это сервер, который получает, хранит и пересылает сообщения между приложениями.

Что потребуется

  • Сервер с Debian 10 (Buster) — 2 ГБ ОЗУ, 50 ГБ свободного места, 2 CPU (минимальные рекомендуемые параметры для тестовой среды).
  • Доступ root или привилегии sudo.
  • Подключение к интернету для загрузки пакетов и архивов.

Что мы сделаем

  • Установим Java (OpenJDK 11)
  • Скачивание и установка Apache ActiveMQ 5.15.12
  • Настройка systemd-сервиса для автозапуска
  • Настройка зашифрованного пароля для веб-консоли
  • Тестирование доступа и базовая проверка работоспособности

Критерии приёмки

  • Сервис systemd запускается и активен: systemctl status activemq
  • Веб-консоль доступна по порту 8161 и требует аутентификацию
  • Учетная запись admin хранит зашифрованный пароль в jetty-realm.properties

Шаг 1 — Установка Java на Debian 10

Сначала установим OpenJDK (JDK и JRE) из репозитория Debian.

sudo apt update
sudo apt install default-jdk default-jre

Проверка версии Java:

java -version

Пример ожидаемого вывода (OpenJDK 11):

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode, sharing)

Теперь на системе установлен OpenJDK 11.

Шаг 2 — Скачивание и установка Apache ActiveMQ

Создадим системного пользователя для запуска ActiveMQ и загрузим бинарный архив 5.15.12.

adduser --system --no-create-home --disabled-login --group activemq

Загрузка и распаковка (версия из исходного руководства — 5.15.12):

wget --quiet http://www-us.apache.org/dist/activemq/5.15.12/apache-activemq-5.15.12-bin.tar.gz
tar -xf apache-activemq-5.15.12-bin.tar.gz

Переместим директорию в /opt/activemq и назначим владельца:

mv apache-activemq-*/ /opt/activemq
sudo chown -R activemq:activemq /opt/activemq

В результате ActiveMQ установлен в /opt/activemq.

Распакованный архив Apache ActiveMQ в каталоге /opt/activemq

Шаг 3 — Настройка systemd-сервиса для ActiveMQ

Создадим systemd unit-файл, чтобы служба автоматически запускалась и управлялась через systemctl.

cd /etc/systemd/system/
vim activemq.service

Вставьте конфигурацию:

[Unit]
Description=Apache ActiveMQ
After=network.target

[Service]
Type=forking
WorkingDirectory=/opt/activemq/bin
ExecStart=/opt/activemq/bin/activemq start
ExecStop=/opt/activemq/bin/activemq stop
Restart=on-abort
User=activemq
Group=activemq

[Install]
WantedBy=multi-user.target

Сохраните файл и выполните:

systemctl daemon-reload
systemctl start activemq
systemctl enable activemq

Запуск ActiveMQ через systemd и статус службы

Проверка статуса:

systemctl status activemq

ActiveMQ запущен и доступен в systemd

Шаг 4 — Настройка зашифрованного пароля для веб-консоли

По умолчанию логины и пароли для веб-консоли ActiveMQ хранятся в виде простого текста в файле jetty-realm.properties. Мы заменим пароль администратора на зашифрованный CRYPT-пароль.

  1. Скачайте дистрибутив Jetty и распакуйте:
wget --quiet https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.28.v20200408/jetty-distribution-9.4.28.v20200408.tar.gz
tar -xf jetty-distribution-*.tar.gz
cd jetty-distribution-*/
  1. Сгенерируйте зашифрованный пароль. Замените salt и password на собственные значения:
java -cp lib/jetty-util-9*.jar org.eclipse.jetty.util.security.Password salt password

Пример вывода генератора (в примере справа показаны возможные форматы):

2020-04-29 07:15:22.367:INFO::main: Logging initialized @194ms to org.eclipse.jetty.util.log.StdErrLog
mypassword
OBF:1uh41zly1x8g1vu11ym71ym71vv91x8e1zlk1ugm
MD5:34819d7beeabb9260a5c854bc85b3e44
CRYPT:myylAylKPNtmw

Скопируйте значение CRYPT:… — оно понадобится в следующем шаге.

  1. Откройте файл конфигурации ActiveMQ и замените пароль admin:
cd /opt/activemq/conf/
vim jetty-realm.properties

Пример содержимого после правки:

admin: CRYPT:myylAylKPNtmw, admin
user: user, user
  1. Перезапустите службу, чтобы применить изменения:
systemctl restart activemq

Процесс генерации зашифрованного пароля и внесение в jetty-realm.properties

Теперь веб-консоль будет требовать логин/пароль и хранить пароль администратора в зашифрованном виде.

Шаг 5 — Тестирование доступа и базовая проверка

Откройте браузер и перейдите по адресу (замените serverip на IP вашего сервера):

http://serverip:8161/

Вы должны увидеть индексную страницу ActiveMQ.

Индексная страница Apache ActiveMQ

Административная панель доступна по пути /admin:

http://serverip:8161/admin

Вас попросят ввести логин/пароль. Введите admin и сгенерированный CRYPT-пароль. После успешной аутентификации откроется дашборд ActiveMQ.

Страница входа в Apache ActiveMQ

Дашборд Apache ActiveMQ

Поздравляем — установка и базовая настройка завершены.

Чек-лист ролей (админ / девопс / разработчик)

  • Администратор:
    • Проверить systemctl status activemq
    • Настроить бэкап конфигов /opt/activemq/conf
    • Ограничить доступ по firewall к порту 8161
  • DevOps:
    • Настроить мониторинг (лог-файлы, диск, heap)
    • Автоматизировать обновления и разворачивание версии
  • Разработчик:
    • Проверить подключение по нужному протоколу (JMS, AMQP, STOMP, MQTT)
    • Запустить простое приложение-производитель и потребитель для теста

Мини-методология для продакшен-развёртывания

  1. Подготовка окружения: отдельная VM/контейнер, отдельный пользователь activemq.
  2. Тестовая инсталляция на staging с теми же версиями Java и ActiveMQ.
  3. Настройка бэкапов конфигураций и данных (если используется persistence).
  4. Настройка TLS для соединений и авторизации клиентов.
  5. Мониторинг метрик memory/queue-depth/throughput.
  6. Плавный rollout в продакшен с проверкой SLO.

Альтернативные подходы и когда это не подходит

  • Docker-контейнер: проще для CI/CD и изоляции. Полезно, если вы используете контейнерную платформу.
  • Пакет через менеджер (APT/ сторонние репозитории): может упростить обновления, но не всегда содержит последнюю версию.
  • Когда не использовать ActiveMQ: для сверхвысокой нагрузки и распределённости лучше рассмотреть Kafka или RabbitMQ в зависимости от требований к задержке и хранению сообщений.

Типичные проблемы и способы устранения

  • Служба не стартует: проверить логи /opt/activemq/data/ и journalctl -u activemq. Частая причина — неверная версия Java или права доступа к файлам.
  • Веб-консоль недоступна: проверить firewall (порт 8161), systemctl status, слушает ли процесс порт (ss -ltnp | grep 8161).
  • Пароль не принимается: убедитесь, что в jetty-realm.properties использован корректный префикс CRYPT: и файл сохранён в кодировке UTF-8.

Откат изменений / Runbook при инциденте

  1. Отключите доступ (firewall block) к порту 8161, чтобы предотвратить дальнейшие попытки входа.
  2. Остановите службу: systemctl stop activemq
  3. Восстановите предыдущую копию /opt/activemq/conf из бэкапа.
  4. Перезапустите службу: systemctl start activemq
  5. Проверка: логин в веб-консоль, status, проверка очередей.

Критерии приёмки (тесты)

  • systemctl status activemq показывает Active: active (running)
  • Порт 8161 слушается и возвращает index.html
  • /admin требует аутентификацию и пускает admin с CRYPT-паролем
  • Простая Java-программа-производитель может доставить сообщение в очередь и потребитель его читает

Короткий cheat-sheet — часто используемые команды

  • Установка Java: sudo apt install default-jdk default-jre
  • Старт/стоп службы: systemctl {start|stop|restart|status} activemq
  • Логи systemd: journalctl -u activemq -f
  • Проверка порта: ss -ltnp | grep 8161
  • Редактирование конфигурации: vim /opt/activemq/conf/jetty-realm.properties

Безопасность и соответствие

  • Всегда шифруйте пароли (CRYPTO/OBF/MD5 возможны в Jetty). CRYPT предпочтительнее для хранения.
  • Ограничьте доступ к порту 8161 через firewall или обратный прокси (nginx) с TLS.
  • Если обрабатываете персональные данные, убедитесь, что передача по сети осуществляется по TLS и хранение данных соответствует требованиям конфиденциальности.

Быстрые рекомендации по производительности

  • Для тестовой среды 2 ГБ ОЗУ достаточно. Для продакшена увеличьте память JVM и настройте garbage collector.
  • Мониторьте queue depth и latency; при выявлении узких мест рассмотрите кластеризацию или миграцию на специализированные системы (Kafka).

Примеры сценариев отказа (когда подход не годится)

  • Высокая потребность в последовательной доставке миллиона сообщений в минуту — ActiveMQ классический режим может не обеспечить требуемой пропускной способности; стоит протестировать и, при необходимости, рассмотреть другие решения.

Ресурсы для дальнейшего чтения

  • Официальная документация Apache ActiveMQ — сайт Apache
  • Руководства по безопасности Jetty и шифрованию паролей

Итог

Установка ActiveMQ из бинарного архива на Debian 10 проста и подходит для тестовых и мелких продакшен-сценариев. В руководстве показано, как настроить service, зашифровать пароль веб-консоли и выполнить базовое тестирование. Для серьёзных нагрузок или строгих требований к хранению и доставке сообщений подготовьте отдельную стратегию масштабирования и мониторинга.

Important: Перед эксплуатацией в продакшене настройте TLS, бэкапы конфигураций и мониторинг сервисов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро