GNU/Linux >> Tutoriels Linux >  >> Linux

Comment sauvegarder et restaurer les données et les configurations de RabbitMQ

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.


Linux
  1. MySQL :comment sauvegarder (vider) et restaurer une base de données à l'aide de mysqldump

  2. Comment sauvegarder et restaurer le référentiel SVN sous Linux

  3. Comment sauvegarder et restaurer la base de données Postgres

  4. Comment créer et restaurer une sauvegarde dans Plesk

  5. Comment sauvegarder et restaurer une base de données dans PostgreSQL

Comment sauvegarder et restaurer des données à l'aide de Retic sous Linux

Comment sauvegarder et restaurer le système Linux avec Timeshift

Comment sauvegarder et restaurer des fichiers à l'aide de BorgBackup sous Linux

Fwbackups - Comment installer et sauvegarder vos données sur Ubuntu

Comment utiliser Timeshift pour sauvegarder et restaurer Linux

Comment sauvegarder et restaurer un site Web WordPress