{{tag>activemq, mensajeria, soa}}
===== ActiveMQ =====
Activemq no es más que un software que ejerce de intermediario entre dos o más aplicaciones para intercambiar mensajes. A este tipo de arquitecturas son conocidas como MOM (Message Oriented Middleware).
En lugar de enviar los mensajes directamente entre cada una de las aplicaciones, implementamos un broker de mensajes , que será el que se encargue de la comunicación y transmisión de Mensajes entre las diferentes aplicaciones. Con esto podemos implementar una SOA (Arquitectura Orientada a Servicios) donde cada servicio es expuesto mediante una cola de mensajes.
==== Instalación ====
Partimos de una distribución base de Centos 7 y lo primero que haremos será actulizar el sistema
yum update
=== Instalación de Java ===
Descargamos la última versión de java 8 disponible en este momento desde https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.rpm
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/8u191-b12/jdk-8u191-linux-x64.rpm"
Instalamos el paquete de java que nos hemos descargado
yum -y localinstall jdk-8u191-linux-x64.rpm
Añadimos las varibles de entorno para JAVA, para ello editamos el fichero vi ~/.bash_profile y añadimos al final
export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64/
export JRE_HOME=/usr/java/jdk1.8.0_191-amd64/jre
ejecutamos **source ~/.bash_profile** para cargar los cambios.
si ahora ejecutamos echos $JAVA_HOME debería de salir
/usr/java/jdk1.8.0_191-amd64/
=== Instalación de ActiveMQ ===
Descargamos la últimar versión estable desde http://activemq.apache.org/download.html
wget http://www-eu.apache.org/dist/activemq/5.15.8/apache-activemq-5.15.8-bin.tar.gz
extraemos los ficheros
tar xvzf apache-activemq-5.15.8-bin.tar.gz -C /var
renombramos para el directorio para simplificar el acceso
cd /var
mv apache-activemq-5.15.8/ /var/activemq/
Probamos a arrancarlo
./bin/activemq start
Si todo va bien debería de salir algo parecido a
INFO: Loading '/var/activemq//bin/env'
INFO: Using java '/usr/java/jdk1.8.0_191-amd64//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 '8540')
==== Creación del servicio en systemd ====
Aunque se puede arrancar y parar el ActiveMQ con los comando anteriores, lo recomendable es usar un servicio en systemd para iniciar el servicio al arrancar el servidor.
Para ello creamos el siguiente fichero /etc/systemd/system/activemq.service
y añadimos lo siguiente
[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
Ahora podemos iniciarlo con systemctl start activemq
Añadirlo para que arranque en el inicio systemctl enable activemq
Comprobar su estado systemctl status activemq
Si todo ha ido bien deberíamos de poder llegar con nuestro navegador web a la dirección http://ip_del_servidor:8161/admin
con el usuario y clave admin/admin
En caso de que no llegues revisa si tienes activado el firewall del equipo y si es así deshabilitado systemctl disable firewalld o añade las siguientes reglas
firewall-cmd --zone=public --permanent --add-port=8161/tcp
firewall-cmd --reload
==== Bastionado ====
Editar el fichero credential.properties y cambiar los vaolores que trae por defecto de
* activemq.username=system
* activemq.password=manager
* guest.password=password
Reiniciar el servicio activemq para aplicar los cambios.
===== Referencias =====
* https://www.howtoforge.com/tutorial/how-to-install-apache-activemq-on-centos-7/
* https://www.middlewareinventory.com/blog/active-mq-installation-and-security-setup-and-hardening-step-by-step/
* https://www.mcafee.com/enterprise/en-us/assets/white-papers/wp-pentesters-guide-hacking-activemq-jms-applications.pdf