Comment installer Apache ActiveMQ et Hawt.io sur CentOS 8

Apache ActiveMQ est un courtier de messages gratuit, open-source et basé sur Java qui peut être utilisé pour envoyer des messages entre deux applications. Il offre de nombreuses fonctionnalités, notamment la haute disponibilité et l’équilibrage de la charge des messages pour tes données. Il prend aussi en charge plusieurs langages clients et protocoles, notamment Java, C, C++, Python, PHP, Perl, Ruby et C#. Il traduit les messages de l’expéditeur au destinataire et permet de conserver les messages dans une file d’attente.

Dans ce tutoriel, nous allons apprendre à installer Apache ActiveMQ sur CentOS 8.

Conditions préalables

  • Un serveur exécutant CentOS 8.
  • Un mot de passe root est configuré sur ton serveur.

Installer Java

Apache ActiveMQ est une application basée sur Java. Java doit donc être installé dans ton système. S’il n’est pas installé, tu peux l’installer avec la commande suivante :

dnf install java-11-openjdk-devel -y

Après avoir installé Java, vérifie la version installée de Java avec la commande suivante :

java --version

Tu devrais obtenir le résultat suivant :

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)

Installer et configurer Apache ActiveMQ

Tout d’abord, tu dois télécharger la dernière version d’ActiveMQ depuis son site officiel. Tu peux la télécharger avec la commande suivante :

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

Une fois téléchargé, extrais le fichier téléchargé avec la commande suivante :

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

Ensuite, renomme le répertoire extrait apache-activemq avec la commande suivante :

mv apache-activemq-5.15.12 apache-activemq

Ensuite, c’est une bonne idée de créer un utilisateur distinct pour Apache ActiveMQ. Tu peux créer un nouvel utilisateur nommé activemq avec la commande suivante :

useradd activemq

Ensuite, change la propriété du répertoire apache-activemq pour activemq :

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

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Crée le fichier de service Systemd pour ActiveMQ

Ensuite, tu devras créer un fichier de service systemd pour gérer le service Apache ActiveMQ. Tu peux le créer avec la commande suivante :

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

Ajoute les lignes suivantes :

