Les sauvegardes RabbitMQ sont une représentation JSON des métadonnées de votre courtier. Cela inclut les utilisateurs, les vhosts, les files d'attente, les échanges et les liaisons. Les sauvegardes sont effectuées sur un cluster en cours d'exécution à l'aide de export
commande fournie par le plugin de gestion RabbitMQ. Les messages ne sont pas inclus dans la sauvegarde.
Contenu associé
- Comment installer Erlang sur ArchLinux
- Comment installer Erlang sur FreeBSD 13
- Comment installer RabbitMQ dans FreeBSD 13
- Comment installer Erlang sur Ubuntu 20.04
- Comment installer Erlang sur OpenSUSE Leap 15.3
- Comment installer RabbitMQ dans OpenSUSE Leap 15.3
- Comment installer Erlang sur Fedora 35
- Comment installer RabbitMQ dans Fedora 35
- Comment installer Erlang sur Rocky Linux/Alma Linux/CentOS 8
- Comment installer et activer le référentiel EPEL sur Rocky Linux/Centos 8
État du cluster RabbitMQ
Pour obtenir l'état du cluster
sudo rabbitmqctl cluster_status
Sortie sur mon serveur
$ sudo rabbitmqctl cluster_status
/usr/lib/erlang/erts-12.1.5/bin/beam.smp: /usr/lib/libncursesw.so.6: no version information available (required by /usr/lib/erlang/erts-12.1.5/bin/beam.smp)
Cluster status of node [email protected] ...
Basics
Cluster name: [email protected]
Disk Nodes
[email protected]
Running Nodes
[email protected]
Versions
[email protected]: RabbitMQ 3.8.22 on Erlang 24.1.7
Maintenance status
Node: [email protected], status: not under maintenance
Alarms
(none)
Network Partitions
(none)
Listeners
Node: [email protected], interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Node: [email protected], interface: 0.0.0.0, port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Node: [email protected], interface: [::], port: 15672, protocol: http, purpose: HTTP API
Feature flags
Flag: drop_unroutable_metric, state: disabled
Flag: empty_basic_get_metric, state: disabled
Flag: implicit_default_bindings, state: enabled
Flag: maintenance_mode_status, state: enabled
Flag: quorum_queue, state: enabled
Flag: user_limits, state: enabled
Flag: virtual_host_metadata, state: enabled
Téléchargement rabbitmqadmin
L'outil de ligne de commande rabbitmqadmin sera utilisé pour la sauvegarde et la restauration.
Le plug-in de gestion est livré avec un outil de ligne de commande rabbitmqadmin. Vous devez activer le plugin de gestion :
sudo rabbitmq-plugins enable rabbitmq_management
Ma sortie
~> 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]
Plugin configuration unchanged.
Ce plug-in est utilisé pour effectuer certaines des mêmes actions que l'interface utilisateur Web et peut être plus pratique pour les tâches d'automatisation.
Une fois que vous avez activé le plug-in de gestion, téléchargez rabbitmqadmin
Outil de ligne de commande Python qui interagit avec l'API HTTP. Il peut être téléchargé à partir de n'importe quel nœud RabbitMQ sur lequel le plug-in de gestion est activé sur
http://{node-hostname}:15672/cli/
Une fois téléchargé, rendez le fichier exécutable et déplacez-le vers /usr/local/bin
répertoire :
chmod +x rabbitmqadmin
sudo mv rabbitmqadmin /usr/local/bin
Comment sauvegarder les configurations de RabbitMQ
La sauvegarde RabbitMQ n'inclut pas les messages car ils sont stockés dans une banque de messages distincte. Il ne sauvegardera que les utilisateurs RabbitMQ, les vhosts, les files d'attente, les échanges et les liaisons. Le fichier de sauvegarde est une représentation JSON des métadonnées RabbitMQ.
Pour sauvegarder les configurations de RabbitMQ, utilisez la commande :
rabbitmqadmin export <backup-file-name>
Exemple :
$ rabbitmqadmin export rabbitmq-backup-config.json Exported definitions for localhost to "rabbitmq-backup-config.json"
L'exportation sera écrite dans le fichier rabbitmq-backup-config.json
.
Comment restaurer la sauvegarde des configurations RabbitMQ
Pour restaurer vos configurations RabbitMQ à partir d'une sauvegarde, utilisez la commande :
rabbitmqadmin import <JSON backup file >
Exemple
$ rabbitmqadmin import rabbitmq-backup-config.json Imported definitions for localhost from "rabbitmq-backup.json"
Comment sauvegarder les données de RabbitMQ
Les définitions et les messages RabbitMQ sont stockés dans une base de données interne située dans le répertoire de données du nœud. Pour obtenir le chemin du répertoire, exécutez la commande suivante sur un nœud RabbitMQ en cours d'exécution :
sudo rabbitmqctl eval 'rabbit_mnesia:dir().'
Exemple de sortie :
$ sudo rabbitmqctl eval 'rabbit_mnesia:dir().' "/var/lib/rabbitmq/mnesia/[email protected]"
Ce répertoire contient de nombreux fichiers :
# ls /var/lib/rabbitmq/mnesia/[email protected] cluster_nodes.config msg_stores rabbit_durable_exchange.DCD rabbit_durable_queue.DCL rabbit_runtime_parameters.DCL rabbit_user.DCD rabbit_vhost.DCD DECISION_TAB.LOG nodes_running_at_shutdown rabbit_durable_exchange.DCL rabbit_durable_route.DCD rabbit_serial rabbit_user_permission.DCD schema.DAT LATEST.LOG quorum rabbit_durable_queue.DCD rabbit_runtime_parameters.DCD rabbit_topic_permission.DCD rabbit_user_permission.DCL schema_version
Dans les versions de RabbitMQ commençant par 3.7.0, toutes les données des messages sont combinées dans le répertoire msg_stores/vhosts et stockées dans un sous-répertoire par vhost. Chaque répertoire vhost est nommé avec un hachage et contient un fichier .vhost avec le nom du vhost, de sorte que l'ensemble de messages d'un vhost spécifique peut être sauvegardé séparément.
Pour effectuer la sauvegarde des définitions et des messages de RabbitMQ, copiez ou archivez ce répertoire et son contenu. Mais d'abord, vous devez arrêter le service RabbitMQ
sudo systemctl stop rabbitmq-server
L'exemple ci-dessous créera une archive :
tar cvf rabbitmq-backup.tgz /var/lib/rabbitmq/mnesia/[email protected]
Comment restaurer les données RabbitMQ
Pour restaurer à partir de la sauvegarde, extrayez les fichiers de la sauvegarde dans le répertoire de données.
La base de données interne des nœuds stocke le nom du nœud dans certains enregistrements. Si le nom du nœud change, la base de données doit d'abord être mise à jour pour refléter le changement à l'aide de la commande rabbitmqctl suivante :
rabbitmqctl rename_cluster_node <oldnode> <newnode>
Lorsqu'un nouveau nœud démarre avec un répertoire sauvegardé et un nom de nœud correspondant, il doit effectuer les étapes de mise à niveau nécessaires et procéder au démarrage.
Conclusion
Dans ce guide, nous avons exploré comment sauvegarder et restaurer les données rabbitmq.