Pencarian Elastik

Sandarkan dan Pulihkan Kluster Pencarian Elastik dengan Gambar

Sandarkan dan Pulihkan Kluster Pencarian Elastik dengan Gambar
Elasticsearch adalah mengenai data, dan seperti yang anda mungkin sudah tahu, data penting bagi anda dan Elasticsearch. Namun, sebanyak mana anda dan Elasticsearch menyukai data, kegagalan data mungkin berlaku, yang menyebabkan kehilangan data.

Untuk membantu melindungi daripada kehilangan data, Elasticsearch mempunyai pelbagai ciri yang membolehkan anda memastikan ketersediaan data, walaupun dalam keadaan kegagalan data.

Beberapa cara yang digunakan oleh Elasticsearch untuk menyediakan anda dengan ketersediaan data termasuk:

Tutorial ini menunjukkan kepada anda bagaimana membuat snapshot kluster, yang akan membantu anda bersedia sekiranya berlaku kegagalan data yang tidak dapat dipulihkan.

Mari kita mulakan.

Apa itu Petikan Elasticsearch?

Seperti yang disebutkan, snapshot elastik adalah salinan sandaran dari kluster Elasticsearch yang sedang berjalan. Cuplikan ini boleh terdiri dari keseluruhan kluster atau indeks dan aliran data tertentu dalam kluster tertentu.

Seperti yang akan anda ketahui tidak lama lagi, plugin repositori menguruskan tangkapan gambar Elasticsearch. Tangkapan gambar ini dapat disimpan di pelbagai lokasi penyimpanan yang ditentukan oleh pemalam. Ini termasuk sistem tempatan dan sistem jauh seperti Penyimpanan GCP, Amazon EC2, Microsoft Azure, dan banyak lagi.

Cara Membuat Repositori Gambar Elasticsearch

Sebelum kita membuat snapshot Elasticsearch, kita perlu membuat repositori snapshot kerana banyak perkhidmatan Elasticsearch menggunakan API Snapshot untuk melaksanakan tugas-tugas ini.

Beberapa tugas yang dikendalikan oleh Snapshot API adalah:

Untuk membuat repositori snapshot, kami menggunakan titik akhir API _snapshot diikuti dengan nama yang ingin kami tetapkan ke repositori snapshot. Pertimbangkan permintaan di bawah ini yang membuat repositori yang disebut backup_repo

PUT / _snapshot / backup_repo

"type": "fs",
"tetapan":
"location": "/ rumah / root / sandaran",
"kompres": benar

Berikut adalah arahan cURL untuk permintaan di atas:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo" -H 'Content-Type: application / json' -d '"type": "fs", "setting": "location": "/ rumah / root / sandaran "," kompres ": true '

Untuk melewati jalur repositori snapshot, anda mesti terlebih dahulu menambahkan jalan sistem atau direktori induk ke jalan tersebut.entri repo dalam elasticsearch.yml

Jalan itu.entri repo mestilah serupa dengan:

jalan.repo: ["/ rumah / root / sandaran"]

Anda boleh mendapatkan fail konfigurasi Elasticsearch yang terdapat di / etc / elasticsearch / elasticsearch.yml

NOTA: Setelah menambah jalan.repo, anda mungkin perlu memulakan semula kluster Elasticsearch. Selain itu, nilai yang disokong untuk jalan.repo mungkin berbeza-beza bergantung pada platform yang menjalankan Elasticsearch.

Cara Melihat Repositori Gambar

Untuk mengesahkan kejayaan pembuatan repositori snapshot, gunakan permintaan GET dengan titik akhir _snapshot sebagai:

DAPATKAN / _snapshot / backup_repo

Anda juga boleh menggunakan arahan cURL berikut:

curl -XGET "http: // localhost: 9200 / _snapshot / backup_repo"

Ini harus memaparkan maklumat mengenai repositori sandaran, misalnya:


"backup_repo":
"type": "fs",
"tetapan":
"kompres": "benar",
"location": "" "/ rumah / root / sandaran" ""


Sekiranya anda mempunyai lebih daripada satu repositori snapshot dan tidak ingat namanya, anda boleh menghilangkan nama repo dan memanggil titik akhir _snapshot untuk menyenaraikan semua repositori yang ada.

GET / _snapshot atau cURL curl -XGET http: // localhost: 9200 / _snapshot

Cara Membuat Gambar Elasticsearch

Membuat snapshot Elasticsearch untuk repositori snapshot tertentu dikendalikan oleh API membuat snapshot. API memerlukan nama repositori snapshot dan nama snapshot.

NOTA: Sebuah repositori snapshot tunggal boleh mempunyai lebih daripada satu snapshot kluster yang sama selagi mempunyai identiti / nama yang unik.

Pertimbangkan permintaan berikut untuk menambahkan snapshot yang disebut snapshot_2021 ke repositori backup_repo.

PUT / _snapshot / backup_repo / snapshot_2021

Untuk menggunakan cURL, gunakan arahan:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021"

Perintah itu harus memberikan respons daripada Elasticsearch dengan 200 OK dan diterima: benar


"diterima": benar

Oleh kerana ia tidak menentukan aliran data dan indeks yang ingin Anda sandarkan, memanggil permintaan di atas membuat sandaran semua data dan keadaan kluster. Untuk menentukan aliran data dan indeks yang akan dicadangkan, tambahkan data tersebut ke badan permintaan.

Pertimbangkan permintaan berikut yang membuat sandaran .indeks kibana (indeks sistem) dan menentukan pengguna mana yang membenarkan snapshot dan alasannya.

PUT / _snapshot / backup_repo / snapshot_2

"Indeks": ".kibana ",
"ignore_unavailable": benar,
"include_global_state": benar,
"metadata":
"diambil_ oleh": "elastikadmin",
"Diambil_ kerana" Sandaran Harian "

Perintah cURL untuk itu adalah:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2" -H 'Content-Type: application / json' -d '"indices": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metadata ": " diambil_by ":" Flexibleadmin "," diambil_boleh kerana ":" Cadangan Harian " '

The ign_navailable menetapkan keadaan Boolean yang mengembalikan kesalahan jika aliran data atau indeks yang ditentukan dalam snapshot hilang atau ditutup.

Parameter include_global_state menyimpan keadaan semasa kluster jika benar. Beberapa maklumat kluster yang disimpan termasuk:

NOTA: Anda boleh menentukan lebih daripada satu indeks yang dipisahkan dengan koma.

Argumen umum yang digunakan dengan titik akhir _snapshot adalah waiting_for_completion, nilai Boolean yang menentukan sama ada (benar) atau tidak (salah) permintaan harus kembali segera setelah inisialisasi snapshot (lalai) atau menunggu penyelesaian snapshot.

Sebagai contoh:

PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = benar

"Indeks": ".kibana ",
"ignore_unavailable": benar,
"include_global_state": salah,
"metadata":
"diambil_ oleh": "elastikadmin",
"Diambil_ kerana": "Cadangan Mingguan"

Perintah cURL adalah:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3?wait_for_completion = true "-H 'Content-Type: application / json' -d '" indeks ":".kibana "," ignore_unavailable ": true," include_global_state ": false," metadata ": " diambil_by ":" Flexibleadmin "," diambil_boleh kerana ":" Cadangan Mingguan " '

Apabila anda telah menetapkan parameter waiting_for_completion ke true, anda akan memberikan output yang serupa dengan yang ditunjukkan di bawah:


"snapshot":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"versi": "7.10.2 ",
"Indeks" : [
".kibana_1 "
],
"data_streams": [],
"include_global_state": salah,
"metadata":
"diambil_ oleh": "elastikadmin",
"Diambil_ kerana": "Cadangan Mingguan"
,
"state": "KEJAYAAN",
"start_time": "2021-01-19T13: 36: 59.615Z ",
"start_time_in_millis": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"duration_in_millis": 818,
"kegagalan": [],
"pecahan":
"jumlah": 1,
"gagal": 0,
"berjaya": 1


Cara Melihat Gambar

API snapshot GET mengendalikan fungsi tangkapan gambar.

Yang anda perlukan untuk menyampaikan permintaan adalah repositori snapshot dan nama snapshot yang anda ingin lihat perinciannya.

Snapshot harus memberi respons dengan perincian mengenai snapshot yang ditentukan. Perincian ini merangkumi:

Sebagai contoh, untuk melihat perincian mengenai snapshot_3 yang dibuat di atas, gunakan permintaan yang ditunjukkan di bawah:

DAPATKAN / _snapshot / backup_repo / snapshot_3
Untuk menggunakan cURL, gunakan arahan di bawah:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
curl -XGET "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3"

Permintaan tersebut harus mengembalikan respons dengan perincian gambar sebagai:


