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

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.

Шаг 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
Проверка статуса:
systemctl status activemq
Шаг 4 — Настройка зашифрованного пароля для веб-консоли
По умолчанию логины и пароли для веб-консоли ActiveMQ хранятся в виде простого текста в файле jetty-realm.properties. Мы заменим пароль администратора на зашифрованный CRYPT-пароль.
- Скачайте дистрибутив 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-*/- Сгенерируйте зашифрованный пароль. Замените 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:… — оно понадобится в следующем шаге.
- Откройте файл конфигурации ActiveMQ и замените пароль admin:
cd /opt/activemq/conf/
vim jetty-realm.propertiesПример содержимого после правки:
admin: CRYPT:myylAylKPNtmw, admin
user: user, user- Перезапустите службу, чтобы применить изменения:
systemctl restart activemq
Теперь веб-консоль будет требовать логин/пароль и хранить пароль администратора в зашифрованном виде.
Шаг 5 — Тестирование доступа и базовая проверка
Откройте браузер и перейдите по адресу (замените serverip на IP вашего сервера):
Вы должны увидеть индексную страницу ActiveMQ.

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


Поздравляем — установка и базовая настройка завершены.
Чек-лист ролей (админ / девопс / разработчик)
- Администратор:
- Проверить systemctl status activemq
- Настроить бэкап конфигов /opt/activemq/conf
- Ограничить доступ по firewall к порту 8161
- DevOps:
- Настроить мониторинг (лог-файлы, диск, heap)
- Автоматизировать обновления и разворачивание версии
- Разработчик:
- Проверить подключение по нужному протоколу (JMS, AMQP, STOMP, MQTT)
- Запустить простое приложение-производитель и потребитель для теста
Мини-методология для продакшен-развёртывания
- Подготовка окружения: отдельная VM/контейнер, отдельный пользователь activemq.
- Тестовая инсталляция на staging с теми же версиями Java и ActiveMQ.
- Настройка бэкапов конфигураций и данных (если используется persistence).
- Настройка TLS для соединений и авторизации клиентов.
- Мониторинг метрик memory/queue-depth/throughput.
- Плавный 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 при инциденте
- Отключите доступ (firewall block) к порту 8161, чтобы предотвратить дальнейшие попытки входа.
- Остановите службу: systemctl stop activemq
- Восстановите предыдущую копию /opt/activemq/conf из бэкапа.
- Перезапустите службу: systemctl start activemq
- Проверка: логин в веб-консоль, 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, бэкапы конфигураций и мониторинг сервисов.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента