Поиск по сайту:

Как установить Apache ActiveMQ и Hawt.io на CentOS 8


На этой странице

  1. Предпосылки
  2. Установить Java
  3. Установка и настройка Apache ActiveMQ
  4. Создание файла службы Systemd для ActiveMQ
  5. Установите пароль администратора Apache ActiveMQ
  6. Настройка Nginx в качестве обратного прокси-сервера для Apache ActiveMQ
  7. Настройка SELinux и брандмауэра
  8. Доступ к Apache ActiveMQ
  9. Отслеживание ActiveMQ с помощью Hawt.io
  10. Доступ к веб-интерфейсу Hawt.io
  11. Заключение

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.