[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

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, recharge le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarre le service ActiveMQ et active-le pour qu’il démarre après le redémarrage du système avec la commande suivante :

systemctl start apache-activemq
systemctl enable apache-activemq

Tu peux vérifier l’état du service ActiveMQ avec la commande suivante :

systemctl status apache-activemq

Tu devrais voir la sortie suivante :

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

Par défaut, Apache ActiveMQ écoute sur le port 8161. Tu peux le vérifier avec la commande suivante :

netstat -antup | grep 8161

Tu devrais obtenir la sortie suivante :

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

Définir le mot de passe administrateur d’Apache ActiveMQ

Par défaut, le nom d’utilisateur et le mot de passe de l’administrateur d’Apache ActiveMQ sont définis sur admin/admin. C’est très dangereux pour des raisons de sécurité. Il est donc recommandé de le remplacer par un mot de passe sécurisé.

Tu peux le modifier en éditant le fichier suivant :

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

Change les lignes suivantes avec le mot de passe de ton choix :

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

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, redémarre le service ActiveMQ pour appliquer les modifications :

systemctl restart apache-activemq

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configurer Nginx comme proxy inverse pour Apache ActiveMQ

Ensuite, il est recommandé de configurer Nginx comme proxy inverse pour ActiveMQ.

Tout d’abord, installe le serveur web Nginx avec la commande suivante :

dnf install nginx -y

Une fois que Nginx est installé, crée un nouveau fichier de configuration d’hôte virtuel Nginx avec la commande suivante :

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

Ajoute les lignes suivantes :

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

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, vérifie que Nginx n’a pas d’erreur de syntaxe avec la commande suivante :

nginx -t

Tu devrais voir la sortie suivante :

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

Enfin, démarre le service Nginx et active-le pour qu’il démarre après le redémarrage du système avec la commande suivante :

systemctl start nginx
systemctl enable nginx

Tu peux aussi vérifier l’état de Nginx à l’aide de la commande suivante :

systemctl status nginx

Tu devrais voir la sortie suivante :

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

Configurer SELinux et le pare-feu

Par défaut, SELinux est activé dans CentOS 8. Il est recommandé de désactiver SELinux pour faire fonctionner Apache ActiveMQ correctement.

Tu peux désactiver SELinux en modifiant le fichier /etc/selinux/config :

nano /etc/selinux/config

Trouve la ligne suivante :

SELINUX=enforcing

Et, remplace-la par la ligne suivante :

SELINUX=permissive

Sauvegarde et ferme le fichier. Ensuite, redémarre ton système pour appliquer les modifications :

Ensuite, tu devras autoriser les ports 80 et 8161 via firewalld. Tu peux les autoriser avec la commande suivante :

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

Ensuite, recharge le firewalld pour appliquer les changements :

firewall-cmd --reload

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Accéder à Apache ActiveMQ

À ce stade, Apache ActiveMQ est installé et configuré.

Maintenant, ouvre ton navigateur Web et tape l’URL http://your-server-ip. Tu devrais voir la page suivante :

ActiveMQ

Tu peux aussi accéder à l’interface d’administration d’Apache ActiveMQ en visitant l’URL http://your-server-ip/admin. Tu seras redirigé vers la page suivante :

Connexion

Indique ton nom d’utilisateur et ton mot de passe d’administrateur et clique sur le bouton Se connecter. Tu devrais voir l’interface d’administration d’Apache ActiveMQ sur la page suivante :

Tableau de bord ActiveMQ

Surveiller ActiveMQ avec Hawt.io

Tu peux aussi surveiller ton Apache ActiveMQ avec Hawt.io. Hawt.io est une console web modulaire pour gérer ton application basée sur Java. C’est une console de gestion enfichable qui prend en charge tout type de JVM, tout type de conteneur, notamment Tomcat, Jetty, Karaf, JBoss et bien d’autres.

Tout d’abord, télécharge la dernière version du fichier war de Hawt.io avec la commande suivante :

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

Ensuite, extrais le fichier téléchargé avec la commande suivante :

unzip hawtio-default-2.9.1.war -d hawtio

Ensuite, déplace le répertoire extrait dans le répertoire webapps avec la commande suivante :

mv hawtio /opt/apache-activemq/webapps/

Ensuite, change la propriété du répertoire webapps en activemq avec la commande suivante :

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

Ensuite, édite le fichier d’environnement Apache ActiveMQ et apporte quelques modifications :

nano /opt/apache-activemq/bin/env

Trouve la ligne suivante :

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

Remplace-la par la ligne suivante :

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"

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, ouvre le fichier jetty.xml :

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

Ajoute la ligne suivante sous la ligne <ref bean= »rewriteHandler »> :

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

Sauvegarde et ferme le fichier lorsque tu as terminé puis redémarre le service Apache ActiveMQ pour appliquer les modifications :

systemctl restart apache-activemq

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Accède à l’interface Web de Hawt.io

Hawt.io est maintenant installé et configuré. Il est temps d’accéder à son interface Web.

Ouvre ton navigateur Web et tape l’URL http://your-server-ip/hawtio. Tu seras redirigé vers la page de connexion de Hawt.io :

Connexion à Hawt.io

Indique le nom d’utilisateur et le mot de passe par défaut comme admin/admin et clique sur le bouton Connexion. Tu devrais voir le tableau de bord de Hawt.io à la page suivante :

Tableau de bord de Hawt.io

Conclusion

Félicitations ! Tu as réussi à installer Apache ActiveMQ sur CentOS 8. Pour plus d’informations, consulte la documentation d’Apache ActiveMQ à l’adresse ActiveMQ.

Vous aimerez aussi...