GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire il backup e il ripristino di dati e configurazioni di RabbitMQ

I backup RabbitMQ sono una rappresentazione JSON dei metadati del tuo broker. Ciò include utenti, vhost, code, scambi e associazioni. I backup vengono eseguiti su un cluster in esecuzione utilizzando export comando fornito dal plug-in di gestione RabbitMQ. I messaggi non sono inclusi nel backup.

Contenuti correlati

  • Come installare Erlang su ArchLinux
  • Come installare Erlang su FreeBSD 13
  • Come installare RabbitMQ in FreeBSD 13
  • Come installare Erlang su Ubuntu 20.04
  • Come installare Erlang su OpenSUSE Leap 15.3
  • Come installare RabbitMQ in OpenSUSE Leap 15.3
  • Come installare Erlang su Fedora 35
  • Come installare RabbitMQ in Fedora 35
  • Come installare Erlang su Rocky Linux/Alma Linux/CentOS 8
  • Come installare e abilitare il repository EPEL su Rocky Linux/Centos 8

Stato del cluster RabbitMQ

Per ottenere lo stato del cluster

sudo rabbitmqctl cluster_status

Output sul mio server

$ 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

Download di rabbitmqadmin

Lo strumento da riga di comando rabbitmqadmin verrà utilizzato per il backup e il ripristino.

Il plug-in di gestione viene fornito con uno strumento da riga di comando rabbitmqadmin. Devi abilitare il plug-in di gestione:

sudo rabbitmq-plugins enable rabbitmq_management

Il mio risultato

~> 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.

Questo plug-in viene utilizzato per eseguire alcune delle stesse azioni dell'interfaccia utente basata sul Web e potrebbe essere più conveniente per le attività di automazione.

Dopo aver abilitato il plug-in di gestione, scarica rabbitmqadmin Strumento da riga di comando Python che interagisce con l'API HTTP. Può essere scaricato da qualsiasi nodo RabbitMQ in cui è abilitato il plug-in di gestione in

http://{node-hostname}:15672/cli/

Una volta scaricato, rendi il file eseguibile e spostalo in /usr/local/bin directory:

chmod +x rabbitmqadmin
sudo mv rabbitmqadmin /usr/local/bin

Come eseguire il backup delle configurazioni di RabbitMQ

Il backup di RabbitMQ non include i messaggi poiché sono archiviati in un archivio messaggi separato. Eseguirà il backup solo di utenti, vhost, code, scambi e associazioni di RabbitMQ. Il file di backup è una rappresentazione JSON dei metadati RabbitMQ.

Per eseguire il backup delle configurazioni di RabbitMQ, utilizzare il comando:

rabbitmqadmin export <backup-file-name>

Esempio:

$ rabbitmqadmin export rabbitmq-backup-config.json
Exported definitions for localhost to "rabbitmq-backup-config.json"

L'esportazione verrà scritta nel filerabbitmq-backup-config.json .

Come ripristinare il backup delle configurazioni RabbitMQ

Per ripristinare le tue configurazioni RabbitMQ da un backup, usa il comando:

rabbitmqadmin import <JSON backup file >

Esempio

$ rabbitmqadmin import rabbitmq-backup-config.json
Imported definitions for localhost from "rabbitmq-backup.json"

Come eseguire il backup dei dati di RabbitMQ

Le definizioni e i messaggi di RabbitMQ sono archiviati in un database interno situato nella directory dei dati del nodo. Per ottenere il percorso della directory, esegui il seguente comando su un nodo RabbitMQ in esecuzione:

sudo rabbitmqctl eval 'rabbit_mnesia:dir().'

Esempio di output:

$ sudo rabbitmqctl eval 'rabbit_mnesia:dir().'
"/var/lib/rabbitmq/mnesia/[email protected]"

Questa directory contiene molti file:

# 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

Nelle versioni di RabbitMQ a partire dalla 3.7.0 tutti i dati dei messaggi vengono combinati nella directory msg_stores/vhosts e archiviati in una sottodirectory per vhost. Ciascuna directory vhost è denominata con un hash e contiene un file .vhost con il nome vhost, quindi è possibile eseguire il backup di un set di messaggi specifico di vhost separatamente.

Per eseguire il backup dei dati delle definizioni e dei messaggi di RabbitMQ, copia o archivia questa directory e il suo contenuto. Ma prima devi interrompere il servizio RabbitMQ

sudo systemctl stop rabbitmq-server

L'esempio seguente creerà un archivio:

tar cvf rabbitmq-backup.tgz /var/lib/rabbitmq/mnesia/[email protected]

Come ripristinare i dati RabbitMQ

Per ripristinare dal backup, estrai i file dal backup nella directory dei dati.

Il database del nodo interno memorizza il nome del nodo in determinati record. Se il nome del nodo dovesse cambiare, il database deve essere prima aggiornato per riflettere la modifica usando il seguente comando rabbitmqctl:

rabbitmqctl rename_cluster_node <oldnode> <newnode>

Quando un nuovo nodo inizia con una directory di cui è stato eseguito il backup e un nome nodo corrispondente, dovrebbe eseguire i passaggi di aggiornamento secondo necessità e procedere all'avvio.

Conclusione

In questa guida abbiamo esplorato come eseguire il backup e il ripristino dei dati di rabbitmq.


Linux
  1. MySQL:come eseguire il backup (scaricare) e ripristinare il database utilizzando mysqldump

  2. Come eseguire il backup e il ripristino del repository SVN in Linux

  3. Come creare e ripristinare un backup in Plesk

  4. Come eseguire il backup e il ripristino del database in PostgreSQL

  5. Come eseguire il backup e il ripristino dei container Docker

Come eseguire il backup e il ripristino dei dati utilizzando Restic in Linux

Come eseguire il backup e il ripristino del sistema Linux con Timeshift

Come eseguire il backup e il ripristino di file utilizzando BorgBackup in Linux

Fwbackups – Come installare ed eseguire il backup dei dati su Ubuntu

Come utilizzare Timeshift per eseguire il backup e il ripristino di Linux

Come eseguire il backup e il ripristino di un sito Web WordPress