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