Comment configurer un cluster RabbitMQ sur Ubuntu 18.04 LTS

RabbitMQ est un logiciel open source de mise en file d’attente des messages qui, à l’origine, mettait en œuvre le protocole AMQP (Advanced Message Queuing Protocol). Il a ensuite été développé et étendu afin de prendre en charge d’autres protocoles tels que STOMP (Streaming Text Oriented Messaging Protocol) et MQTT (Message Queuing Telemetry Transport).

Un logiciel de mise en file d’attente des messages / courtier en messages est utilisé pour envoyer et recevoir des messages entre des systèmes, des applications et des services distribués. RabbitMQ est écrit dans le langage de programmation Erlang, il offre une prise en charge des interfaces client et des bibliothèques pour tous les principaux langages de programmation, notamment Python, NodeJS, Java, PHP, etc.

Dans ce tutoriel, je vais te montrer comment configurer un Cluster RabbitMQ sur le serveur Ubuntu 18.04. Je vais installer un Cluster RabbitMQ en utilisant trois serveurs Ubuntu, activer la gestion de RabbitMQ et configurer la politique HA pour tous les nœuds.

Conditions préalables

  • 3 serveurs Ubuntu 18.04 ou plus
    • 10.0.15.21 hakase-ubuntu01
    • 10.0.15.22 hakase-ubuntu02
    • 10.0.15.23 hakase-ubuntu03
  • Privilèges de racine

Ce que nous allons faire ?

  1. Configurer le fichier Hosts
  2. Installer le serveur RabbitMQ
  3. Activer les plugins de gestion
  4. Configurer le pare-feu UFW
  5. Configurer le cluster RabbitMQ
  6. Configurer un nouvel utilisateur administrateur
  7. Configuration de RabbitMQ Queue Mirroring
  8. Test de

Étape 1 – Configuration du fichier Hosts

Dans cette étape, nous allons modifier le fichier ‘/etc/hosts’ sur tous les serveurs et mapper chaque adresse IP de serveur en tant que nom d’hôte.

Modifie le fichier ‘/etc/hosts’ à l’aide de l’éditeurvim.

sudo vim /etc/hosts

Colle maintenant la configuration suivante dans ce fichier.

10.0.15.21 hakase-ubuntu01
10.0.15.22 hakase-ubuntu02
10.0.15.23 hakase-ubuntu03

Sauvegarde et quitte.

Étape 2 – Installe le serveur RabbitMQ

Avant d’installer le serveur RabbitMQ, assure-toi que tous les référentiels sont mis à jour.

Exécute la commande suivante.

sudo apt update
sudo apt upgrade

Installe maintenant les paquets du serveur RabbitMQ à partir du dépôt Ubuntu en utilisant la commande apt ci-dessous.

sudo apt install rabbitmq-server -y

Et une fois l’installation terminée, démarre le service RabbitMQ et active-le pour qu’il se lance à chaque fois au démarrage du système.

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

Le serveur RabbitMQ a été installé sur Ubuntu 18.04.

Installer le serveur RabbitMQ

Étape 3 – Activer les plugins de gestion RabbitMQ

Dans cette étape, nous allons activer les plugins de gestion RabbitMQ. Il s’agit d’une interface qui te permet de surveiller et de gérer le serveur RabbitMQ depuis le navigateur Web, fonctionnant sur le port TCP par défaut ‘15672’.

Active les plugins de gestion RabbitMQ en exécutant la commande ci-dessous.

sudo rabbitmq-plugins enable rabbitmq_management

Assure-toi qu’il n’y a pas d’erreur, puis redémarre le service RabbitMQ.

sudo systemctl restart rabbitmq-server

Les plugins de gestion RabbitMQ ont été activés.

Enable RabbitMQ Management Plugins

Étape 4 – Configurer le pare-feu UFW

Dans ce tutoriel, nous allons activer le pare-feu Ubuntu UFW. Nous devons ouvrir certains ports qui seront utilisés par le serveur RabbitMQ.

Ajoute le service ssh au pare-feu UFW et active le service du pare-feu.

sudo ufw allow ssh
sudo ufw enable

Ajoute maintenant les nouveaux ports tcp de RabbitMQ ‘5672,15672,4369,25672’.

sudo ufw allow 5672,15672,4369,25672/tcp

Puis vérifie la liste des ports du pare-feu UFW.

sudo ufw status

Configurer le pare-feu UFW

La configuration du pare-feu UFW d’Ubuntu est terminée et nous sommes prêts à configurer le Cluster RabbitMQ.

Étape 5 – Configurer le Cluster RabbitMQ

Pour configurer le cluster RabbitMQ, nous devons nous assurer que le fichier ‘.erlang.cookie’ est le même sur tous les nœuds. Nous allons copier le fichier ‘.erlang.cookie’ dans le répertoire ‘/var/lib/rabbitmq’ de ‘hakase-ubuntu01’ vers les autres nœuds ‘hakase-ubuntu02’ et ‘hakase-ubuntu03’.

Copie le fichier ‘.erlang.cookie’ à l’aide des commandes scp depuis ‘hakase-ubuntu01’.

scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/

Assure-toi qu’il n’y a pas d’erreur sur les deux serveurs.

