GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So sichern und wiederherstellen Sie RabbitMQ-Daten und -Konfigurationen

RabbitMQ-Backups sind eine JSON-Darstellung der Metadaten Ihres Brokers. Dazu gehören Benutzer, vhosts, Warteschlangen, Austausch und Bindungen. Sicherungen werden mit dem export für einen laufenden Cluster erstellt Befehl, der vom RabbitMQ-Management-Plugin bereitgestellt wird. Nachrichten werden nicht in die Sicherung aufgenommen.

Verwandte Inhalte

  • Wie installiert man Erlang auf ArchLinux
  • So installieren Sie Erlang unter FreeBSD 13
  • So installieren Sie RabbitMQ unter FreeBSD 13
  • So installieren Sie Erlang auf Ubuntu 20.04
  • So installieren Sie Erlang auf OpenSUSE Leap 15.3
  • So installieren Sie RabbitMQ in OpenSUSE Leap 15.3
  • So installieren Sie Erlang auf Fedora 35
  • So installieren Sie RabbitMQ in Fedora 35
  • So installieren Sie Erlang auf Rocky Linux/Alma Linux/CentOS 8
  • So installieren und aktivieren Sie das EPEL-Repository unter Rocky Linux/Centos 8

RabbitMQ-Cluster-Status

So erhalten Sie den Clusterstatus

sudo rabbitmqctl cluster_status

Ausgabe auf meinem 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

Herunterladen von rabbitmqadmin

Das Befehlszeilentool rabbitmqadmin wird für die Sicherung und Wiederherstellung verwendet.

Das Verwaltungs-Plug-in wird mit einem Befehlszeilentool rabbitmqadmin. Sie müssen das Verwaltungs-Plugin aktivieren:

sudo rabbitmq-plugins enable rabbitmq_management

Meine Ausgabe

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

Dieses Plug-in wird verwendet, um einige der gleichen Aktionen wie die webbasierte Benutzeroberfläche auszuführen, was für Automatisierungsaufgaben möglicherweise bequemer ist.

Nachdem Sie das Verwaltungs-Plug-in aktiviert haben, laden Sie rabbitmqadmin herunter Python-Befehlszeilentool, das mit der HTTP-API interagiert. Es kann von jedem RabbitMQ-Knoten heruntergeladen werden, auf dem das Verwaltungs-Plugin unter

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

Machen Sie die Datei nach dem Herunterladen ausführbar und verschieben Sie sie nach /usr/local/bin Verzeichnis:

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

So sichern Sie RabbitMQ-Konfigurationen

Die RabbitMQ-Sicherung enthält keine Nachrichten, da sie in einem separaten Nachrichtenspeicher gespeichert werden. Es werden nur RabbitMQ-Benutzer, Vhosts, Warteschlangen, Austauschvorgänge und Bindungen gesichert. Die Sicherungsdatei ist eine JSON-Darstellung von RabbitMQ-Metadaten.

Um RabbitMQ-Konfigurationen zu sichern, verwenden Sie den Befehl:

rabbitmqadmin export <backup-file-name>

Beispiel:

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

Der Export wird in die Datei rabbitmq-backup-config.json geschrieben .

So stellen Sie die Sicherung der RabbitMQ-Konfigurationen wieder her

Um Ihre RabbitMQ-Konfigurationen aus einem Backup wiederherzustellen, verwenden Sie den Befehl:

rabbitmqadmin import <JSON backup file >

Beispiel

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

So sichern Sie RabbitMQ-Daten

RabbitMQ-Definitionen und -Nachrichten werden in einer internen Datenbank gespeichert, die sich im Datenverzeichnis des Knotens befindet. Um den Verzeichnispfad abzurufen, führen Sie den folgenden Befehl für einen laufenden RabbitMQ-Knoten aus:

sudo rabbitmqctl eval 'rabbit_mnesia:dir().'

Beispielausgabe:

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

Dieses Verzeichnis enthält viele Dateien:

# 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

In RabbitMQ-Versionen ab 3.7.0 werden alle Nachrichtendaten im Verzeichnis msg_stores/vhosts zusammengefasst und in einem Unterverzeichnis pro vhost gespeichert. Jedes vhost-Verzeichnis ist mit einem Hash benannt und enthält eine .vhost-Datei mit dem vhost-Namen, sodass der Nachrichtensatz eines bestimmten vhost separat gesichert werden kann.

Kopieren oder archivieren Sie dieses Verzeichnis und seinen Inhalt, um RabbitMQ-Definitionen und Nachrichtendaten zu sichern. Aber zuerst müssen Sie den RabbitMQ-Dienst beenden

sudo systemctl stop rabbitmq-server

Das folgende Beispiel erstellt ein Archiv:

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

So stellen Sie RabbitMQ-Daten wieder her

Extrahieren Sie zur Wiederherstellung aus der Sicherung die Dateien aus der Sicherung in das Datenverzeichnis.

Die interne Knotendatenbank speichert den Namen des Knotens in bestimmten Datensätzen. Sollte sich der Knotenname ändern, muss die Datenbank zuerst aktualisiert werden, um die Änderung widerzuspiegeln, indem der folgende Rabbitmqctl-Befehl verwendet wird:

rabbitmqctl rename_cluster_node <oldnode> <newnode>

Wenn ein neuer Knoten mit einem gesicherten Verzeichnis und einem übereinstimmenden Knotennamen startet, sollte er die erforderlichen Upgrade-Schritte ausführen und mit dem Booten fortfahren.

Schlussfolgerung

In dieser Anleitung haben wir untersucht, wie man Rabbitmq-Daten sichert und wiederherstellt.


Linux
  1. MySQL:So sichern (dumpen) und wiederherstellen Sie eine Datenbank mit mysqldump

  2. So sichern und wiederherstellen Sie das SVN-Repository unter Linux

  3. So sichern und wiederherstellen Sie die Postgres-Datenbank

  4. So erstellen und wiederherstellen Sie Backups in cPanel

  5. So erstellen und wiederherstellen Sie ein Backup in Plesk

So sichern und wiederherstellen Sie Daten mit Restic unter Linux

So sichern und wiederherstellen Sie ein Linux-System mit Timeshift

So sichern und wiederherstellen Sie Dateien mit BorgBackup unter Linux

Fwbackups – So installieren und sichern Sie Ihre Daten auf Ubuntu

So verwenden Sie Timeshift zum Sichern und Wiederherstellen von Linux

So sichern und wiederherstellen Sie eine WordPress-Website