Установка Apache ActiveMQ на CentOS 7
Важно: руководство рассчитано на минимальную установку CentOS 7 и выполнение команд от root. Если вы используете sudo-пользователя, выполните sudo -i перед началом.
Что такое Apache ActiveMQ
Apache ActiveMQ — это свободный брокер сообщений и сервер интеграционных шаблонов. Он поддерживает множество клиентов и протоколов (Java, C++, C, Python, Perl, PHP и др.). Основные возможности: группы сообщений, виртуальные назначения, шаблоны с подстановками, составные назначения и интеграция со Spring.
Краткая дефиниция: брокер сообщений посредничает в передаче сообщений между приложениями, упорядочивает очереди и обеспечивает надёжность доставки.
Предварительные требования
- Минимальная установка CentOS 7.
- Root-права (или sudo -i).
- Подключение к интернету для скачивания пакетов.
Обновление системы
Перед установкой пакетов рекомендуется обновить систему и репозитории:
yum -y updateПосле обновления можно переходить к установке Java.
Установка Java
ActiveMQ требует установленную Java (OpenJDK или Oracle Java). Здесь показан вариант с Oracle Java 8, как в исходном руководстве. Вы можете использовать OpenJDK вместо Oracle Java — в большинстве случаев OpenJDK полностью совместим.
Скачайте RPM пакет Oracle Java (пример команды; ссылка может устареть):
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"Если wget не установлен:
yum -y install wgetУстановите полученный RPM-пакет:
yum -y localinstall jdk-8u131-linux-x64.rpmПроверьте версию Java:
java -versionПример ожидаемого вывода:
[root@liptan-pc ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Проверьте переменную окружения JAVA_HOME:
echo $JAVA_HOMEЕсли переменная не установлена, добавьте её в .bash_profile:
nano ~/.bash_profileВставьте строки (проверьте путь к установленному JDK):
export JAVA_HOME=/usr/java/jdk1.8.0_131/
export JRE_HOME=/usr/java/jdk1.8.0_131/jre
Сделайте файл активным:
source ~/.bash_profileПроверьте снова:
[root@pc ~]# echo $JAVA_HOME
/usr/java/jdk1.8.0_131/
Примечание: если вы используете OpenJDK, пути будут отличаться, например /usr/lib/jvm/java-1.8.0-openjdk.
Установка ActiveMQ
ActiveMQ распространяется в виде готовых бинарных архивов для UNIX-подобных систем. Единственная обязательная зависимость — Java. Скачайте архив ActiveMQ (ссылка примерна — используйте страницу загрузки проекта для актуальной версии):
wget http://www-eu.apache.org/dist//activemq/5.15.0/apache-activemq-5.15.0-bin.tar.gzЕсли wget отсутствует, установите его:
yum -y install wgetРаспакуйте архив в /var:
tar -zxvf apache-activemq-*-bin.tar.gz -C /varДля удобства переименуйте каталог:
mv /var/apache-activemq-*/ /var/activemq/ActiveMQ теперь установлен в /var/activemq.
Запуск ActiveMQ
Перейдите в каталог установки:
cd /var/activemqЗапуск в foreground (видим логи в терминале):
./bin/activemq consoleЗапуск как фонового процесса:
./bin/activemq startПример ожидаемого вывода при успешном старте:
[root@pc activemq]# ./bin/activemq start
INFO: Loading '/var/activemq//bin/env'
INFO: Using java '/usr/java/jdk1.8.0_131//bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/var/activemq//data/activemq.pid' (pid '27680')
Остановить сервис можно командой:
./bin/activemq stopСоздание systemd-сервиса
Для управления ActiveMQ удобнее использовать systemd — так процесс автоматически стартует при загрузке и перезапускается при сбоях.
Создайте файл сервиса:
nano /etc/systemd/system/activemq.serviceВставьте содержимое:
[Unit]
Description=ActiveMQ service
After=network.target
[Service]
Type=forking
ExecStart=/var/activemq/bin/activemq start
ExecStop=/var/activemq/bin/activemq stop
User=root
Group=root
Restart=always
RestartSec=9
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=activemq
[Install]
WantedBy=multi-user.target
Затем запустите и включите автозапуск:
systemctl start activemq
systemctl enable activemqПроверка статуса:
systemctl status activemqОжидаемый фрагмент статуса:
? activemq.service - ActiveMQ service
Loaded: loaded (/etc/systemd/system/activemq.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-07-15 17:05:24 UTC; 6s ago
Process: 28815 ExecStart=/var/activemq/bin/activemq start (code=exited, status=0/SUCCESS)
Main PID: 28867 (java)
CGroup: /system.slice/activemq.service
??28867 /usr/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth...
Jul 15 17:05:24 centos systemd[1]: Starting ActiveMQ service...
Jul 15 17:05:24 centos activemq[28815]: INFO: Loading '/var/activemq//bin/env'
Jul 15 17:05:24 centos activemq[28815]: INFO: Using java '/usr/bin/java'
Jul 15 17:05:24 centos activemq[28815]: INFO: Starting - inspect logfiles specified in logging.propertie...tails
Jul 15 17:05:24 centos activemq[28815]: INFO: pidfile created : '/var/activemq//data/activemq.pid' (pid '28867')
Jul 15 17:05:24 centos systemd[1]: Started ActiveMQ service.
Администрирование через веб-панель
После запуска сервиса откройте админ-панель в браузере:
http://Your_Server_IP:8161/adminЕсли установлен firewalld, откройте порт 8161:
firewall-cmd --zone=public --permanent --add-port=8161/tcpfirewall-cmd --reloadПо умолчанию: логин и пароль admin / admin. Обязательно смените пароль после первого входа.
Мини-методология: проверка работоспособности
- Убедитесь, что Java установлена и JAVA_HOME настроен.
- Распакуйте ActiveMQ в /var/activemq.
- Запустите ./bin/activemq start и проверьте логи.
- Создайте systemd-сервис и включите автозапуск.
- Откройте порт 8161 и зайдите в админ-панель.
- Смените пароль и настройте безопасность.
Роли и чек-листы
Администратор (Server Admin)
- Проверить версию ОС и обновления.
- Установить Java и настроить JAVA_HOME.
- Настроить systemd-сервис и автозапуск.
- Настроить бэкапы конфигураций и данных ActiveMQ.
DevOps
- Интегрировать мониторинг (логирование, метрики JVM).
- Добавить проверку состояния службы в систему мониторинга.
- Автоматизировать развёртывание (Ansible/Chef/Puppet).
Разработчик
- Настроить клиенты на работу с брокером (URI, очереди, топики).
- Проверить сценарии повторной доставки и подтверждений.
- Тестировать нагрузку и устойчивость при пиковых нагрузках.
Безопасность и жёсткая настройка
- Смените учётные данные admin сразу после первого входа.
- Отключите консольный доступ к ActiveMQ по необязательным интерфейсам.
- Ограничьте доступ к порту 8161 через брандмауэр и/или VPN.
- Используйте шифрование (SSL/TLS) для межкластерного и клиентского трафика.
- Настройте ротацию логов и мониторинг размерности данных в /var/activemq/data.
Примечание: детальная настройка TLS и аутентификации выходит за рамки базового руководства.
Когда ActiveMQ может не подойти
- Если вам нужна строго упорядоченная, распределённая система с большой пропускной способностью — рассмотрите Apache Kafka.
- Для простых очередей с лёгкой настройкой и малыми требованиями — RabbitMQ может быть предпочтительнее.
- Если требуются встроенные транзакции на уровне базы данных, стоит оценить архитектуру сообщений.
Альтернативы и сравнение (обзор)
- RabbitMQ — удобен для AMQP, прост в настройке, хорош для распределённых приложений с малыми задержками.
- Apache Kafka — оптимален для больших потоков данных и хранения событий, подходит для аналитики и потоковой обработки.
- ActiveMQ Artemis — современная реализация с высокой производительностью и улучшенной совместимостью.
Выбор зависит от требований по: надёжности доставки, задержке, объёму сообщений и модели потребления.
Критерии приёмки
- Java установлена и доступна в окружении (java -version).
- ActiveMQ запущен и сервис отображается как active (systemctl status activemq).
- Админ-панель доступна по http://Your_Server_IP:8161/admin и аутентификация работает.
- Порт 8161 открыт в брандмауэре только для необходимых сетей.
- Пароль admin изменён, базовая настройка безопасности выполнена.
Типичные проблемы и способы их решения
- Проблема: ActiveMQ не стартует — проверьте логи в /var/activemq/data и права на файлы.
- Проблема: Java не найдена — убедитесь, что JAVA_HOME корректно выставлен и переменные экспортированы.
- Проблема: Порт 8161 недоступен — проверьте firewalld/iptables и SELinux (при необходимости временно отключите SELinux для проверки).
Краткая сводка по поддержке и миграции
- Перед обновлением ActiveMQ создайте резервные копии каталога /var/activemq/conf и /var/activemq/data.
- Тестируйте миграцию на стенде, чтобы проверить совместимость конфигураций и брокерных данных.
Заключение
Теперь у вас должен быть рабочий экземпляр Apache ActiveMQ на CentOS 7. Вы установили Java, распаковали ActiveMQ, запустили службу через systemd и обеспечили базовую защиту доступа к админ-панели. Дальше рекомендуем настроить мониторинг, регулярные бэкапы и улучшить безопасность (TLS, пользовательские роли, сетевые ограничения).
Важно: изучайте официальную документацию ActiveMQ для продвинутых сценариев (кластеризация, мосты, настройка персистентности).
Ключевые файлы и каталоги для отслеживания:
- /var/activemq/bin — скрипты управления
- /var/activemq/conf — конфигурация брокера
- /var/activemq/data — данные и логи
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента