Cómo instalar Apache ActiveMQ y Hawt.io en CentOS 8

ActiveMQ

Apache ActiveMQ es un intermediario de mensajes gratuito, de código abierto y basado en Java que se puede utilizar para enviar mensajes entre dos aplicaciones. Ofrece muchas características que incluyen alta disponibilidad y equilibrio de carga de mensajes para sus datos. También admite varios protocolos y clientes de idiomas, incluidos Java, C, C ++, Python, PHP, Perl, Ruby y C #. Traduce los mensajes del remitente al receptor y permite que los mensajes se mantengan en cola.

En este tutorial, aprenderemos cómo instalar Apache ActiveMQ en CentOS 8.

requisitos previos

  • Un servidor que ejecuta CentOS 8.
  • Una contrase√Īa de root est√° configurada en su servidor.

Instalar Java

Apache ActiveMQ es una aplicación basada en Java, por lo que Java debe estar instalado en su sistema. Si no está instalado, puede instalarlo con el siguiente comando:

dnf install java-11-openjdk-devel -y

Después de instalar Java, verifique la versión instalada de Java con el siguiente comando:

java --version

Deberías obtener el siguiente resultado:

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)

Instalar y configurar Apache ActiveMQ

Primero, deber√° descargar la √ļltima versi√≥n de ActiveMQ desde su sitio web oficial. Puedes descargarlo con el siguiente comando:

cd /opt
wget https://www.apache.org/dist/activemq/5.15.12/apache-activemq-5.15.12-bin.tar.gz

Una vez descargado, extraiga el archivo descargado con el siguiente comando:

tar -xvzf apache-activemq-5.15.12-bin.tar.gz

A continuación, cambie el nombre del directorio extraído apache-activemq con el siguiente comando:

mv apache-activemq-5.15.12 apache-activemq

A continuación, es una buena idea crear un usuario independiente para Apache ActiveMQ. Puede crear un nuevo usuario llamado activemq con el siguiente comando:

useradd activemq

A continuación, cambie la propiedad del directorio apache-activemq a activemq:

chown -R activemq:activemq /opt/apache-activemq/

Una vez que haya terminado, puede continuar con el siguiente paso.

Crear archivo de servicio Systemd para ActiveMQ

A continuación, deberá crear un archivo de servicio systemd para administrar el servicio Apache ActiveMQ. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/apache-activemq.service

Agregue las siguientes líneas:

[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

Guarde y cierre el archivo cuando haya terminado. Luego, vuelva a cargar el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicie el servicio ActiveMQ y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:

systemctl start apache-activemq
systemctl enable apache-activemq

Puede verificar el estado del servicio ActiveMQ con el siguiente comando:

systemctl status apache-activemq

Debería ver el siguiente resultado:

? 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.

De forma predeterminada, Apache ActiveMQ escucha en el puerto 8161. Puede verificarlo con el siguiente comando:

netstat -antup | grep 8161

Deberías obtener el siguiente resultado:

tcp6       0      0 :::8161                 :::*                    LISTEN      9289/java 

Establecer la contrase√Īa de administrador de Apache ActiveMQ

De forma predeterminada, el nombre de usuario y la contrase√Īa de administrador de Apache ActiveMQ se establecen en admin/admin. Es muy peligroso por razones de seguridad. Por lo que se recomienda cambiarlo con contrase√Īa segura.

Puede cambiarlo editando el siguiente archivo:

nano /opt/apache-activemq/conf/jetty-realm.properties

Cambie las siguientes l√≠neas con su contrase√Īa deseada:

# username: password [,rolename ...]
admin: activemqpassword, admin
user: userpassword, user

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio ActiveMQ para aplicar los cambios:

systemctl restart apache-activemq

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar Nginx como proxy inverso para Apache ActiveMQ

A continuación, se recomienda configurar Nginx como un proxy inverso para ActiveMQ.Advertisement

Primero, instale el servidor web Nginx con el siguiente comando:

dnf install nginx -y

Una vez que Nginx esté instalado, cree un nuevo archivo de configuración de host virtual de Nginx con el siguiente comando:

nano /etc/nginx/conf.d/activemq.conf

Agregue las siguientes líneas:

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;
     }
}

Guarde y cierre el archivo cuando haya terminado. Luego, verifique Nginx por cualquier error de sintaxis con el siguiente comando:

nginx -t

