GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo hacer una copia de seguridad y restaurar datos y configuraciones de RabbitMQ

Las copias de seguridad de RabbitMQ son una representación JSON de los metadatos de su corredor. Esto incluye usuarios, hosts virtuales, colas, intercambios y enlaces. Las copias de seguridad se realizan en un clúster en ejecución mediante export Comando proporcionado por el complemento de administración RabbitMQ. Los mensajes no se incluyen en la copia de seguridad.

Contenido relacionado

  • Cómo instalar Erlang en ArchLinux
  • Cómo instalar Erlang en FreeBSD 13
  • Cómo instalar RabbitMQ en FreeBSD 13
  • Cómo instalar Erlang en Ubuntu 20.04
  • Cómo instalar Erlang en OpenSUSE Leap 15.3
  • Cómo instalar RabbitMQ en OpenSUSE Leap 15.3
  • Cómo instalar Erlang en Fedora 35
  • Cómo instalar RabbitMQ en Fedora 35
  • Cómo instalar Erlang en Rocky Linux/Alma Linux/CentOS 8
  • Cómo instalar y habilitar el repositorio EPEL en Rocky Linux/Centos 8

Estado del clúster de RabbitMQ

Para obtener el estado del clúster

sudo rabbitmqctl cluster_status

Salida en mi servidor

$ 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

Descargando rabbitmqadmin

La herramienta de línea de comandos rabbitmqadmin se utilizará para realizar copias de seguridad y restaurar.

El complemento de administración se envía con una herramienta de línea de comandos rabbitmqadmin. Debe habilitar el complemento de administración:

sudo rabbitmq-plugins enable rabbitmq_management

Mi salida

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

Este complemento se usa para realizar algunas de las mismas acciones que la interfaz de usuario basada en web y que pueden ser más convenientes para las tareas de automatización.

Una vez que habilite el complemento de administración, descargue rabbitmqadmin Herramienta de línea de comandos de Python que interactúa con la API HTTP. Se puede descargar desde cualquier nodo RabbitMQ que tenga habilitado el complemento de administración en

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

Una vez descargado, haga que el archivo sea ejecutable y muévalo a /usr/local/bin directorio:

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

Cómo hacer una copia de seguridad de las configuraciones de RabbitMQ

La copia de seguridad de RabbitMQ no incluye mensajes, ya que se almacenan en un almacén de mensajes separado. Solo realizará copias de seguridad de usuarios, vhosts, colas, intercambios y enlaces de RabbitMQ. El archivo de copia de seguridad es una representación JSON de los metadatos de RabbitMQ.

Para hacer una copia de seguridad de las configuraciones de RabbitMQ, use el comando:

rabbitmqadmin export <backup-file-name>

Ejemplo:

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

La exportación se escribirá en el archivo rabbitmq-backup-config.json .

Cómo restaurar la copia de seguridad de las configuraciones de RabbitMQ

Para restaurar sus configuraciones de RabbitMQ desde una copia de seguridad, use el comando:

rabbitmqadmin import <JSON backup file >

Ejemplo

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

Cómo hacer una copia de seguridad de los datos de RabbitMQ

Las definiciones y los mensajes de RabbitMQ se almacenan en una base de datos interna ubicada en el directorio de datos del nodo. Para obtener la ruta del directorio, ejecute el siguiente comando en un nodo RabbitMQ en ejecución:

sudo rabbitmqctl eval 'rabbit_mnesia:dir().'

Salida de muestra:

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

Este directorio contiene muchos archivos:

# 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

En las versiones de RabbitMQ que comienzan con 3.7.0, todos los datos de los mensajes se combinan en el directorio msg_stores/vhosts y se almacenan en un subdirectorio por vhost. Cada directorio de vhost se nombra con un hash y contiene un archivo .vhost con el nombre de vhost, por lo que se puede hacer una copia de seguridad del conjunto de mensajes de un vhost específico por separado.

Para hacer una copia de seguridad de los datos de mensajes y definiciones de RabbitMQ, copie o archive este directorio y su contenido. Pero primero, debe detener el servicio RabbitMQ

sudo systemctl stop rabbitmq-server

El siguiente ejemplo creará un archivo:

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

Cómo restaurar datos de RabbitMQ

Para restaurar desde la copia de seguridad, extraiga los archivos de la copia de seguridad al directorio de datos.

La base de datos interna del nodo almacena el nombre del nodo en ciertos registros. Si el nombre del nodo cambia, primero se debe actualizar la base de datos para reflejar el cambio mediante el siguiente comando rabbitmqctl:

rabbitmqctl rename_cluster_node <oldnode> <newnode>

Cuando un nuevo nodo comienza con un directorio respaldado y un nombre de nodo coincidente, debe realizar los pasos de actualización según sea necesario y continuar con el arranque.

Conclusión

En esta guía exploramos cómo hacer una copia de seguridad y restaurar datos de rabbitmq.


Linux
  1. MySQL:cómo hacer una copia de seguridad (volcar) y restaurar una base de datos usando mysqldump

  2. Cómo hacer una copia de seguridad y restaurar el repositorio SVN en Linux

  3. Cómo hacer una copia de seguridad y restaurar la base de datos de Postgres

  4. Cómo crear y restaurar copias de seguridad en cPanel

  5. Cómo crear y restaurar una copia de seguridad en Plesk

Cómo hacer una copia de seguridad y restaurar datos usando Ristic en Linux

Cómo hacer una copia de seguridad y restaurar el sistema Linux con Timeshift

Cómo hacer una copia de seguridad y restaurar archivos usando BorgBackup en Linux

Fwbackups:cómo instalar y hacer una copia de seguridad de sus datos en Ubuntu

Cómo utilizar Timeshift para realizar copias de seguridad y restaurar Linux

Cómo hacer una copia de seguridad y restaurar un sitio web de WordPress