GNU/Linux >> Znalost Linux >  >> Linux

Jak zálohovat a obnovit data a konfigurace RabbitMQ

Zálohy RabbitMQ jsou reprezentace JSON metadat vašeho brokera. To zahrnuje uživatele, vhosty, fronty, výměny a vazby. Zálohy se provádějí proti běžícímu clusteru pomocí export příkaz poskytovaný modulem pro správu RabbitMQ. Zprávy nejsou součástí zálohy.

Související obsah

  • Jak nainstalovat Erlang na ArchLinux
  • Jak nainstalovat Erlang na FreeBSD 13
  • Jak nainstalovat RabbitMQ ve FreeBSD 13
  • Jak nainstalovat Erlang na Ubuntu 20.04
  • Jak nainstalovat Erlang na OpenSUSE Leap 15.3
  • Jak nainstalovat RabbitMQ v OpenSUSE Leap 15.3
  • Jak nainstalovat Erlang na Fedoru 35
  • Jak nainstalovat RabbitMQ do Fedory 35
  • Jak nainstalovat Erlang na Rocky Linux/Alma Linux/CentOS 8
  • Jak nainstalovat a povolit úložiště EPEL na Rocky Linux/Centos 8

Stav klastru RabbitMQ

Chcete-li získat stav clusteru

sudo rabbitmqctl cluster_status

Výstup na mém serveru

$ 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

Stahování rabbitmqadmin

K zálohování a obnově bude použit nástroj příkazového řádku králíkmqadmin.

Zásuvný modul pro správu se dodává s nástrojem příkazového řádku rabbitmqadmin. Musíte povolit modul pro správu:

sudo rabbitmq-plugins enable rabbitmq_management

Můj výstup

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

Tento plugin se používá k provádění některých stejných akcí jako webové uživatelské rozhraní a může být pohodlnější pro automatizační úlohy.

Jakmile povolíte plugin pro správu, stáhněte si rabbitmqadmin Nástroj příkazového řádku Pythonu, který spolupracuje s HTTP API. Lze jej stáhnout z libovolného uzlu RabbitMQ, který má povolen plugin pro správu na adrese

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

Po stažení udělejte soubor spustitelný a přesuňte jej do /usr/local/bin adresář:

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

Jak zálohovat konfigurace RabbitMQ

Záloha RabbitMQ nezahrnuje zprávy, protože jsou uloženy v samostatném úložišti zpráv. Bude zálohovat pouze uživatele RabbitMQ, vhosty, fronty, výměny a vazby. Záložní soubor představuje JSON metadata RabbitMQ.

Chcete-li zálohovat konfigurace RabbitMQ, použijte příkaz:

rabbitmqadmin export <backup-file-name>

Příklad:

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

Export bude zapsán do souborurabbitmq-backup-config.json .

Jak obnovit zálohu konfigurací RabbitMQ

Chcete-li obnovit své konfigurace RabbitMQ ze zálohy, použijte příkaz:

rabbitmqadmin import <JSON backup file >

Příklad

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

Jak zálohovat data RabbitMQ

Definice a zprávy RabbitMQ jsou uloženy v interní databázi umístěné v datovém adresáři uzlu. Chcete-li získat cestu k adresáři, spusťte následující příkaz proti běžícímu uzlu RabbitMQ:

sudo rabbitmqctl eval 'rabbit_mnesia:dir().'

Ukázkový výstup:

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

Tento adresář obsahuje mnoho souborů:

# 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

Ve verzích RabbitMQ počínaje 3.7.0 jsou všechna data zpráv kombinována v adresáři msg_stores/vhosts a uložena v podadresáři na vhost. Každý adresář vhost je pojmenován pomocí hashe a obsahuje soubor .vhost s názvem vhost, takže konkrétní sadu zpráv vhost lze zálohovat samostatně.

Chcete-li provést zálohu dat definic a zpráv RabbitMQ, zkopírujte nebo archivujte tento adresář a jeho obsah. Nejprve však musíte zastavit službu RabbitMQ

sudo systemctl stop rabbitmq-server

Níže uvedený příklad vytvoří archiv:

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

Jak obnovit data RabbitMQ

Chcete-li obnovit ze zálohy, extrahujte soubory ze zálohy do datového adresáře.

Interní databáze uzlů ukládá název uzlu do určitých záznamů. Pokud by se změnil název uzlu, musí být databáze nejprve aktualizována, aby odrážela změnu pomocí následujícího příkazu rabbitmqctl:

rabbitmqctl rename_cluster_node <oldnode> <newnode>

Když nový uzel začíná se zálohovaným adresářem a odpovídajícím názvem uzlu, měl by podle potřeby provést kroky upgradu a pokračovat v bootování.

Závěr

V této příručce jsme prozkoumali, jak zálohovat a obnovovat data rabbitmq.


Linux
  1. Jak zálohovat a obnovit úložiště SVN v Linuxu

  2. Jak zálohovat a obnovit databázi Postgres

  3. Jak zálohovat a obnovovat databázi v PostgreSQL

  1. MySQL:Jak zálohovat (vypsat) a obnovit databázi pomocí mysqldump

  2. Jak vytvářet a obnovovat zálohy v cPanel

  3. Jak vytvořit a obnovit zálohu v Plesku

  1. Jak zálohovat a obnovit weby v Plesku

  2. Jak zálohovat a obnovovat soubory pomocí Deja Dup v Linuxu

  3. Jak zálohovat a obnovovat kontejnery Docker