Elastīgā meklēšana

Elasticsearch kopu dublēšana un atjaunošana ar momentuzņēmumiem

Elasticsearch kopu dublēšana un atjaunošana ar momentuzņēmumiem
Elasticsearch ir saistīts tikai ar datiem, un, kā jūs, iespējams, jau zināt, dati ir svarīgi jums un Elasticsearch. Tomēr, ciktāl gan jūs, gan Elasticsearch mīlat datus, var rasties datu kļūmes, kas izraisa datu zudumu.

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:

Š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:

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_repo

Varat 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_2021

Lai 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:

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:

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_3
Lai 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.

Kā mainīt peles rādītāja un kursora izmēru, krāsu un shēmu operētājsistēmā Windows 10
Peles rādītājs un kursors operētājsistēmā Windows 10 ir ļoti svarīgi operētājsistēmas aspekti. To var teikt arī par citām operētājsistēmām, tāpēc pati...
Bezmaksas un atvērtā koda spēļu dzinēji Linux spēļu izstrādei
Šis raksts aptvers bezmaksas un atvērtā koda spēļu motoru sarakstu, kurus var izmantot, lai izstrādātu 2D un 3D spēles Linux. Šādu spēļu dzinēju ir da...
Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...