RabbitMQ est un logiciel de courtage de messages open source qui implémente le protocole AMQP (Advanced Message Queuing Protocol). RabbitMQ fonctionne en recevant des messages des éditeurs (applications qui les publient) et les achemine vers les consommateurs (applications qui les traitent).
Contenu associé
- Comment installer Erlang sur Rocky Linux/Alma Linux/CentOS 8
- Comment installer et activer le référentiel EPEL sur Rocky Linux/Centos 8
- Comment installer RabbitMQ dans Fedora 35
- Comment installer Erlang sur Fedora 35
Prérequis
Pour suivre, assurez-vous d'avoir les éléments suivants
- Un serveur Rocky Linux/Centos 8 mis à jour
- Accès à Internet
- Accès root ou utilisateur avec accès Sudo
Table des matières
- Mise à jour du système
- Ajout du référentiel PackageCloud Yum
- Installer Erlang
- Installer RabbitMQ
- Démarrage et activation du service rabbitmq-server
- Facultatif :Activer le tableau de bord RabbitMQ
- Commandes de base de gestion des utilisateurs RabbitMQ
1. Mise à jour du système
Avant de continuer, assurez-vous que les packages du serveur sont à jour. Utilisez cette commande pour y parvenir :
sudo dnf -y update
2. Ajout du référentiel PackageCloud Yum
Le package RabbitMQ est distribué via les référentiels Yum sur PackageCloud. Installez le référentiel PackageCloud Yum à l'aide de cette commande :
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
Voici la sortie sur mon serveur :
$ curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
Detected operating system as rocky/8.
Checking for curl...
Detected curl...
Downloading repository file: https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/config_file.repo?os=rocky&dist=8&source=script
done.
Installing yum-utils...
rabbitmq_rabbitmq-server-source 1.4 kB/s | 819 B 00:00
rabbitmq_rabbitmq-server-source 23 kB/s | 3.9 kB 00:00
Importing GPG key 0x4D206F89:
Userid : "https://packagecloud.io/rabbitmq/rabbitmq-server (https://packagecloud.io/docs#gpg_signing) <[email protected]>"
Fingerprint: 8C69 5B02 19AF DEB0 4A05 8ED8 F4E7 8920 4D20 6F89
From : https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
rabbitmq_rabbitmq-server-source 398 B/s | 296 B 00:00
Package yum-utils-4.0.18-4.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Generating yum cache for rabbitmq_rabbitmq-server...
Importing GPG key 0x4D206F89:
Userid : "https://packagecloud.io/rabbitmq/rabbitmq-server (https://packagecloud.io/docs#gpg_signing) <[email protected]>"
Fingerprint: 8C69 5B02 19AF DEB0 4A05 8ED8 F4E7 8920 4D20 6F89
From : https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
Generating yum cache for rabbitmq_rabbitmq-server-source...
The repository is setup! You can now install packages.
3. Installer Erlang
RabbitMQ nécessite Erlang/OTP pour fonctionner. Le projet rabbitmq/erlang-rpm fournit un package Erlang RPM 64 bits sans dépendance qui fournit juste assez pour exécuter RabbitMQ . Obtenez les dernières versions des versions ici https://github.com/rabbitmq/erlang-rpm/releases.
curl -LO -C - https://github.com/rabbitmq/erlang-rpm/releases/download/v24.1.4/erlang-24.1.4-1.el8.x86_64.rpm
Installez ensuite le fichier téléchargé
sudo dnf install ./erlang-24.1.4-1.el8.x86_64.rpm
Ceci est la sortie sur mon serveur
$ sudo dnf install ./erlang-24.1.4-1.el8.x86_64.rpm
rabbitmq_rabbitmq-server 1.3 kB/s | 833 B 00:00
rabbitmq_rabbitmq-server-source 1.6 kB/s | 819 B 00:00
Dependencies resolved.
=====================================================================================================
Package Architecture Version Repository Size
=====================================================================================================
Installing:
erlang x86_64 24.1.4-1.el8 @commandline 20 M
Transaction Summary
=====================================================================================================
Install 1 Package
Total size: 20 M
Installed size: 36 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : erlang-24.1.4-1.el8.x86_64 1/1
Running scriptlet: erlang-24.1.4-1.el8.x86_64 1/1
Verifying : erlang-24.1.4-1.el8.x86_64 1/1
Installed:
erlang-24.1.4-1.el8.x86_64
Complete!
4. Installation de Rabbitmq
Une fois que vous avez configuré le référentiel RabbitMQ, installez RabbitMQ Server à l'aide des commandes ci-dessous.
sudo dnf install -y rabbitmq-server
Les détails du package peuvent être interrogés à l'aide de rpm
commande avec l'option -qi
.
$ rpm -qi rabbitmq-serverName :rabbitmq-serverVersion :3.9.9Release :1.el8Architecture :noarchInstall Date :Thu 11 Nov 2021 07:00:01 PM UTCGroup :Development/LibrariesSize :19373970License :MPLv2.0 and MIT and ASL 2.0 et BSDSignature :RSA/SHA512, Jeu 11 Nov 2021 02:33:37 PM UTC, Key ID 6b73a36e6026dfcaSource RPM :rabbitmq-server-3.9.9-1.el8.src.rpmDate de compilation :Jeu 11 Nov 2021 02:33 :35 PM UTCBuild Host :d4cd7bb3-d581-4bc0-6514-d4dc9ef3ea72Relocations :(non relocalisable)URL :https://www.rabbitmq.com/Summary :Le serveur RabbitMQDescription :RabbitMQ est un courtier de messagerie multi-protocole open source.5. Démarrage et activation du service rabbitmq-server
Démarrer le service
sudo systemctl start rabbitmq-server
Vérifiez ensuite l'état pour confirmer son exécution
$ sudo systemctl status rabbitmq-server ● rabbitmq-server.service - RabbitMQ broker Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2021-11-11 19:01:51 UTC; 28s ago Main PID: 76165 (beam.smp) Tasks: 24 (limit: 23167) Memory: 95.7M CGroup: /system.slice/rabbitmq-server.service ├─76165 /usr/lib64/erlang/erts-12.1.4/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwt> ├─76180 erl_child_setup 32768 ├─76203 /usr/lib64/erlang/erts-12.1.4/bin/epmd -daemon ├─76224 inet_gethost 4 └─76225 inet_gethost 4 Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Doc guides: https://rabbitmq.com/documentation.html Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Support: https://rabbitmq.com/contact.html Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Tutorials: https://rabbitmq.com/getstarted.html Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Monitoring: https://rabbitmq.com/monitoring.html Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Logs: /var/log/rabbitmq/[email protected] Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: /var/log/rabbitmq/[email protected]_upgrade.log Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: <stdout> Nov 11 19:01:49 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Config file(s): (none) Nov 11 19:01:51 ip-10-2-40-72.us-west-2.compute.internal rabbitmq-server[76165]: Starting broker... completed with 0 plugins. Nov 11 19:01:51 ip-10-2-40-72.us-west-2.compute.internal systemd[1]: Started RabbitMQ broker.
Vous pouvez maintenant l'activer au démarrage
sudo systemctl enable rabbitmq-server
Vous pouvez obtenir l'état des composants internes de rabbitmq :
$ sudo rabbitmqctl status
6. Facultatif :activation du tableau de bord RabbitMQ
Utilisez le
rabbitmq-plugins enable
commande pour activer le tableau de bord de gestion :$ sudo rabbitmq-plugins enable rabbitmq_management Enabling plugins on node [email protected]: rabbitmq_management The following plugins have been configured: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch Applying plugin configuration to [email protected] The following plugins have been enabled: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch started 3 plugins.
Le service Web est en écoute sur le port 15672
$ ss -tunlp | grep 15672 tcp LISTEN 0 128 0.0.0.0:15672 0.0.0.0:*
Si vous disposez d'un service Firewalld actif, autorisez les ports
5672
et15672
sudo firewall-cmd --add-port={5672,15672}/tcp --permanent sudo firewall-cmd --reload
Accédez-y en ouvrant l'URL
http://[server IP]:15672
comme http://127.0.0.1:15672Par défaut, l'invité l'utilisateur existe et ne peut se connecter qu'à partir de
localhost
. Vous pouvez vous connecter localement avec cet utilisateur avec le mot de passe "invité"Pour pouvoir vous connecter au réseau, créez un utilisateur administrateur comme ci-dessous :
$ sudo rabbitmqctl add_user admin Sec3tAjout de l'utilisateur "admin" ...Terminé. N'oubliez pas d'accorder les autorisations utilisateur à certains hôtes virtuels ! Voir 'rabbitmqctl help set_permissions' pour en savoir plus.$ sudo rabbitmqctl set_user_tags admin administratorSetting tags for user "admin" to [administrator] ...Connectez-vous avec ce nom d'utilisateur administrateur et le mot de passe attribué. Vous devriez voir une interface similaire à celle ci-dessous :
Pour utiliser
rabbitmqadmin
outil de ligne de commande, copiez-le dans votre $PATH.sudo dnf install -y mlocatesudo mis à jourbsudo cp `locate rabbitmqadmin` /usr/local/bin/rabbitmqadminsudo chmod +x /usr/local/bin/rabbitmqadminVous devez avoir
python
installé et configuré pour exécuter rabbitmqadmin. Utilisez cette commande pour vous assurer que Python est installé :sudo dnf install -y python3
7. Commandes de base de gestion des utilisateurs RabbitMQ
Supprimer l'utilisateur :
sudo rabbitmqctl delete_user utilisateurModifier le mot de passe utilisateur :
sudo rabbitmqctl change_password utilisateur strongpasswordCréer un nouvel hôte virtuel :
sudo rabbitmqctl add_vhost /my_vhostLister les hôtes virtuels disponibles :
sudo rabbitmqctl list_vhostsSupprimer un hôte virtuel :
sudo rabbitmqctl delete_vhost /myvhostAccorder des autorisations utilisateur pour vhost :
sudo rabbitmqctl set_permissions -p /myvhost user ".*" ".*" ".*"Lister les autorisations vhost :
sudo rabbitmqctl list_permissions -p /myvhostPour répertorier les autorisations des utilisateurs :
rabbitmqctl list_user_permissions utilisateurSupprimer les autorisations utilisateur :
rabbitmqctl clear_permissions -p /utilisateur myvhostConclusion
Nous avons réussi à installer Rabbitmq dans ce guide