Installer RabbitMQ sur CentOS 7

Objectif principal et variantes de recherche
- Installer RabbitMQ sur CentOS 7
- Variantes : installer RabbitMQ, tutoriel RabbitMQ CentOS 7, installer Erlang CentOS, configurer RabbitMQ, sécuriser RabbitMQ
Prérequis
- Serveur CentOS 7 minimal
- Accès root ou sudo (ce guide est écrit en root; si vous êtes en sudo, exécutez sudo -i)
- Accès réseau sortant pour télécharger RPMs
Mise à jour du système
Avant d’installer des paquets, mettez à jour le système et les dépôts :
yum -y update
Une fois terminé, passez à l’installation d’Erlang.
Installer Erlang
RabbitMQ est écrit en Erlang. Erlang n’est pas toujours présent dans les dépôts YUM par défaut ; installez EPEL puis Erlang et socat :
yum -y install epel-release
yum -y update
yum -y install erlang socat
Vérifiez la version d’Erlang :
erl -version
Exemple de sortie :
[root@liptan-pc ~]# erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
Pour entrer dans le shell Erlang :
erl
Exemple de shell :
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.4 (abort with ^G)
1>
Quittez avec Ctrl+C (deux fois). Erlang est maintenant installé.
Installer RabbitMQ
Le paquet RPM de RabbitMQ pour les systèmes Enterprise Linux peut être installé directement. Dans ce tutoriel on utilise la version fournie dans l’exemple :
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
Si wget manque :
yum -y install wget
Importer la clé GPG :
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
Installer le RPM :
rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
RabbitMQ est maintenant installé sur le système.
Démarrer RabbitMQ
Démarrez le service :
systemctl start rabbitmq-server
Activez le démarrage automatique :
systemctl enable rabbitmq-server
Vérifiez l’état :
systemctl status rabbitmq-server
Exemple d’état si tout s’est bien passé :
? rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-07-15 18:59:14 UTC; 3min 22s ago
Main PID: 29006 (beam.smp)
Status: "Initialized"
CGroup: /system.slice/rabbitmq-server.service
??29006 /usr/lib64/erlang/erts-9.0/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K tr...
??29149 /usr/lib64/erlang/erts-9.0/bin/epmd -daemon
??29283 erl_child_setup 1024
??29303 inet_gethost 4
??29304 inet_gethost 4
Jul 15 18:59:13 centos rabbitmq-server[29006]: Starting broker...
Jul 15 18:59:14 centos rabbitmq-server[29006]: systemd unit for activation check: "rabbitmq-server.service"
Jul 15 18:59:14 centos systemd[1]: Started RabbitMQ broker.
Jul 15 18:59:14 centos rabbitmq-server[29006]: completed with 0 plugins.
Important : la chaîne de statut peut varier selon la version d’Erlang et RabbitMQ.
Pare-feu et SELinux
Si firewalld est actif, ouvrez les ports nécessaires pour RabbitMQ et les protocoles associés :
firewall-cmd --zone=public --permanent --add-port=4369/tcp
firewall-cmd --zone=public --permanent --add-port=25672/tcp
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
firewall-cmd --zone=public --permanent --add-port=1883/tcp
firewall-cmd --zone=public --permanent --add-port=8883/tcp
Rechargez la configuration du pare-feu :
firewall-cmd --reload
Si SELinux est activé, autorisez l’interaction de RabbitMQ comme indiqué :
setsebool -P nis_enabled 1
Note : adaptez les règles au moindre principe de privilège et n’ouvrez que les ports nécessaires à votre usage.
Accéder à la console Web
Activez le plugin de management :
rabbitmq-plugins enable rabbitmq_management
Assurez-vous que les fichiers appartiennent à l’utilisateur rabbitmq :
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
Créez un utilisateur administrateur (changez le nom et le mot de passe) :
rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin " .* " " .* " " .* "
Accédez ensuite à la console dans votre navigateur :
http://Your_Server_IP:15672/
Vous verrez la page de connexion :
Après authentification, le tableau de bord s’affiche :
La liste des utilisateurs et des vhosts se trouve sous l’onglet Admin. Supprimez l’utilisateur Guest pour des raisons de sécurité.
Les files de messages sont accessibles depuis l’onglet Queues :
Les connexions et canaux actifs sont visibles sous Connections et Channels :
Les échanges se trouvent dans l’onglet Exchanges :
Bonnes pratiques de sécurité
- Changez les mots de passe par défaut et utilisez un gestionnaire de mots de passe.
- Supprimez l’utilisateur Guest ou limitez son accès.
- Activez TLS pour les connexions inter-cluster et client (AMQPS).
- Restreignez les ports ouverts au strict nécessaire via firewall et sécurité réseau.
- Mettez en place une politique de sauvegarde des définitions (politiques, vhosts, utilisateurs) :
rabbitmqctl export_definitions /root/rabbitmq-definitions.json
- Activez la rotation des logs et la surveillance (collecte des métriques via Prometheus/Exporters ou outils de votre choix).
Méthodologie de mise à jour et migration
- Sauvegardez les définitions : rabbitmqctl export_definitions.
- Sauvegardez les données persistantes et la configuration.
- Testez la mise à jour dans un environnement non productif.
- Mettez à jour Erlang si nécessaire (compatibilité requise entre Erlang et RabbitMQ).
- Mettez à jour RabbitMQ via RPM ou dépôt officiel.
- Vérifiez l’état des nœuds et rééquilibrez si nécessaire.
Alternatives et approches différentes
- Installer via dépôt officiel YUM (si disponible) pour gérer les mises à jour via yum plutôt que RPM local.
- Utiliser des conteneurs Docker pour isoler RabbitMQ et simplifier les déploiements éphémères.
- Déployer une offre managée (cloud) si vous préférez déléguer l’exploitation.
Critères d’acceptation
- Le service rabbitmq-server est actif et en cours d’exécution : systemctl status rabbitmq-server retourne Active: active (running).
- Le plugin rabbitmq_management est activé et accessible sur le port 15672.
- Un utilisateur administrateur fonctionne et peut créer des vhosts et des files.
- Les règles de pare-feu autorisent les ports requis et SELinux n’empêche pas le service.
Checklist par rôle
- Administrateur système
- Vérifier que systemd démarre le service.
- Configurer la rotation des logs et les sauvegardes.
- Sécurité/DevSecOps
- Activer TLS et restreindre l’accès réseau.
- Supprimer l’utilisateur Guest.
- Développeur
- Tester la connexion AMQP depuis l’application.
- Vérifier les permissions du vhost.
Tests et cas d’acceptation
- Test 1 : connexion AMQP basique (publisher/consumer) sur le port 5672.
- Test 2 : accès à l’interface de gestion via HTTP sur 15672.
- Test 3 : création/suppression d’une file depuis l’interface.
- Test 4 : redémarrage du service sans perte de configuration.
Dépannage rapide
- Logs : journalctl -u rabbitmq-server ou /var/log/rabbitmq/*.log
- Réinitialiser l’état d’un nœud pour tests : rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl start_app
Important : la commande reset supprime l’état local. Ne l’utilisez pas en production sans précaution.
Notes de compatibilité et migration
- La version utilisée dans cet exemple est 3.6.10 (fournie pour illustration). Les exigences d’Erlang changent selon les versions de RabbitMQ. Vérifiez la matrice de compatibilité officielle avant une mise à jour en production.
Conclusion
Vous avez installé RabbitMQ sur CentOS 7, activé la console de gestion et configuré les règles de pare-feu et SELinux de base. Pour aller plus loin : activez TLS, automatisez les sauvegardes, et surveillez les indicateurs opérationnels.
Résumé des prochaines étapes recommandées : sécuriser TLS, intégrer la surveillance, planifier les mises à jour et tester en préproduction.
Matériaux similaires

Annuler un abonnement Netflix facilement

Corriger l'erreur «Oups, quelque chose s'est mal passé»

Conserver icônes et pointeur Windows

Discord bloqué sur la recherche de mises à jour

Corriger no boot device found sur Windows
