Cadangan RabbitMQ adalah representasi JSON dari metadata broker Anda. Ini termasuk pengguna, vhosts, antrian, pertukaran, dan binding. Pencadangan dilakukan terhadap cluster yang sedang berjalan menggunakan export
perintah yang disediakan oleh plugin manajemen RabbitMQ. Pesan tidak disertakan dalam cadangan.
Konten Terkait
- Cara menginstal Erlang di ArchLinux
- Cara menginstal Erlang di FreeBSD 13
- Cara menginstal RabbitMQ di FreeBSD 13
- Cara menginstal Erlang di Ubuntu 20.04
- Cara menginstal Erlang pada OpenSUSE Leap 15.3
- Cara menginstal RabbitMQ di OpenSUSE Leap 15.3
- Cara menginstal Erlang di Fedora 35
- Cara menginstal RabbitMQ di Fedora 35
- Cara menginstal Erlang di Rocky Linux/Alma Linux/CentOS 8
- Cara Memasang dan Mengaktifkan Repositori EPEL di Rocky Linux/Centos 8
Status Cluster RabbitMQ
Untuk mendapatkan status cluster
sudo rabbitmqctl cluster_status
Keluaran di server saya
$ 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
Mengunduh rabbitmqadmin
Alat baris perintah rabbitmqadmin akan digunakan untuk pencadangan dan pemulihan.
Plugin pengelolaan dikirim dengan alat baris perintah rabbitmqadmin. Anda perlu mengaktifkan plugin manajemen:
sudo rabbitmq-plugins mengaktifkan rabbitmq_management
Hasil saya
~> 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.
Plugin ini digunakan untuk melakukan beberapa tindakan yang sama seperti UI berbasis Web, dan yang mungkin lebih nyaman untuk tugas otomatisasi.
Setelah Anda mengaktifkan plugin pengelolaan, unduh rabbitmqadmin
Alat baris perintah Python yang berinteraksi dengan HTTP API. Itu dapat diunduh dari simpul RabbitMQ mana pun yang memiliki plugin manajemen yang diaktifkan di
http://{node-hostname}:15672/cli/
Setelah diunduh, buat file tersebut dapat dieksekusi dan pindahkan ke /usr/local/bin
direktori:
chmod +x rabbitmqadmin
sudo mv rabbitmqadmin /usr/local/bin
Cara Mencadangkan Konfigurasi RabbitMQ
Cadangan RabbitMQ tidak menyertakan Pesan karena disimpan di penyimpanan pesan terpisah. Itu hanya akan mencadangkan pengguna RabbitMQ, vhosts, antrian, pertukaran, dan binding. File cadangan adalah representasi JSON dari metadata RabbitMQ.
Untuk mencadangkan konfigurasi RabbitMQ, gunakan perintah:
rabbitmqadmin ekspor
Contoh:
$ rabbitmqadmin export rabbitmq-backup-config.json Mengekspor definisi untuk localhost ke "rabbitmq-backup-config.json"
Ekspor akan ditulis ke filerabbitmq-backup-config.json
.
Cara Mengembalikan cadangan Konfigurasi RabbitMQ
Untuk memulihkan konfigurasi RabbitMQ Anda dari cadangan, gunakan perintah:
rabbitmqadmin mengimpor
Contoh
$ rabbitmqadmin import rabbitmq-backup-config.jsonImpor definisi untuk localhost dari "rabbitmq-backup.json"
Cara Mencadangkan Data RabbitMQ
Definisi dan Pesan RabbitMQ disimpan dalam database internal yang terletak di direktori data node. Untuk mendapatkan jalur direktori, jalankan perintah berikut terhadap node RabbitMQ yang sedang berjalan:
sudo rabbitmqctl eval 'rabbit_mnesia:dir().'
Contoh keluaran:
$ sudo rabbitmqctl eval 'rabbit_mnesia:dir().'"/var/lib/rabbitmq/mnesia/[email protected]"
Direktori ini berisi banyak file:
rabbitpre># 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.DDCDECISION_TAB.CLnodes_durable_DCD rabbit_user. schema.DATLATEST.LOG quorum rabbit_durable_queue.DCD rabbit_runtime_parameters.DCD rabbit_topic_permission.DCD rabbit_user_permission.DCL schema_version
Dalam versi RabbitMQ yang dimulai dengan 3.7.0 semua data pesan digabungkan dalam direktori msg_stores/vhosts dan disimpan dalam subdirektori per vhost. Setiap direktori vhost diberi nama dengan hash dan berisi file .vhost dengan nama vhost, sehingga kumpulan pesan vhost tertentu dapat dicadangkan secara terpisah.
Untuk melakukan definisi RabbitMQ dan pencadangan data pesan, salin atau arsipkan direktori ini dan isinya. Tapi pertama-tama, Anda harus menghentikan layanan RabbitMQ
sudo systemctl stop rabbitmq-server
Contoh di bawah ini akan membuat arsip:
tar cvf rabbitmq-backup.tgz /var/lib/rabbitmq/mnesia/[email protected]
Cara Mengembalikan Data RabbitMQ
Untuk memulihkan dari Cadangan, ekstrak file dari cadangan ke direktori data.
Basis data simpul internal menyimpan nama simpul dalam catatan tertentu. Jika nama node berubah, database harus diperbarui terlebih dahulu untuk mencerminkan perubahan menggunakan perintah rabbitmqctl berikut:
rabbitmqctl rename_cluster_node
Ketika sebuah node baru dimulai dengan direktori yang dicadangkan dan nama node yang cocok, node tersebut harus melakukan langkah-langkah upgrade yang diperlukan dan melanjutkan untuk boot.
Kesimpulan
Dalam panduan ini kami menjelajahi cara mencadangkan dan memulihkan data rabbitmq.