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

Установка Apache ActiveMQ на Debian 11

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

Введение

Логотип Apache ActiveMQ и схема взаимодействия брокера сообщений

Apache ActiveMQ — это свободный брокер сообщений с открытым исходным кодом от Apache Software Foundation. Поддерживает несколько протоколов (AMQP, MQTT, STOMP, OpenWire), написан на Java и совместим с JMS 1.1. ActiveMQ подходит для интеграции микросервисов, очередей задач и межсерверного обмена сообщениями.

Короткие определения терминов:

  • JMS — Java Message Service, стандарт API для обмена сообщениями в Java.
  • JVM — Java Virtual Machine, среда выполнения Java.
  • systemd — система инициализации и менеджер сервисов в современных Linux.

Цели этой инструкции

  • Установить OpenJDK 11 и настроить JAVA_HOME.
  • Установить Apache ActiveMQ Classic в /opt/activemq.
  • Создать системную службу systemd, запустить и включить автозапуск.
  • Настроить веб-консоль Jetty и базовую безопасность.

Требования

  • Сервер с Debian 11.
  • Непривилегированный пользователь с sudo-права.
  • Доступ в интернет для загрузки пакетов и архива ActiveMQ.

Шаг 1. Установка OpenJDK и JRE

ActiveMQ требует Java (минимум JRE 1.8), в этом руководстве мы используем OpenJDK 11 из репозиториев Debian.

Обновите список пакетов:

sudo apt update

Установите OpenJDK и JRE:

sudo apt install default-jdk default-jre

Введите Y для подтверждения и нажмите Enter.

Скриншот установки OpenJDK и JRE на Debian 11

Проверьте установленную версию Java:

java -version

Ожидаемый результат: OpenJDK 11.x.

Шаг 2. Настройка JAVA_HOME

ActiveMQ ожидает корректно настроенную переменную окружения JAVA_HOME указывающую на каталог JVM, обычно /usr/lib/jvm/java-11-openjdk-amd64.

Добавьте экспорт в файл пользователя (~/.bashrc):

echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" >> ~/.bashrc

Примените изменения:

source ~/.bashrc

Проверьте переменную:

echo $JAVA_HOME

Должен выводиться путь /usr/lib/jvm/java-11-openjdk-amd64.

Скриншот подтверждения переменной JAVA_HOME

Шаг 3. Загрузка и распаковка Apache ActiveMQ

В этом примере используется ActiveMQ Classic 5.17.1. Перед началом проверьте актуальную версию на сайте проекта.

Скачайте архив:

wget https://dlcdn.apache.org//activemq/5.17.1/apache-activemq-5.17.1-bin.tar.gz

Распакуйте архив:

tar -xzvf apache-activemq-5.17.1-bin.tar.gz

Переместите каталог в /opt/activemq:

sudo mv apache-activemq-5.17.1 /opt/activemq

Создайте системного пользователя и группу activemq:

sudo useradd -d /opt/activemq -r -s /bin/false -U activemq

Установите владельца каталога на activemq:

sudo chown -R activemq:activemq /opt/activemq/

Проверьте содержимое:

ls -lah /opt/activemq

Скриншот директории /opt/activemq с владельцем activemq

Шаг 4. Создание systemd-сервиса для ActiveMQ

Создайте файл службы /etc/systemd/system/activemq.service:

sudo 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 и включите службу:

sudo systemctl daemon-reload
sudo systemctl enable activemq
sudo systemctl start activemq

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

sudo systemctl status activemq

Ожидайте строку вроде “Started Apache ActiveMQ” в логах.

Скриншот сервиса activemq в systemctl, статус running

Шаг 5. Веб-консоль ActiveMQ (Jetty)

По умолчанию веб-консоль доступна на localhost:8161. Если вы устанавливаете на удалённый сервер, нужно изменить слушающий адрес в /opt/activemq/conf/jetty.xml.

Откройте файл:

sudo nano /opt/activemq/conf/jetty.xml

Найдите блок для WebConsolePort и измените host с 127.0.0.1 на IP сервера. Пример:

    


        
        
    

Перезапустите службу:

sudo systemctl restart activemq

Проверьте прослушиваемые порты:

ss -plnt

Откройте браузер: http://192.168.5.20:8161/

По умолчанию логин/пароль: admin/admin. Немедленно измените учётные данные и ограничьте доступ.

Скриншот входа в веб-консоль ActiveMQ, экран логина

Скриншот панели управления веб-консоли ActiveMQ

Короткая проверка работоспособности

  • Убедитесь, что сервис активен: sudo systemctl status activemq
  • Проверка портов: ss -plnt | grep 8161
  • Лог сервиса: sudo journalctl -u activemq –no-pager –since “5 minutes ago”

Стандартные порты ActiveMQ (факты)

  • 8161 — веб-консоль (HTTP)
  • 61616 — OpenWire (бинарный протокол ActiveMQ)
  • 5672 — AMQP
  • 1883 — MQTT
  • 61613 — STOMP

Учтите, что какие-то порты могут быть доступны только при соответствующей настройке конфигурационных файлов и брокера.

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

Важно не оставлять веб-консоль открытой в интернет с учётными данными по умолчанию.

Рекомендации:

  • Измените пароли в файле /opt/activemq/conf/jetty-realm.properties или настройте внешний источник аутентификации.
  • Откройте порты только через доверенные брандмауэры (ufw, iptables, cloud security groups).
  • Разверните обратный прокси (nginx) с TLS перед веб-консолью или используйте VPN.
  • Ограничьте доступ по IP/ACL к портам брокера.

