Как установить Apache ActiveMQ и Hawt.io на CentOS 8
На этой странице
- Предпосылки
- Установить Java
- Установка и настройка Apache ActiveMQ
- Создание файла службы Systemd для ActiveMQ
- Установите пароль администратора Apache ActiveMQ
- Настройка Nginx в качестве обратного прокси-сервера для Apache ActiveMQ
- Настройка SELinux и брандмауэра
- Доступ к Apache ActiveMQ
- Отслеживание ActiveMQ с помощью Hawt.io
- Доступ к веб-интерфейсу Hawt.io
- Заключение
Apache ActiveMQ — это бесплатный брокер сообщений с открытым исходным кодом на основе Java, который можно использовать для отправки сообщений между двумя приложениями. Он предлагает множество функций, включая высокую доступность и балансировку нагрузки сообщений для ваших данных. Он также поддерживает несколько языковых клиентов и протоколов, включая Java, C, C++, Python, PHP, Perl, Ruby и C#. Он переводит сообщения от отправителя к получателю и позволяет держать сообщения в очереди.
В этом руководстве мы узнаем, как установить Apache ActiveMQ на CentOS 8.
Предпосылки
- Сервер под управлением CentOS 8.
- На вашем сервере настроен пароль root.
Установить Java
Apache ActiveMQ — это приложение на основе Java, поэтому в вашей системе должна быть установлена Java. Если он не установлен, вы можете установить его с помощью следующей команды:
dnf install java-11-openjdk-devel -y
После установки Java проверьте установленную версию Java с помощью следующей команды:
java --version
Вы должны получить следующий результат:
openjdk 11.0.6 2020-01-14 LTS OpenJDK Runtime Environment 18.9 (build 11.0.6+10-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.6+10-LTS, mixed mode, sharing)
Установите и настройте Apache ActiveMQ
Во-первых, вам нужно будет загрузить последнюю версию ActiveMQ с их официального сайта. Вы можете скачать его с помощью следующей команды:
cd /opt
wget https://www.apache.org/dist/activemq/5.15.12/apache-activemq-5.15.12-bin.tar.gz
После загрузки извлеките загруженный файл с помощью следующей команды:
tar -xvzf apache-activemq-5.15.12-bin.tar.gz
Затем переименуйте извлеченный каталог apache-activemq с помощью следующей команды:
mv apache-activemq-5.15.12 apache-activemq
Далее рекомендуется создать отдельного пользователя для Apache ActiveMQ. Вы можете создать нового пользователя с именем activemq с помощью следующей команды:
useradd activemq
Затем измените владельца каталога apache-activemq на activemq:
chown -R activemq:activemq /opt/apache-activemq/
Как только вы закончите, вы можете перейти к следующему шагу.
Создать файл службы Systemd для ActiveMQ
Далее вам нужно будет создать файл службы systemd для управления службой Apache ActiveMQ. Вы можете создать его с помощью следующей команды:
nano /etc/systemd/system/apache-activemq.service
Добавьте следующие строки:
[Unit] Description=Apache ActiveMQ Messaging Server After=network.target [Service] Type=forking User=activemq Group=activemq ExecStart=/opt/apache-activemq/bin/activemq start ExecStop=/opt/apache-activemq/bin/activemq stop [Install] WantedBy=multi-user.target
Сохраните и закройте файл, когда закончите. Затем перезагрузите демон systemd с помощью следующей команды:
systemctl daemon-reload
Затем запустите службу ActiveMQ и включите ее запуск после перезагрузки системы с помощью следующей команды:
systemctl start apache-activemq
systemctl enable apache-activemq
Вы можете проверить состояние службы ActiveMQ с помощью следующей команды:
systemctl status apache-activemq
Вы должны увидеть следующий вывод:
? apache-activemq.service - Apache ActiveMQ Messaging Server Loaded: loaded (/etc/systemd/system/apache-activemq.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-26 10:15:32 EDT; 12s ago Process: 9005 ExecStart=/opt/apache-activemq/bin/activemq start (code=exited, status=0/SUCCESS) Main PID: 9057 (java) Tasks: 49 (limit: 25028) Memory: 197.5M CGroup: /system.slice/apache-activemq.service ??9057 /usr/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/apach> Mar 26 10:15:32 centos8 systemd[1]: Starting Apache ActiveMQ Messaging Server... Mar 26 10:15:32 centos8 activemq[9005]: INFO: Loading '/opt/apache-activemq//bin/env' Mar 26 10:15:32 centos8 activemq[9005]: INFO: Using java '/usr/bin/java' Mar 26 10:15:32 centos8 activemq[9005]: INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details Mar 26 10:15:32 centos8 activemq[9005]: INFO: pidfile created : '/opt/apache-activemq//data/activemq.pid' (pid '9057') Mar 26 10:15:32 centos8 systemd[1]: Started Apache ActiveMQ Messaging Server.
По умолчанию Apache ActiveMQ прослушивает порт 8161. Вы можете проверить это с помощью следующей команды:
netstat -antup | grep 8161
Вы должны получить следующий результат:
tcp6 0 0 :::8161 :::* LISTEN 9289/java
Установите пароль администратора Apache ActiveMQ
По умолчанию для имени пользователя и пароля администратора Apache ActiveMQ установлено значение admin/admin. Это очень опасно из соображений безопасности. Поэтому рекомендуется изменить его с безопасным паролем.
Вы можете изменить его, отредактировав следующий файл:
nano /opt/apache-activemq/conf/jetty-realm.properties
Измените следующие строки на желаемый пароль:
# username: password [,rolename ...] admin: activemqpassword, admin user: userpassword, user
Сохраните и закройте файл, когда закончите. Затем перезапустите службу ActiveMQ, чтобы применить изменения:
systemctl restart apache-activemq
Как только вы закончите, вы можете перейти к следующему шагу.
Настройте Nginx в качестве обратного прокси-сервера для Apache ActiveMQ.
Далее рекомендуется настроить Nginx в качестве обратного прокси для ActiveMQ.
Сначала установите веб-сервер Nginx с помощью следующей команды:
dnf install nginx -y
После установки Nginx создайте новый файл конфигурации виртуального хоста Nginx с помощью следующей команды:
nano /etc/nginx/conf.d/activemq.conf
Добавьте следующие строки:
server { listen 80; server_name your-server-ip; location / { proxy_pass http://127.0.0.1:8161; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Сохраните и закройте файл, когда закончите. Затем проверьте Nginx на наличие синтаксической ошибки с помощью следующей команды:
nginx -t
Вы должны увидеть следующий вывод:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Наконец, запустите службу Nginx и включите ее запуск после перезагрузки системы с помощью следующей команды:
systemctl start nginx
systemctl enable nginx
Вы также можете проверить статус Nginx с помощью следующей команды:
systemctl status nginx
Вы должны увидеть следующий вывод:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-26 10:27:45 EDT; 1min 9s ago Process: 9984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 9982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 9980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 9985 (nginx) Tasks: 3 (limit: 25028) Memory: 5.5M CGroup: /system.slice/nginx.service ??9985 nginx: master process /usr/sbin/nginx ??9986 nginx: worker process ??9987 nginx: worker process Mar 26 10:27:44 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Настройте SELinux и брандмауэр
По умолчанию SELinux включен в CentOS 8. Рекомендуется отключить SELinux для правильной работы Apache ActiveMQ.
Вы можете отключить SELinux, отредактировав файл /etc/selinux/config:
nano /etc/selinux/config
Найдите следующую строку:
SELINUX=enforcing
И замените его следующей строкой:
SELINUX=permissive
Сохраните и закройте файл. Затем перезагрузите систему, чтобы применить изменения:
Далее вам нужно будет разрешить порты 80 и 8161 через firewalld. Вы можете разрешить их с помощью следующей команды:
firewall-cmd --zone=public --permanent --add-port=8161/tcp
firewall-cmd --zone=public --permanent --add-port=80/tcp
Затем перезагрузите firewalld, чтобы применить изменения:
firewall-cmd --reload
Как только вы закончите, вы можете перейти к следующему шагу.
Доступ к Apache ActiveMQ
На этом этапе Apache ActiveMQ установлен и настроен.
Теперь откройте веб-браузер и введите URL-адрес http://your-server-ip. Вы должны увидеть следующую страницу:
Вы также можете получить доступ к административному интерфейсу Apache ActiveMQ, посетив URL-адрес http://your-server-ip/admin. Вы будете перенаправлены на следующую страницу:
Укажите имя пользователя и пароль администратора и нажмите кнопку «Войти». Вы должны увидеть интерфейс администратора Apache ActiveMQ на следующей странице:
Отслеживайте ActiveMQ с помощью Hawt.io
Вы также можете отслеживать свой Apache ActiveMQ с помощью Hawt.io. Hawt.io — это модульная веб-консоль для управления вашим Java-приложением. Это подключаемая консоль управления, которая поддерживает любой тип JVM, любой тип контейнера, включая Tomcat, Jetty, Karaf, JBoss и многие другие.
Сначала загрузите последнюю версию файла войны Hawt.io с помощью следующей команды:
wget https://repo1.maven.org/maven2/io/hawt/hawtio-default/2.9.1/hawtio-default-2.9.1.war
Затем извлеките загруженный файл с помощью следующей команды:
unzip hawtio-default-2.9.1.war -d hawtio
Затем переместите извлеченный каталог в каталог webapps с помощью следующей команды:
mv hawtio /opt/apache-activemq/webapps/
Затем измените владельца каталога webapps на activemq с помощью следующей команды:
chown -R activemq:activemq /opt/apache-activemq/webapps/
Затем отредактируйте файл среды Apache ActiveMQ и внесите некоторые изменения:
nano /opt/apache-activemq/bin/env
Найдите следующую строку:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"
Замените его следующей строкой:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal"
Сохраните и закройте файл, когда закончите. Затем откройте файл jetty.xml:
nano /opt/apache-activemq/conf/jetty.xml
Добавьте следующую строку после строки :
<bean class="org.eclipse.jetty.webapp.WebAppContext"> <property name="contextPath" value="/hawtio" /> <property name="resourceBase" value="${activemq.home}/webapps/hawtio" /> <property name="logUrlOnStart" value="true" /> </bean>
Сохраните и закройте файл, когда закончите, затем перезапустите службу Apache ActiveMQ, чтобы применить изменения:
systemctl restart apache-activemq
Как только вы закончите, вы можете перейти к следующему шагу.
Доступ к веб-интерфейсу Hawt.io
Теперь Hawt.io установлен и настроен. Пришло время получить доступ к его веб-интерфейсу.
Откройте веб-браузер и введите URL-адрес http://your-server-ip/hawtio. Вы будете перенаправлены на страницу входа в Hawt.io:
Укажите имя пользователя и пароль по умолчанию как admin/admin и нажмите кнопку «Войти». Вы должны увидеть панель инструментов Hawt.io на следующей странице:
Заключение
Поздравляем! вы успешно установили Apache ActiveMQ в CentOS 8. Дополнительные сведения см. в документации по Apache ActiveMQ на сайте ActiveMQ.