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 vos données. Il prend également en charge plusieurs langages client 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 maintenir les messages en file d'attente.
Dans ce tutoriel, nous allons apprendre à installer Apache ActiveMQ sur CentOS 8.
Prérequis
- Un serveur exécutant CentOS 8.
- Un mot de passe root est configuré sur votre serveur.
Installer Java
Apache ActiveMQ est une application basée sur Java. Java doit donc être installé sur votre système. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :
installation dnf java-11-openjdk-devel -y
Après avoir installé Java, vérifiez la version installée de Java avec la commande suivante :
java --version
Vous devriez obtenir le résultat suivant :
openjdk 11.0.6 2020-01-14 LTSOpenJDK Runtime Environment 18.9 (build 11.0.6+10-LTS)OpenJDK 64-Bit Server VM 18.9 (build 11.0.6+10-LTS, mode mixte, partage)Installer et configurer Apache ActiveMQ
Tout d'abord, vous devrez télécharger la dernière version d'ActiveMQ à partir de leur site officiel. Vous pouvez le 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.gzUne fois téléchargé, extrayez le fichier téléchargé avec la commande suivante :
tar -xvzf apache-activemq-5.15.12-bin.tar.gzEnsuite, renommez le répertoire extrait apache-activemq avec la commande suivante :
mv apache-activemq-5.15.12 apache-activemqEnsuite, c'est une bonne idée de créer un utilisateur distinct pour Apache ActiveMQ. Vous pouvez créer un nouvel utilisateur nommé activemq avec la commande suivante :
useradd activemqEnsuite, changez la propriété du répertoire apache-activemq en activemq :
chown -R activemq:activemq /opt/apache-activemq/Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Créer un fichier de service Systemd pour ActiveMQ
Ensuite, vous devrez créer un fichier de service systemd pour gérer le service Apache ActiveMQ. Vous pouvez le créer avec la commande suivante :
nano /etc/systemd/system/apache-activemq.serviceAjoutez les lignes suivantes :
[Unit]Description=Apache ActiveMQ Messaging ServerAfter=network.target[Service]Type=forkingUser=activemqGroup=activemqExecStart=/opt/apache-activemq/bin/activemq startExecStop=/opt/apache-activemq/bin/activemq stop [Install]WantedBy=multi-user.targetEnregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, rechargez le démon systemd avec la commande suivante :
rechargement du démon systemctlEnsuite, démarrez le service ActiveMQ et activez-le après le redémarrage du système avec la commande suivante :
systemctl start apache-activemq
systemctl enable apache-activemqVous pouvez vérifier l'état du service ActiveMQ avec la commande suivante :
statut systemctl apache-activemqVous devriez voir le résultat suivant :
? apache-activemq.service - Serveur de messagerie Apache ActiveMQ chargé :chargé (/etc/systemd/system/apache-activemq.service ; désactivé ; préréglage du fournisseur :désactivé) Actif :actif (en cours d'exécution) depuis le jeu. 2020-03-26 10:15 :32 HAE; Il y a 12 s Processus :9005 ExecStart=/opt/apache-activemq/bin/activemq start (code=exited, status=0/SUCCESS) PID principal :9057 (java) Tâches :49 (limite :25028) Mémoire :197,5 M 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] :Démarrage du serveur de messagerie Apache ActiveMQ...Mar 26 10:15:32 centos8 activemq[9005] :INFO :Chargement de '/opt/apache-activemq//bin /env'Mar 26 10:15:32 centos8 activemq[9005] :INFO :Utilisation de java '/usr/bin/java'Mar 26 10:15:32 centos8 activemq[9005] :INFO :Démarrage - inspecter les fichiers journaux spécifiés dans la journalisation .properties et log4j.properties pour obtenir des détailsMars 26 10:15:32 centos8 activemq[9005] :INFO :pidfile créé :'/opt/apache-activemq//data/activemq.pid' (pid '9057')Mars 26 10 :15:32 centos8 systemd[1] :Démarrage du serveur de messagerie Apache ActiveMQ.Par défaut, Apache ActiveMQ écoute sur le port 8161. Vous pouvez le vérifier avec la commande suivante :
netstat -antup | grep 8161Vous devriez obtenir le résultat suivant :
tcp6 0 0 :::8161 :::* ECOUTEZ 9289/javaDéfinir le mot de passe administrateur Apache ActiveMQ
Par défaut, le nom d'utilisateur et le mot de passe de l'administrateur 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 changer avec un mot de passe sécurisé.
Vous pouvez le changer en éditant le fichier suivant :
nano /opt/apache-activemq/conf/jetty-realm.propertiesModifiez les lignes suivantes avec le mot de passe de votre choix :
# nom d'utilisateur :mot de passe [,nom du rôle ...]admin :activemqpassword, adminuser :userpassword, utilisateurEnregistrez et fermez le fichier lorsque vous avez terminé. Redémarrez ensuite le service ActiveMQ pour appliquer les modifications :
systemctl redémarre apache-activemqUne fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer Nginx en tant que proxy inverse pour Apache ActiveMQ
Ensuite, il est recommandé de configurer Nginx en tant que proxy inverse pour ActiveMQ.
Tout d'abord, installez le serveur Web Nginx avec la commande suivante :
dnf installer nginx -yUne fois le Nginx installé, créez un nouveau fichier de configuration d'hôte virtuel Nginx avec la commande suivante :
nano /etc/nginx/conf.d/activemq.confAjoutez les lignes suivantes :
serveur { écoute 80 ; nom_serveur votre-serveur-ip ; emplacement / { proxy_pass http://127.0.0.1:8161; proxy_http_version 1.1 ; proxy_set_header Mettre à jour $http_upgrade ; proxy_set_header Connexion 'mise à niveau' ; proxy_set_header Hôte $hôte ; proxy_cache_bypass $http_upgrade ; }}Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -tVous devriez voir le résultat suivant :
nginx :la syntaxe du fichier de configuration /etc/nginx/nginx.conf est oknginx :le test du fichier de configuration /etc/nginx/nginx.conf est réussiEnfin, démarrez le service Nginx et activez-le après le redémarrage du système avec la commande suivante :
systemctl démarrer nginx
systemctl activer nginxVous pouvez également vérifier l'état de Nginx à l'aide de la commande suivante :
statut systemctl nginxVous devriez voir le résultat suivant :
? nginx.service - Le serveur HTTP et proxy inverse nginx Chargé :chargé (/usr/lib/systemd/system/nginx.service ; désactivé ; préréglage du fournisseur :désactivé) Actif :actif (en cours d'exécution) depuis le jeu 2020-03-26 10 :27h45 HAE ; 1min 9s ago Processus :9984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Processus :9982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Processus :9980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) PID principal :9985 (nginx) Tâches :3 (limite :25028) Mémoire :5,5 M CGroup :/system.slice/nginx.service ??9985 nginx :processus maître /usr/sbin/nginx ??9986 nginx :processus de travail ??9987 nginx :processus de travailMar 26 10:27:44 centos8 systemd[1] :Démarrage de nginx HTTP et serveur proxy inverse...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.
Vous pouvez désactiver le SELinux en éditant le fichier /etc/selinux/config :
nano /etc/selinux/configRecherchez la ligne suivante :
SELINUX=appliquerEt remplacez-le par la ligne suivante :
SELINUX=permissifEnregistrez et fermez le fichier. Redémarrez ensuite votre système pour appliquer les modifications :
Ensuite, vous devrez autoriser les ports 80 et 8161 via firewalld. Vous pouvez les autoriser avec la commande suivante :
firewall-cmd --zone=public --permanent --add-port=8161/tcp
firewall-cmd --zone=public --permanent --add-port=80/tcpEnsuite, rechargez le pare-feu pour appliquer les modifications :
firewall-cmd --reloadUne fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Accéder à Apache ActiveMQ
À ce stade, Apache ActiveMQ est installé et configuré.
Maintenant, ouvrez votre navigateur Web et tapez l'URL http://your-server-ip. Vous devriez voir la page suivante :
Vous pouvez également accéder à l'interface d'administration d'Apache ActiveMQ en visitant l'URL http://your-server-ip/admin. Vous serez redirigé vers la page suivante :
Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir l'interface d'administration d'Apache ActiveMQ sur la page suivante :
Surveiller ActiveMQ avec Hawt.io
Vous pouvez également surveiller votre Apache ActiveMQ avec Hawt.io. Hawt.io est une console Web modulaire pour gérer votre application basée sur Java. Il s'agit d'une console de gestion enfichable qui prend en charge tout type de JVM, tout type de conteneur, y compris Tomcat, Jetty, Karaf, JBoss et bien d'autres.
Tout d'abord, téléchargez la dernière version du fichier war Hawt.io avec la commande suivante :
wget https://repo1.maven.org/maven2/io/hawt/hawtio-default/2.9.1/hawtio-default-2.9.1.warEnsuite, extrayez le fichier téléchargé avec la commande suivante :
décompressez hawtio-default-2.9.1.war -d hawtioEnsuite, déplacez le répertoire extrait vers le répertoire webapps avec la commande suivante :
mv hawtio /opt/apache-activemq/webapps/Ensuite, changez la propriété du répertoire webapps en activemq avec la commande suivante :
chown -R activemq:activemq /opt/apache-activemq/webapps/Ensuite, modifiez le fichier d'environnement Apache ActiveMQ et apportez quelques modifications :
nano /opt/apache-activemq/bin/envRecherchez la ligne suivante :
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"Remplacez-le 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"Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, ouvrez le fichier jetty.xml :
nano /opt/apache-activemq/conf/jetty.xmlAjoutez la ligne suivante sous la ligne :
Enregistrez et fermez le fichier lorsque vous avez terminé, puis redémarrez le service Apache ActiveMQ pour appliquer les modifications :
systemctl redémarre apache-activemqUne fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Accéder à l'interface Web Hawt.io
Hawt.io est maintenant installé et configuré. Il est temps d'accéder à son interface web.
Ouvrez votre navigateur Web et tapez l'URL http://your-server-ip/hawtio. Vous serez redirigé vers la page de connexion Hawt.io :
Indiquez le nom d'utilisateur et le mot de passe par défaut en tant qu'administrateur/administrateur et cliquez sur Journal dans bouton. Vous devriez voir le tableau de bord Hawt.io sur la page suivante :
Conclusion
Toutes nos félicitations! vous avez installé avec succès Apache ActiveMQ sur CentOS 8. Pour plus d'informations, consultez la documentation Apache ActiveMQ sur ActiveMQ.