Пример простого правила ufw (разрешить web-консоль только с вашей подсети 192.168.5.0/24):

sudo ufw allow from 192.168.5.0/24 to any port 8161 proto tcp
sudo ufw enable

Пример минимального конфигурационного сниппета nginx для обратного прокси с TLS (начальный пример — адаптируйте под вашу инфраструктуру):

server {
    listen 443 ssl;
    server_name activemq.example.com;

    ssl_certificate /etc/letsencrypt/live/activemq.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/activemq.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8161/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Резервное копирование и обновление

  • Резервируйте конфигурационные файлы: /opt/activemq/conf/*
  • Перед обновлением остановите службу: sudo systemctl stop activemq
  • Скопируйте /opt/activemq и бэкапите базы сообщений (если используются store/кластеры).
  • Для обновления: распакуйте новую версию и замените файлы, убедившись в сохранности конфигурации и прав доступа.

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

  • ActiveMQ Artemis — современная альтернатива, ориентированная на высокую производительность и масштабируемость.
  • RabbitMQ — хорош при использовании AMQP и обширного набора плагинов.
  • Kafka — оптимален для потоковой обработки больших объёмов данных, но архитектурно отличается (лог-брокер).

Выбор зависит от требований к задержке, гарантии доставки, упорядочиванию сообщений, экосистеме и операционной сложности.

Частые проблемы и способы их решения

  • Сервис не стартует: проверяйте логи journalctl -u activemq и файлы /opt/activemq/data/activemq.log.
  • Ошибка JAVA_HOME: проверьте, что переменная видна для пользователя activemq (можно добавить экспорт в /etc/default/activemq или systemd unit с Environment=).
  • Порт 8161 занят: найдите процесс ss -plnt и освободите порт или измените порт в jetty.xml.
  • Проблемы с правами: убедитесь, что владелец /opt/activemq — activemq и права доступа корректны.

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

  • ActiveMQ service active и running: sudo systemctl status activemq показывает Active: active (running).
  • Веб-консоль доступна только с указанных адресов и требует авторизации.
  • Переменная JAVA_HOME корректно указывает на JVM для пользователя, под которым запускается служба.
  • Минимальная проверка отправки и получения сообщений между producer и consumer пройдена.

Тесты и приёмочные сценарии

  1. Статус сервиса: systemctl is-active activemq → active.
  2. Прослушиваемые порты: ss -plnt | grep 8161 → показывает активный слушатель.
  3. Веб-консоль: успешный вход под изменённым админом.
  4. End-to-end: отправка тестового сообщения в очередь и получение его consumer.

Операционная памятка (короткий SOP)

  • Запустить: sudo systemctl start activemq
  • Остановить: sudo systemctl stop activemq
  • Перезапустить после изменения конфигурации: sudo systemctl restart activemq
  • Просмотреть логи за 100 последних строк: sudo journalctl -u activemq -n 100 –no-pager

Рекомендации по безопасности и соответствию приватности

  • Если через брокер передаётся персональная информация (PII), шифруйте трафик (TLS), храните логи согласно требованиям вашей политики защиты данных и ограничьте доступ.
  • Рассмотрите аудит и ротацию учётных данных, хранение секретов в менеджере секретов.

Краткое сравнение ActiveMQ Classic и Artemis

  • ActiveMQ Classic: прост в развертывании, широкая поддержка протоколов, зрелая экосистема.
  • ActiveMQ Artemis: лучше масштабируется и показывает более высокую производительность в сценариях высокой нагрузки.

Выбор: если нужна совместимость и простота — Classic; для высоких нагрузок и продвинутой масштабируемости — Artemis.

Рольные чек-листы

Администратор:

  • Установить Java и настроить JAVA_HOME.
  • Создать пользователя activemq и выставить права.
  • Настроить systemd unit и автозапуск.
  • Ограничить доступ к веб-консоли и сменить пароли.

Разработчик:

  • Проверить доступы к портам интеграции (AMQP/MQTT/STOMP).
  • Провести интеграционные тесты producer/consumer.

Оператор безопасности:

  • Настроить TLS, брандмауэры и аудит логов.
  • Проверить соответствие требованиям хранения данных.

Глоссарий (одно предложение на термин)

  • Broker — сервер, который получает, хранит и доставляет сообщения между отправителями и получателями.
  • Producer — компонент, публикующий сообщения в брокер.
  • Consumer — компонент, получающий сообщения из брокера.

Короткое руководство по откату

  1. Остановите сервис: sudo systemctl stop activemq
  2. Верните сохранённый бэкап каталога /opt/activemq (например, /opt/activemq.bak → /opt/activemq).
  3. Восстановите владельца: sudo chown -R activemq:activemq /opt/activemq
  4. Запустите: sudo systemctl start activemq

Заключение

Поздравляем — вы установили и настроили Apache ActiveMQ на Debian 11. Дальше: оптимизируйте настройки безопасности, интегрируйте брокер в вашу архитектуру и настройте мониторинг и бэкапы.

Важное: не оставляйте дефолтные пароли и не открывайте административную консоль в интернет без защиты.


Ключевые ресурсы для дальнейшего чтения: официальная документация Apache ActiveMQ, разделы по безопасности и настройке кластеров на сайте проекта.

Поделиться: 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 быстро