"gambar": [

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"versi": "7.10.2 ",
"Indeks" : [
".kibana_1 "
],
"data_streams": [],
"include_global_state": salah,
"metadata":
"diambil_ oleh": "elastikadmin",
"Diambil_ kerana": "Cadangan Mingguan"
,
"state": "KEJAYAAN",
"start_time": "2021-01-19T13: 36: 59.615Z ",
"start_time_in_millis": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"duration_in_millis": 818,
"kegagalan": [],
"pecahan":
"jumlah": 1,
"gagal": 0,
"berjaya": 1


]

Anda juga dapat menyesuaikan badan permintaan untuk mendapatkan butiran khusus mengenai tangkapan gambar. Walau bagaimanapun, buat masa ini kami tidak akan melihatnya.

Katakan anda mahu melihat maklumat mengenai semua tangkapan gambar dalam repositori snapshot tertentu; sekiranya demikian, anda boleh menghantar kad liar asterisk dalam permintaan sebagai:

DAPATKAN / _snapshot / backup_repo / *

Perintah cURL untuk itu adalah:

curl -XGET "http: // localhost: 9200 / _snapshot / backup_repo / *"

Responsnya adalah pembuangan terperinci dari semua snapshot di repositori itu sebagai:


"gambar": [

"snapshot": "snapshot_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"versi": "7.10.2 ",
"Indeks" : [
"my_index",
"single_index_with_body",
"my_index_2",
"single_index",
".kibana_1 ",
"Ujian"
],
"data_streams": [],
"include_global_state": benar,
"state": "KEJAYAAN",
"start_time": "2021-01-19T13: 28: 48.172Z ",
"start_time_in_millis": 1611062928172,
"end_time": "2021-01-19T13: 28: 50.831Z ",
"end_time_in_millis": 1611062930831,
"duration_in_millis": 2659,
"kegagalan": [],
"pecahan":
"jumlah": 7,
"gagal": 0,
"berjaya": 7

,

"snapshot": "snapshot_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"versi": "7.10.2 ",
"Indeks" : [
".kibana_1 "
],
"data_streams": [],
"include_global_state": salah,
"metadata":
"diambil_ oleh": "elastikadmin",
"diambil_ kerana" Sandaran Harian "
,
"state": "KEJAYAAN",
"start_time": "2021-01-19T13: 33: 34.482Z ",
"start_time_in_millis": 1611063214482,
"end_time": "2021-01-19T13: 33: 35.921Z ",
"end_time_in_millis": 1611063215921,
"duration_in_millis": 1439,
"kegagalan": [],
"pecahan":
"jumlah": 1,
"gagal": 0,
"berjaya": 1

,

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"versi": "7.10.2 ",
"Indeks" : [
".kibana_1 "
],
"data_streams": [],
"include_global_state": salah,
"metadata":
"diambil_ oleh": "elastikadmin",
"Diambil_ kerana": "Cadangan Mingguan"
,
"state": "KEJAYAAN",
"start_time": "2021-01-19T13: 36: 59.615Z ",
"start_time_in_millis": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"duration_in_millis": 818,
"kegagalan": [],
"pecahan":
"jumlah": 1,
"gagal": 0,
"berjaya": 1


]

Wildcard sangat berguna untuk menyaring maklumat khusus mengenai tangkapan gambar.

Cara Menghapus Gambar

Menghapus gambar sangat mudah: yang harus anda lakukan ialah menggunakan permintaan HAPUS sebagai:

HAPUS / _snapshot / backup_repo / snapshot_2021 /

Perintah cURL adalah:

curl -XDELETE "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021 /"

Tanggapan harus diakui: benar


"Diakui": benar

Sekiranya snapshot tidak ada, anda akan mendapat kod status 404 dan ralat snapshot hilang sebagai:


"ralat":
"root_cause": [

"type": "snapshot_missing_exception",
"reason": "[backup_repo: snapshot_2021] tiada"

],
"type": "snapshot_missing_exception",
"reason": "[backup_repo: snapshot_2021] tiada"
,
"status": 404

Kesimpulannya

Dalam panduan ini, kami telah membincangkan cara membuat snapshot Elasticsearch menggunakan Snapshot API. Apa yang anda pelajari cukup untuk membolehkan anda membuat repositori snapshot, melihat repositori snapshot, membuat, melihat, dan menghapus snapshot. Walaupun ada penyesuaian yang dapat anda buat dengan API, pengetahuan dalam panduan ini cukup untuk memulakan anda.

Terima kasih kerana membaca.

Tutorial OpenTTD
OpenTTD adalah salah satu permainan simulasi perniagaan yang paling popular di luar sana. Dalam permainan ini, anda perlu membuat perniagaan pengangku...
SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...
Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...