Установка Apache ActiveMQ на Ubuntu 20.04
Введение
Apache ActiveMQ — это свободный, открытый брокер сообщений на Java от Apache Foundation. Он поддерживает протоколы STOMP, JMS и OpenWire и позволяет обмениваться сообщениями между разными приложениями. Эта инструкция покажет пошагово, как установить ActiveMQ на Ubuntu 20.04 и запустить веб‑интерфейс администратора.
Важно: пример использует версию 5.16.0, указанную в оригинале. При необходимости можно скачать более новую версию с официального архива Apache.
Требования
- Сервер с Ubuntu 20.04.
- Доступ к учетной записи с правами root или sudo.
Установка Java
ActiveMQ работает на Java, поэтому на сервере должен быть установлен JDK и JRE. Установите OpenJDK 11 командой:
apt-get install openjdk-11-jdk openjdk-11-jre -yПроверьте версию Java:
java -versionОжидаемый пример вывода (может отличаться по сборке):
openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)Если Java не найдена, проверьте переменные окружения PATH и JAVA_HOME или повторите установку пакета.
Скачивание и распаковка ActiveMQ
На момент написания используется ActiveMQ 5.16.0. Скачайте архив:
wget https://downloads.apache.org//activemq/5.16.0/apache-activemq-5.16.0-bin.tar.gzРаспакуйте:
tar -xvzf apache-activemq-5.16.0-bin.tar.gzПереместите распакованную директорию в /opt:
mv apache-activemq-5.16.0 /opt/activemqСоздание пользователя и прав
Создайте системную группу и пользователя для запуска ActiveMQ и назначьте владельца каталога:
addgroup --quiet --system activemq
adduser --quiet --system --ingroup activemq --no-create-home --disabled-password activemq
chown -R activemq:activemq /opt/activemqЭти шаги помогают ограничить права процесса и снизить риски безопасности.
Создание systemd-сервиса для ActiveMQ
Создайте файл службы:
nano /etc/systemd/system/activemq.serviceДобавьте в него следующие строки:
[Unit]
Description=Apache ActiveMQ
After=network.target
[Service]
Type=forking
User=activemq
Group=activemq
ExecStart=/opt/activemq/bin/activemq start
ExecStop=/opt/activemq/bin/activemq stop
[Install]
WantedBy=multi-user.targetСохраните файл и перезагрузите демон systemd:
systemctl daemon-reloadЗапустите службу и включите автозапуск:
systemctl start activemq
systemctl enable activemqПроверьте статус сервиса:
systemctl status activemqПример вывода статуса (усечённый):
? activemq.service - Apache ActiveMQ
Loaded: loaded (/etc/systemd/system/activemq.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2020-08-01 11:43:25 UTC; 22s ago
Process: 31092 ExecStart=/opt/activemq/bin/activemq start (code=exited, status=0/SUCCESS)
Main PID: 31165 (java)
Tasks: 49 (limit: 2353)
Memory: 190.5M
CGroup: /system.slice/activemq.service
??31165 /usr/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/ac>
Aug 01 11:43:25 ubuntu2004 systemd[1]: Starting Apache ActiveMQ...
Aug 01 11:43:25 ubuntu2004 activemq[31092]: INFO: Loading '/opt/activemq//bin/env'
Aug 01 11:43:25 ubuntu2004 activemq[31092]: INFO: Using java '/usr/bin/java'
Aug 01 11:43:25 ubuntu2004 activemq[31092]: INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get deta>
Aug 01 11:43:25 ubuntu2004 activemq[31164]: INFO: pidfile created : '/opt/activemq//data/activemq.pid' (pid '31165')
Aug 01 11:43:25 ubuntu2004 systemd[1]: Started Apache ActiveMQ.После этого ActiveMQ должен работать и слушать порт 8161 по умолчанию.
Доступ к веб-интерфейсу Apache ActiveMQ
По умолчанию веб-интерфейс привязан к localhost. Чтобы разрешить удалённый доступ, отредактируйте файл конфигурации Jetty:
nano /opt/activemq/conf/jetty.xmlНайдите строку:
Замените её на IP вашего сервера:
Перезапустите службу:
systemctl restart activemqОткройте в браузере http://your-server-ip:8161/admin. При запросе логина укажите стандартные учётные данные admin / admin.


Важно: после первоначального запуска обязательно поменяйте учётные данные и ограничьте доступ к панели администратора.
Настройка брандмауэра
Откройте порт 8161 только для доверенных хостов. Пример для UFW (разрешить только с IP 203.0.113.10):
ufw allow from 203.0.113.10 to any port 8161 proto tcp
ufw reloadЕсли требуется доступ из любой сети (не рекомендуется), используйте:
ufw allow 8161/tcpБазовая отладка и распространённые проблемы
- Сервис не запускается: проверьте логи в /opt/activemq/data/ и журнал systemd: systemctl status activemq и journalctl -u activemq.
- Java не обнаружена: убедитесь, что /usr/bin/java существует и права корректны.
- Порт 8161 уже занят: проверьте netstat или ss (ss -ltnp | grep 8161).
- Проблемы с правами: убедитесь, что каталог /opt/activemq принадлежит пользователю activemq.
Рекомендуемые меры безопасности
- Смените стандартный логин/пароль admin сразу после установки.
- Ограничьте доступ к /admin по IP или через обратный прокси (nginx) с аутентификацией.
- Рассмотрите включение TLS для транспортов и веб-интерфейса в production.
- Запускайте ActiveMQ под выделенным непривилегированным пользователем (как в инструкции).
Роль‑ориентированный чеклист перед вводом в эксплуатацию
Администратор:
- Проверил systemd-сервис и автозапуск.
- Настроил ротацию и хранение логов.
Разработчик:
- Отладил отправку/получение сообщений через JMS/STOMP.
- Проверил сериализацию сообщений и совместимость протоколов.
DevOps:
- Настроил мониторинг процессов и доступности порта 8161.
- Настроил резервное копирование конфигураций и данных брокера.
Безопасность:
- Сменил учётные записи по умолчанию.
- Ограничил доступ по IP и включил TLS там, где возможно.
Мини‑методология проверки работоспособности
- Убедиться, что сервис active (systemctl status activemq).
- Проверить, что порт 8161 слушается (ss -ltnp | grep 8161).
- Открыть веб‑интерфейс и пройти аутентификацию.
- Отправить тестовое сообщение из консоли клиента и подтвердить приём.
Критерии приёмки
- Служба ActiveMQ запущена и находится в состоянии active (running).
- Веб‑интерфейс доступен по адресу http://your-server-ip:8161/admin и проходит аутентификация.
- Порт 8161 доступен только для разрешённых хостов (по политике брандмауэра).
- Логи не содержат критических ошибок при старте брокера.
Глоссарий (в одну строку)
JMS — Java Messaging Service, STOMP — простое текстовое протокольное API для обмена сообщениями, OpenWire — бинарный протокол обмена сообщениями, используемый ActiveMQ.
Заключение
Вы успешно установили Apache ActiveMQ на Ubuntu 20.04 и настроили базовую конфигурацию для удалённого доступа. Следующие шаги: заменить стандартные учётные данные, настроить TLS при необходимости, подключить мониторинг и протестировать обмен сообщениями с реальными приложениями.
Краткая проверка: убедитесь, что systemctl status activemq показывает active, порт 8161 слушается, и вы вошли в веб‑интерфейс под новым администратором.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента