GNU/Linux >> Belajar Linux >  >> Linux

Cara mengambil Cadangan Cluster Elasticsearch

Mekanisme pengambilan cadangan di Elasticsearch disebut Snapshot. Snapshot adalah cadangan yang diambil dari cluster Elasticsearch yang sedang berjalan. Tidak perlu menghapus cluster yang membantu menghindari jendela pemeliharaan aplikasi. Sebuah snapshot dari indeks individu atau seluruh cluster dapat diambil dan disimpan dalam repositori pada sistem file bersama.

Snapshot di Elasticsearch diambil secara bertahap. Ini berarti bahwa ketika membuat snapshot indeks, Elasticsearch menghindari penyalinan data apa pun yang sudah disimpan sebagai bagian dari snapshot sebelumnya dari indeks yang sama. Oleh karena itu, pengambilan snapshot cluster secara teratur dapat menjadi efisien.

Dengan cara yang sama kita dapat membuat cadangan cluster dalam keadaan berjalan, kita juga dapat memulihkan snapshot ke dalam cluster yang sedang berjalan. Saat kami memulihkan indeks, kami bahkan dapat mengubah nama indeks yang dipulihkan serta beberapa pengaturannya.

Untuk membuat cadangan, kita harus mendaftarkan repositori snapshot sebelum dapat melakukan operasi snapshot dan pemulihan. Untuk mendaftarkan repositori sistem file bersama untuk cluster, perlu untuk memasang sistem file bersama yang sama ke lokasi yang sama di semua node master dan data. Lokasi ini harus didaftarkan dalam file konfigurasi pada semua node master dan data.

Dalam artikel ini, kami akan memverifikasi repositori bersama NFS, dan melihat langkah-langkah untuk mengambil snapshot dan memulihkannya.

Prasyarat

  1. Direktori bersama NFS tersedia dan dipasang di ketiga Node Elasticsearch di lokasi yang sama
  2. Cluster Elasticsearch dari 3 Node pada 3 server Ubuntu.

Apa yang akan kami lakukan

  1. Verifikasi Penyiapan Server NFS.
  2. Verifikasi Konfigurasi Cluster Elasticsearch
  3. Daftarkan Repositori untuk mengambil cadangan.
  4. Ambil cadangan dan pulihkan.

Verifikasi Pengaturan Server/Klien NFS.

Dalam artikel ini, kita tidak akan membicarakan penyiapan NFS karena tidak termasuk dalam cakupan artikel ini. Tetapi untuk mengambil cadangan dari Elasticsearch, kita memerlukan pengaturan berikut.

es-node-1(10.11.10.61)  : NFS Client
es-node-2(10.11.10.62) : NFS Client
es-node-3(10.11.10.63) : NFS Client
NFS Server(10.11.10.64) : NFS Server

Di sini, 

Server NFS telah membagikan “/home/ubuntu/shared/”-nya direktori dengan Elasticsearch Nodes.

Setiap Elasticsearch memiliki direktori lokalnya “/home/ubuntu/mounted” dipasang di direktori bersama NFS “/home/ubuntu/shared/” . Kita perlu memastikan bahwa kepemilikan semua direktori adalah milik pengguna yang sama dengan yang kita gunakan untuk memulai Elasticsearch.

Setelah kami menyiapkan ini, kami dapat melanjutkan lebih jauh.

Verifikasi Konfigurasi Cluster Elasticsearch

Lakukan konfigurasi berikut untuk menyiapkan Elasticsearch agar berfungsi dalam mode Cluster:

Di sini, jika Anda telah menyiapkan cluster Elasticsearch, Anda harus mengetahui konfigurasi berikut.

Satu-satunya konfigurasi yang perlu kita buat untuk mengambil Pencadangan Cluster Elasticsearch selain dari Konfigurasi Cluster Elasticsearch yang ada adalah "path.repo:["/home/ubuntu/mounted"] ": 

vim config/elasticsearch.yml
path.repo: ["/home/ubuntu/mounted"] 

Tetap sama di setiap node.

Konfigurasi pada Node1