Configurer le cluster RabbitMQ

Ensuite, nous devons configurer ‘hakase-ubuntu02’ et ‘hakase-ubuntu03’ pour qu’ils rejoignent le cluster ‘hakase-ubuntu01’.

Remarque :

  • Exécute les commandes ci-dessous sur les serveurs ‘hakase-ubuntu02’ et ‘hakase-ubuntu03’.

Redémarre le service RabbitMQ et arrête l’application.

sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app

Laisse maintenant le serveur RabbitMQ des deux nœuds rejoindre le cluster sur ‘hakase-ubuntu01’, puis lance l’application.

sudo rabbitmqctl join_cluster [email protected]
sudo rabbitmqctl start_app

Quand elle est terminée, vérifie le statut du cluster RabbitMQ.

sudo rabbitmqctl cluster_status

Tu obtiendras les résultats ci-dessous.

démarre rabbitmq

Le cluster RabbitMQ a été créé, avec hakase-ubuntu01, hakase-ubuntu02 et hakase-ubuntu03 comme membres.

Étape 6 – Configurer un nouvel utilisateur administrateur

Dans ce tutoriel, nous allons créer un nouvel utilisateur administrateur pour notre serveur RabbitMQ et supprimer l’utilisateur ‘invité’ par défaut. Nous allons créer un nouvel utilisateur à partir de ‘hakase-ubuntu01’, et il sera automatiquement répliqué sur tous les nœuds du cluster.

Ajoute un nouvel utilisateur nommé ‘hakase’ avec le mot de passe ‘[email protected]’.

sudo rabbitmqctl add_user hakase [email protected]

Configure l’utilisateur ‘hakase’ en tant qu’administrateur.

sudo rabbitmqctl set_user_tags hakase administrator

Et accorde à l’utilisateur ‘hakase’ le droit de modifier, d’écrire et de lire tous les vhosts.

sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"

Supprime maintenant l’utilisateur ‘guest’ par défaut.

sudo rabbitmqctl delete_user guest

Et vérifie tous les utilisateurs disponibles.

sudo rabbitmqctl list_users

Et tu obtiendras le résultat ci-dessous.

Ajoute l'utilisateur admin

Un nouvel utilisateur administrateur RabbitMQ a été créé et l’utilisateur ‘guest’ par défaut a été supprimé.

Étape 7 – RabbitMQ configure la mise en miroir des files d’attente

Par défaut, le contenu d’une file d’attente dans un cluster RabbitMQ est situé sur un seul nœud (le nœud sur lequel la file d’attente a été déclarée).

Cette configuration est indispensable, nous devons configurer le cluster ‘ha policy’ pour la mise en miroir des files d’attente et la réplication vers tous les nœuds du cluster. Si le nœud qui héberge le maître de la file d’attente tombe en panne, le miroir le plus ancien sera promu au nouveau maître tant qu’il sera synchronisé, en fonction des politiques ‘ha-mode’ et ‘ha-params’.

Voici quelques exemples de politiques ha de RabbitMQ.

Configure la politique ha nommée ‘ha-all’ pour que toutes les files d’attente du cluster RabbitMQ soient mises en miroir vers tous les nœuds du cluster.

sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

Configure la politique ha nommée ‘ha-two’ pour que toutes les files d’attente dont le nom commence par ‘deux’ soient mises en miroir vers les deux nœuds du cluster.

sudo rabbitmqctl set_policy ha-two "^two\." \
   '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

Configure une politique de haute disponibilité nommée ‘ha-nodes’ qui contiendra toutes les files d’attente dont le nom commence par ‘nodes’. Nous allons créer un miroir sur deux nœuds spécifiques ‘hakase-ubuntu02’ et ‘hakase-ubuntu03’ dans le cluster.

sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
   '{"ha-mode":"nodes","ha-params":["[email protected]", "[email protected]"]}'

RabbitMQ liste les politiques de ha.

sudo rabbitmqctl list_policies;

RabbitMQ supprime une politique ha spécifique.

sudo rabbitmqctl clear_policy ha-two

Configurer la réplication

Étape 8 – Test

Ouvre ton navigateur Web et tape l’adresse IP du nœud avec le port ‘15672’.

http://10.0.15.21:15672/

Saisis le nom d’utilisateur ‘hakase’ et le mot de passe ‘[email protected]’.

Connecte-toi à RabbitMQ

Et tu obtiendras le tableau de bord d’administration de RabbitMQ comme indiqué ci-dessous.

Tableau de bord RabbitMQ

L’état de tous les nœuds de cluster est opérationnel.

Clique maintenant sur le menu de l’onglet ‘Admin’, puis sur le menu ‘Users’ sur le côté.

Et tu obtiendras l’utilisateur hakase dans la liste.

User list

Clique maintenant sur le menu de l’onglet ‘Admin’, et clique sur le menu ‘Politiques’ sur le côté.

Et tu obtiendras toutes les politiques RabbitMQ ha que nous avons créées.

Politiques

L’installation et la configuration de RabbitMQ Cluster sur les serveurs Ubuntu 18.04 ont été effectuées avec succès.

Référence

Vous aimerez aussi...