Installation et configuration de RabbitMQ
Documentation
RabbitMQ :
- RabbitMQ Production Checklist
- RabbitMQ Prometheus exporter
- RabbitMQ Config file exemple complet
- RabbitMQ Authorisation and access control
- RabbitMQctl
Modules ansible-galaxy :
Configuration
Les modifications de configuration sont à faire dans le fichier templates/rabbitmq.conf.j2
Variables
- rabbitmq_cluster_name : Nom du cluster rabbitq. (Default: default)
- rabbitmq_cluster_nodes : Liste des noeuds appartenant au cluster.
- rabbitmq_admin_username : Nom de l'utilisateur admin. (Default : admin)
- rabbitmq_admin_password : Mot de passe de l'utilisateur admin.
- rabbitmq_plugins: Liste des plugins Rabbitmq à installer. (Default : rabbitmq_management,rabbitmq_shovel,rabbitmq_prometheus)
- rabbitmq_vhosts : Liste des vhosts. (Default : "/")
- rabbitmq_app_users : Liste des utilisateurs applicatifs à créer. Par défaut les utilisateurs ont tous les privilèges sur le vhost.
rabbitmq_app_users:
- username: "test"
password: "changeme"
vhost: "test"
Fonctionnalités
- Installe les dépendances du rôle, rabbitmq et erlang.
- Supprime l'utilisateur guest créé par défaut et créer un utilisateur admin.
- Active les plugins de management (interface web), prometheus (exporter intégré) et shovel.
- Déploie les utilisateurs et les vhosts applicatifs.
Tags
- install : installe rabbitmq et ses dépendances.
- config : supprime l'utilisateur guest, créer l'utilisateur admin, les vhosts et les utilisateurs applicatifs.
- users: deploie les utilisateurs et les vhosts.
Premier lancement pour création d'un cluster
- Lancer le playbook avec le tag install :
ansible-playbook -l rabbitmq playbooks/rabbitmq.yml -t install
- Se rendre sur les machines 2 et 3 et renseigner les commandes suivantes pour créer le cluster :
rabbitmqctl stop_app
rabbitmqctl --longnames join_cluster rabbit@rabbit-1
rabbitmqctl start_app
- Lancer le playbook avec le tag config :
ansible-playbook -l rabbitmq playbooks/rabbitmq.yml -t config
Modification de configuration
- Déploiement des utilisateurs applicatifs et des vhosts :
ansible-playbook playbooks/rabbitmq.yml -t users -l rabbitmq
Tests de performance
Pré-requis
- Installer Java
- Créer un utilisateur avec tous les droits sur un vhost dédiés.
rabbitmqctl add_vhost testsla
rabbitmqctl add_user test_sla sebisdown -p testsla
rabbitmqctl set_permissions -p testsla test_sla ".*" ".*" ".*"
Exemple de test
- Test sur une quorum-queue nommée 'qq', avec des messages de 4Ko publiés par 5 process et consommés par 15 process. Avec des taux variables : 200 msg/process/seconde pendant 240 secondes puis 400 msg/process/seconde pendant 120 secondes puis 300 msg/process/seconde pendant 120 secondes, en boucle.
java -jar perf-test-2.20.0.jar -h amqp://test_sla:sebisdown@rabbitmq/testsla --quorum-queue --queue qq --size 4000 --variable-rate 200:240 --variable-rate 400:120 --variable-rate 300:120 --producers 5 --consumers 15
- Test illimité avec un seul publieur et un consommateur.
java -jar perf-test-2.20.0.jar -h amqp://test_sla:sebisdown@rabbitmq/testsla
- Test illimité sur une quorum-queue avec un seul publieur et un consommateur.
java -jar perf-test-2.20.0.jar -h amqp://test_sla:sebisdown@rabbitmq/testsla --quorum-queue --queue qq
- Test illimité sur une quorum-queue avec un taux de 100 msg/secondes pour un seul publieur et un seul consommateur.
java -jar perf-test-2.20.0.jar -h amqp://test_sla:sebisdown@rabbitmq/testsla --quorum-queue --queue qq --rate 100
Description
Languages
Jinja
100%