#give your cluster a name.
cluster.name: my-cluster
#give your nodes a name (change node number from node to node).
node.name: "es-node-1"
#define node 1 as master-eligible:
node.master: true
#define nodes 2 and 3 as data nodes:
node.data: true
#enter the private IP and port of your node:
network.host: 10.11.10.61
http.port: 9200
#detail the private IPs of your nodes:
discovery.zen.ping.unicast.hosts: ["10.11.10.61", "10.11.10.62", "10.11.10.63"]
cluster.initial_master_nodes:
- 10.11.10.61
path.repo: ["/home/ubuntu/mounted"]

Konfigurasi pada Node2

#give your cluster a name.
cluster.name: my-cluster
#give your nodes a name (change node number from node to node).
node.name: "es-node-2"
#define node 2 as master-eligible:
node.master: false
#define nodes 2 and 3 as data nodes:
node.data: true 
#enter the private IP and port of your node:
network.host: 10.11.10.62
http.port: 9200 
#detail the private IPs of your nodes:
discovery.zen.ping.unicast.hosts: ["10.11.10.61", "10.11.10.62", "10.11.10.63"
path.repo: ["/home/ubuntu/mounted"]

Konfigurasi pada Node3

#give your cluster a name.
cluster.name: my-cluster
#give your nodes a name (change node number from node to node).
node.name: "es-node-3"
#define node 3 as master-eligible:
node.master: false
#define nodes 2 and 3 as data nodes:
node.data: true
#enter the private IP and port of your node:
network.host: 10.11.10.63
http.port: 9200
#detail the private IPs of your nodes:
discovery.zen.ping.unicast.hosts: ["10.11.10.61","10.11.10.62","10.11.10.63""]
path.repo: ["/home/ubuntu/mounted"]

Setelah Anda memiliki semua konfigurasi ini, mulai semua Elasticsearch Nodes, pertama-tama mulai master awal.

Daftarkan Repositori untuk mengambil cadangan

Periksa repositori yang ada menggunakan perintah berikut.

curl -XGET 'http://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/_all?pretty=true'

Jika kami mendapatkan respons kosong, ini menunjukkan bahwa kami belum menyiapkan repositori apa pun

  Untuk menyiapkan repositori, jalankan perintah berikut.

curl -XPUT 'http://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/my_backup' -d {
"type": "fs",
"settings": {
"location": "/home/ubuntu/mounted",
"compress": true
}
}'

Di sini, "my_backup" pada perintah di atas adalah nama repositori.

Kita dapat memeriksa repositori yang terdaftar menggunakan perintah berikut

curl -XGET 'http://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/_all?pretty=true'

Pencadangan dan Pemulihan Klaster Elasticsearch

Ambil cadangan

Setelah kami membuat repo, kami siap untuk membuat cadangan.

Gunakan perintah berikut untuk mengambil cadangan bernama “snapshot_name”

curl -XPUT "https://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/my_backup/snapshot_name?wait_for_completion=true"

Pulihkan cadangan

Snapshot yang telah kita ambil dapat dipulihkan menggunakan perintah berikut.

Gunakan perintah berikut untuk memulihkan cadangan bernama “snapshot_name”

curl -XPOST "http://IP_Of_Elasticsearch_Node_Or_Master:9200/_snapshot/my_backup/snapshot_name/_restore?wait_for_completion=true"

Kesimpulan

Dalam artikel ini, kami melihat langkah-langkah untuk mendaftarkan repositori dan mengambil cadangan dan memulihkannya.


Linux
  1. Cara Membuat Cadangan

  2. Cara mengambil cadangan kotak surat Akun Zimbra dari CLI

  3. Bagaimana Cara Mencadangkan File crontab -e?

  1. Cara Menginstal Elasticsearch di Ubuntu 18.04

  2. Cara Menginstal Elasticsearch di Ubuntu 20.04

  3. Bagaimana cara melakukan pencadangan terenkripsi seperti rsync?

  1. Cara Menginstal Elasticsearch di CentOS 7

  2. Cara Menginstal Elasticsearch di CentOS 8

  3. Cara Menginstal Elasticsearch di Debian 10