Debería ver el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Finalmente, inicie el servicio Nginx y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:

systemctl start nginx
systemctl enable nginx

También puede verificar el estado de Nginx usando el siguiente comando:

systemctl status nginx

Debería ver el siguiente resultado:

? 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...

Configurar SELinux y Firewall

De forma predeterminada, SELinux est√° habilitado en CentOS 8. Se recomienda deshabilitar SELinux para que Apache ActiveMQ funcione correctamente.

Puede deshabilitar SELinux editando el archivo /etc/selinux/config:

nano /etc/selinux/config

Encuentra la siguiente línea:

SELINUX=enforcing

Y, reemplácelo con la siguiente línea:

SELINUX=permissive

Guarde y cierre el archivo. Luego, reinicie su sistema para aplicar los cambios:

A continuación, deberá permitir el puerto 80 y 8161 a través de firewalld. Puede permitirlos con el siguiente comando:

firewall-cmd --zone=public --permanent --add-port=8161/tcp
firewall-cmd --zone=public --permanent --add-port=80/tcp

A continuación, vuelva a cargar el firewalld para aplicar los cambios:

firewall-cmd --reload

Una vez que haya terminado, puede continuar con el siguiente paso.

Acceder a Apache ActiveMQ

En este punto, Apache ActiveMQ est√° instalado y configurado.

Ahora, abra su navegador web y escriba la URL http://your-server-ip. Deberías ver la siguiente página:

ActiveMQ

También puede acceder a la interfaz de administración de Apache ActiveMQ visitando la URL http://your-server-ip/admin. Será redirigido a la siguiente página:

Acceso

Proporcione su nombre de usuario y contrase√Īa de administrador y haga clic en el Iniciar sesi√≥n bot√≥n. Deber√≠a ver la interfaz de administraci√≥n de Apache ActiveMQ en la siguiente p√°gina:

Tablero ActiveMQ

Supervise ActiveMQ con Hawt.io

También puede monitorear su Apache ActiveMQ con Hawt.io. Hawt.io es una consola web modular para administrar su aplicación basada en Java. Es una consola de administración conectable que admite cualquier tipo de JVM, cualquier tipo de contenedor, incluidos Tomcat, Jetty, Karaf, JBoss y muchos más.

Primero, descargue la √ļltima versi√≥n del archivo de guerra Hawt.io con el siguiente comando:

wget https://repo1.maven.org/maven2/io/hawt/hawtio-default/2.9.1/hawtio-default-2.9.1.war

A continuación, extraiga el archivo descargado con el siguiente comando:

unzip hawtio-default-2.9.1.war -d hawtio

A continuación, mueva el directorio extraído al directorio de aplicaciones web con el siguiente comando:

mv hawtio /opt/apache-activemq/webapps/

A continuación, cambie la propiedad del directorio webapps a activemq con el siguiente comando:

chown -R activemq:activemq /opt/apache-activemq/webapps/

A continuación, edite el archivo de entorno de Apache ActiveMQ y realice algunos cambios:

nano /opt/apache-activemq/bin/env

Encuentra la siguiente línea:

ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"

Reemplázalo con la siguiente línea:

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"

Guarde y cierre el archivo cuando haya terminado. A continuación, abra el archivo jetty.xml:

nano /opt/apache-activemq/conf/jetty.xml

Agrega la siguiente línea debajo de la línea :

<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>

Guarde y cierre el archivo cuando haya terminado, luego reinicie el servicio Apache ActiveMQ para aplicar los cambios:

systemctl restart apache-activemq

Una vez que haya terminado, puede continuar con el siguiente paso.

Acceder a la interfaz web de Hawt.io

Hawt.io ahora est√° instalado y configurado. Es hora de acceder a su interfaz web.

Abra su navegador web y escriba la URL http://your-server-ip/hawtio. Será redirigido a la página de inicio de sesión de Hawt.io:

Hawt.io Iniciar sesión

Proporcione el nombre de usuario y la contrase√Īa predeterminados como admin/admin y haga clic en el Tronco en bot√≥n. Deber√≠a ver el panel de Hawt.io en la siguiente p√°gina:

Panel de Hawt.io

Conclusión

¡Felicidades! Ha instalado con éxito Apache ActiveMQ en CentOS 8. Para obtener más información, visite la documentación de Apache ActiveMQ en ActiveMQ.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *