Cómo instalar Apache ActiveMQ y Hawt.io en CentOS 8
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:
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:
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:
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:
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:
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.