Lai palīdzētu pasargāt no datu zaudēšanas, Elasticsearch ir dažādas funkcijas, kas ļauj nodrošināt datu pieejamību pat gadījumos, kad nav datu.
Daži no veidiem, ko Elasticsearch izmanto, lai nodrošinātu jums datu pieejamību, ir šādi:
- Starpklasteru replikācijas - funkcija, kas ļauj kopēt datus sekotāju kopu kopai; sekotāju kopa ir rezerves kopa, ko izmanto, ja galvenā klastera kļūmes gadījumā.
- Vēl viena metode, ko Elasticsearch izmanto, lai novērstu datus, izmantojot dublējumkopijas, ko dēvē arī par kopu momentuzņēmumiem. Ja rodas vajadzība, varat izmantot šos momentuzņēmumus, lai atjaunotu datus par pilnīgi jaunu kopu.
Šajā apmācībā ir parādīts, kā izveidot kopu momentuzņēmumus, kas palīdzēs jums būt gataviem, ja rodas neatgriezenisks datu kļūmes notikums.
Sāksim.
Kas ir Elasticsearch momentuzņēmums?
Kā minēts, elastīgais momentuzņēmums ir darbojošās Elasticsearch klastera rezerves kopija. Šis momentuzņēmums var būt viss klasteris vai konkrēti indeksi un datu plūsmas noteiktā klasterī.
Kā jūs drīz uzzināsiet, krātuves spraudnis pārvalda Elasticsearch momentuzņēmumus. Šie momentuzņēmumi ir saglabājami dažādās spraudņa definētajās glabāšanas vietās. Tie ietver vietējās sistēmas un attālās sistēmas, piemēram, GCP Storage, Amazon EC2, Microsoft Azure un daudzas citas.
Kā izveidot Elasticsearch momentuzņēmumu krātuvi
Pirms ķeramies pie Elasticsearch momentuzņēmumu izveidošanas, mums ir jāizveido momentuzņēmumu krātuve, jo daudzi no Elasticsearch pakalpojumiem šo uzdevumu veikšanai izmanto Snapshot API.
Daži no Snapshot API rīkotajiem uzdevumiem ir:
- Ievietojiet momentuzņēmumu krātuvi
- Pārbaudiet momentuzņēmumu krātuvi
- Iegūt momentuzņēmumu krātuvi
- Dzēst momentuzņēmumu krātuvi
- Iztīriet momentuzņēmumu krātuvi
- Izveidot momentuzņēmumu
- Klona momentuzņēmums
- Iegūt momentuzņēmumu
- Iegūt momentuzņēmuma statusu
- Atjaunot momentuzņēmumu
- Dzēst momentuzņēmumu
Lai izveidotu momentuzņēmumu krātuvi, mēs izmantojam _snapshot API galapunktu, kam seko nosaukums, kuru vēlamies piešķirt momentuzņēmuma krātuvei. Apsveriet zemāk esošo pieprasījumu, kas izveido repozitoriju ar nosaukumu backup_repo
PUT / _snapshot / backup_repo"type": "fs",
"iestatījumi":
"location": "/ home / root / backups",
"saspiest": taisnība
Šeit ir norādīta iepriekš norādītā pieprasījuma komanda CURL:
čokurošanās -XPUT "http: // localhost: 9200 / _snapshot / backup_repo" -H 'Content-Type: application / json' -d '"type": "fs", "settings": "location": "/ home / root / backups "," compress ": true 'Lai nodotu momentuzņēmuma krātuves ceļu, vispirms ceļā jāpievieno sistēmas ceļš vai vecāku direktorijs.repo ieraksts elasticsearch.yml
Ceļš.repo ierakstam vajadzētu izskatīties līdzīgi kā:
ceļš.repo: [“/ home / root / backups”]Elasticsearch konfigurācijas failu var atrast mapē / etc / elasticsearch / elasticsearch.yml
PIEZĪME: Pēc ceļa pievienošanas.repo, jums, iespējams, būs jārestartē Elasticsearch kopas. Turklāt ceļa atbalstītās vērtības.repo var būt ļoti atšķirīgs atkarībā no platformas, kurā darbojas Elasticsearch.
Kā apskatīt momentuzņēmumu krātuvi
Lai apstiprinātu momentuzņēmuma krātuves veiksmīgu izveidi, izmantojiet GET pieprasījumu ar galapunktu _snapshot kā:
GET / _snapshot / backup_repoVarat arī izmantot šādu komandu CURL:
čokurošanās -XGET "http: // localhost: 9200 / _snapshot / backup_repo"Tajā jāparāda informācija par dublējuma krātuvi, piemēram:
"backup_repo":
"type": "fs",
"iestatījumi" :
"saspiest": "patiess",
"location": "" "/ home / root / backups" ""
Ja jums ir vairāk nekā viens momentuzņēmumu krātuve un jūs neatceraties nosaukumu, varat izlaist repo nosaukumu un izsaukt _snapshot galapunktu, lai uzskaitītu visus esošos krātuves.
GET / _snapshot vai curl curl -XGET http: // localhost: 9200 / _snapshot
Kā izveidot Elasticsearch momentuzņēmumu
Elasticsearch momentuzņēmuma izveidošana konkrētam momentuzņēmumu krātuvei tiek izveidota, izveidojot momentuzņēmuma API. API ir nepieciešams momentuzņēmuma krātuves nosaukums un momentuzņēmuma nosaukums.
PIEZĪME: Vienā momentuzņēmumu krātuvē var būt vairāk nekā viens momentuzņēmums no tām pašām kopām, ja vien tām ir unikālas identitātes / nosaukumi.
Apsveriet šo pieprasījumu, lai pievienotu momentuzņēmumu ar nosaukumu snapshot_2021 rezerves_repo krātuvei.
PUT / _snapshot / backup_repo / snapshot_2021Lai izmantotu cURL, izmantojiet komandu:
čokurošanās -XPUT “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021”Komandai jāatgriež atbilde no Elasticsearch ar 200 OK un jāpieņem: true
"pieņemts": taisnība
Tā kā tajā nav norādīts, kuras datu plūsmas un indeksus vēlaties dublēt, iepriekš minētā pieprasījuma izsaukšana dublē visus datus un kopas stāvokli. Lai norādītu, kuras datu straumes un indeksus dublēt, pievienojiet tos pieprasījuma pamattekstam.
Apsveriet šo pieprasījumu, kas dublē .kibana indekss (sistēmas indekss) un norāda, kurš lietotājs autorizēja momentuzņēmumu un iemeslu.
PUT / _snapshot / backup_repo / snapshot_2"indeksi": ".kibana ",
"ignore_unavailable": taisnība,
"include_global_state": taisnība,
"metadati":
"taken_by": "elastīgs administrators",
“Taken_because”: “Ikdienas dublējums”
CURL komanda tam ir:
čokurošanās -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2" -H 'Content-Type: application / json' -d '"indeksi": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metadata ": " taken_by ":" Flexibleadmin "," taken_because ":" Daily Backup " 'Ignore_unavailable iestata Būla stāvokli, kas atgriež kļūdu, ja trūkst vai ir aizvērta kāda momentuzņēmumā norādītā datu straume vai indekss.
Parametrs include_global_state saglabā klastera pašreizējo stāvokli, ja tas ir patiess. Daļa no saglabātā klastera informācijas ir:
- Noturīgi klastera iestatījumi
- Indeksa veidnes
- Mantotās indeksa veidnes
- Norīt cauruļvadus
- ILM dzīves cikla politika
PIEZĪME: Jūs varat norādīt vairākus indeksus, atdalot tos ar komatiem.
Kopējais arguments, ko izmanto _snapshot galapunktā, ir wait_for_completion, Būla vērtība, kas nosaka, vai pieprasījumam (true) vai nē (false) jāatgriežas tūlīt pēc momentuzņēmuma inicializācijas (noklusējums) vai jāgaida momentuzņēmuma pabeigšana.
Piemēram:
PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = patiess"indeksi": ".kibana ",
"ignore_unavailable": taisnība,
"include_global_state": nepatiesa,
"metadati":
"taken_by": "elastadmin",
“Taken_because”: “Nedēļas dublējums”
CURL komanda ir:
čokurošanās -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3?wait_for_completion = true "-H" Satura tips: application / json '-d' "indeksi": ".kibana "," ignore_unavailable ": true," include_global_state ": false," metadata ": " taken_by ":" Flexibleadmin "," taken_because ":" Iknedēļas dublējums " 'Kad parametrs wait_for_completion ir iestatīts uz true, jūs iegūsiet izvadi, kas ir līdzīgs zemāk parādītajam:
"momentuzņēmums":
"momentuzņēmums": "momentuzņēmums_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"versija": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": nepatiesa,
"metadati":
"taken_by": "elastīgs administrators",
“Taken_because”: “Nedēļas dublējums”
,
"state": "VEIKSME",
"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,
"neveiksmes": [],
"lauskas":
"kopā": 1,
"neizdevās": 0,
"veiksmīgs": 1
Kā apskatīt momentuzņēmumus
GET momentuzņēmuma API apstrādā skata momentuzņēmumu funkcionalitāti.
Viss, kas jums jānodod pieprasījumā, ir momentuzņēmuma krātuve un tā momentuzņēmuma nosaukums, kuru vēlaties skatīt detalizēti.
Uz momentuzņēmumu jāatbild ar detalizētu informāciju par norādīto momentuzņēmumu. Šī informācija ietver:
- Sākuma un beigu laika vērtības
- Elasticsearch versija, kas izveidoja momentuzņēmumu
- Iekļauto indeksu saraksts
- Momentuzņēmuma pašreizējais stāvoklis
- Momentuzņēmuma laikā radušos kļūmju saraksts
Piemēram, lai skatītu detalizētu informāciju par iepriekš izveidoto momentuzņēmumu_3, izmantojiet zemāk redzamo pieprasījumu:
GET / _snapshot / backup_repo / snapshot_3Lai izmantotu cURL, izmantojiet zemāk esošo komandu:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
čokurošanās -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”
Pieprasījumam jāatgriež atbilde ar sīkāku informāciju par momentuzņēmumu:
"momentuzņēmumi": [
"momentuzņēmums": "momentuzņēmums_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"versija": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": nepatiesa,
"metadati":
"taken_by": "elastīgs administrators",
“Taken_because”: “Nedēļas dublējums”
,
"state": "VEIKSME",
"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,
"neveiksmes": [],
"lauskas":
"kopā": 1,
"neizdevās": 0,
"veiksmīgs": 1
]
Varat arī pielāgot pieprasījuma pamattekstu, lai iegūtu precīzu informāciju par momentuzņēmumu. Tomēr pagaidām to neizskatīsim.
Pieņemsim, ka vēlaties skatīt informāciju par visiem momentuzņēmumiem konkrētā momentuzņēmumu krātuvē; tādā gadījumā pieprasījumā varat nodot zvaigznītes aizstājējzīmi kā:
GET / _snapshot / backup_repo / *CURL komanda tam ir:
čokurošanās -XGET “http: // localhost: 9200 / _snapshot / backup_repo / *”Atbilde ir detalizēta visu momentuzņēmumu izgāztuve šajā krātuvē kā:
"momentuzņēmumi": [
"momentuzņēmums": "momentuzņēmums_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"versija": "7.10.2 ",
"indeksi": [
"my_index",
"single_index_with_body",
"my_index_2",
"single_index",
".kibana_1 ",
"pārbaude"
],
"data_streams": [],
"include_global_state": taisnība,
"state": "VEIKSME",
"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,
"neveiksmes": [],
"lauskas":
"kopā": 7,
"neizdevās": 0,
"veiksmīgs": 7
,
"momentuzņēmums": "momentuzņēmums_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"versija": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": nepatiesa,
"metadati":
"taken_by": "elastīgs administrators",
"taken_because": "Ikdienas dublējums"
,
"state": "VEIKSME",
"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,
"neveiksmes": [],
"lauskas":
"kopā": 1,
"neizdevās": 0,
"veiksmīgs": 1
,
"momentuzņēmums": "momentuzņēmums_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"versija": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": nepatiesa,
"metadati":
"taken_by": "elastīgs administrators",
“Taken_because”: “Nedēļas dublējums”
,
"state": "VEIKSME",
"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,
"neveiksmes": [],
"lauskas":
"kopā": 1,
"neizdevās": 0,
"veiksmīgs": 1
]
Aizstājējzīmes ir ļoti noderīgas, lai filtrētu konkrētu informāciju par momentuzņēmumiem.
Kā izdzēst momentuzņēmumu
Momentuzņēmuma dzēšana ir ļoti vienkārša: viss, kas jums jādara, ir izmantot DELETE pieprasījumu kā:
DELETE / _snapshot / backup_repo / snapshot_2021 /CURL komanda ir:
čokurošanās -XDELETE “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021 /”Jāatzīst atbilde: taisnība
“Atzīts”: taisnība
Ja momentuzņēmums nepastāv, jūs saņemsit 404 statusa kodu un momentuzņēmuma trūkstošo kļūdu kā:
"kļūda":
"galvenais cēlonis" : [
"type": "snapshot_missing_exception",
"iemesls": "trūkst [backup_repo: snapshot_2021]"
],
"type": "snapshot_missing_exception",
"iemesls": "trūkst [backup_repo: snapshot_2021]"
,
"statuss": 404
Secinājums
Šajā ceļvedī mēs esam apsprieduši, kā izveidot Elasticsearch momentuzņēmumus, izmantojot Snapshot API. Ar iemācīto vajadzētu būt pietiekamam, lai ļautu izveidot momentuzņēmumu krātuvi, apskatīt momentuzņēmumu krātuves, izveidot, skatīt un dzēst momentuzņēmumus. Lai gan ir pielāgojumi, kurus varat veikt ar API, šajā rokasgrāmatā esošajām zināšanām vajadzētu būt pietiekamām, lai sāktu darbu.
Paldies par lasīšanu.