Kad būtų lengviau apsaugoti nuo duomenų praradimo, „Elasticsearch“ turi įvairias funkcijas, kurios leidžia užtikrinti duomenų prieinamumą net ir duomenų gedimo atvejais.
Keletas būdų, kuriuos „Elasticsearch“ naudoja, kad užtikrintų duomenų prieinamumą, yra šie:
- Kelių grupių replikacijos - funkcija, leidžianti nukopijuoti duomenis į sekėjų grupių rinkinį; sekėjų grupė yra budėjimo grupė, naudojama sugedus pagrindiniam grupei.
- Kitas metodas, kurį „Elasticsearch“ naudoja užkirsti kelią duomenims naudojant atsargines kopijas, dar vadinamas grupių momentinėmis nuotraukomis. Jei kyla poreikis, galite naudoti šias momentines nuotraukas atkurdami duomenis apie visiškai naują sankaupą.
Šioje pamokoje parodoma, kaip sukurti sankaupos momentinius vaizdus, kurie padės jums būti pasirengusiems įvykus negrįžtamam duomenų gedimo įvykiui.
Pradėkime.
Kas yra „Elasticsearch Snapshot“?
Kaip minėta, elastinė momentinė nuotrauka yra veikiančio „Elasticsearch“ klasterio atsarginė kopija. Ši momentinė nuotrauka gali būti visa grupė arba konkretūs rodikliai ir duomenų srautai tam tikroje grupėje.
Kaip netrukus sužinosite, saugyklos papildinys tvarko „Elasticsearch“ momentines nuotraukas. Šie momentiniai vaizdai gali būti saugomi įvairiose papildinio apibrėžtose saugojimo vietose. Tai apima vietines sistemas ir nuotolines sistemas, tokias kaip GCP saugykla, „Amazon EC2“, „Microsoft Azure“ ir daugelį kitų.
Kaip sukurti „Elasticsearch“ momentinių nuotraukų saugyklą
Prieš pradėdami kurti „Elasticsearch“ momentines nuotraukas, turime sukurti momentinių nuotraukų saugyklą, nes daugelis „Elasticsearch“ paslaugų naudoja „Snapshot“ API šioms užduotims atlikti.
Kai kurios „Snapshot“ API tvarkomos užduotys yra šios:
- Įdėkite momentinių nuotraukų saugyklą
- Patikrinkite momentinių nuotraukų saugyklą
- Gaukite momentinių nuotraukų saugyklą
- Ištrinti momentinių nuotraukų saugyklą
- Išvalykite momentinių nuotraukų saugyklą
- Sukurti momentinę nuotrauką
- Klono momentinė nuotrauka
- Gaukite momentinę nuotrauką
- Gaukite momentinės nuotraukos būseną
- Atkurkite momentinę nuotrauką
- Ištrinti momentinę kopiją
Norėdami sukurti momentinių nuotraukų saugyklą, mes naudojame _snapshot API galinį tašką, po kurio nurodome pavadinimą, kurį norime priskirti momentinių nuotraukų saugyklai. Apsvarstykite toliau pateiktą užklausą, sukuriančią saugyklą, pavadintą „backup_repo“
PUT / _snapshot / backup_repo„type“: „fs“,
„nustatymai“:
"vieta": "/ home / root / backups",
„kompresas“: tiesa
Čia pateikiama anksčiau nurodytos užklausos komanda „CURL“:
garbanos -XPUT "http: // localhost: 9200 / _snapshot / backup_repo" -H 'Content-Type: application / json' -d '"type": "fs", "settings": "location": "/ home / root / backups "," compress ": tiesa 'Norėdami perduoti momentinės nuotraukos saugyklos kelią, pirmiausia prie kelio turite pridėti sistemos kelią arba pirminį katalogą.atpirkimo įrašas elasticsearch.yml
Kelias.atpirkimo įrašas turėtų atrodyti panašiai kaip:
kelias.atpirkimas: [„/ home / root / backups“]„Elasticsearch“ konfigūracijos failą rasite aplanke / etc / elasticsearch / elasticsearch.yml
PASTABA: Pridėjus kelią.atpirkti, gali tekti iš naujo paleisti „Elasticsearch“ grupes. Be to, kelio palaikomos reikšmės.atpirkimas gali skirtis priklausomai nuo platformos, kurioje veikia „Elasticsearch“.
Kaip peržiūrėti momentinių nuotraukų saugyklą
Norėdami patvirtinti sėkmingą momentinių nuotraukų saugyklos sukūrimą, naudokite GET užklausą su _snapshot galiniu tašku:
GET / _snapshot / backup_repoTaip pat galite naudoti šią komandą CURL:
curl -XGET "http: // localhost: 9200 / _snapshot / backup_repo"Tai turėtų rodyti informaciją apie atsarginių kopijų saugyklą, pavyzdžiui:
"backup_repo":
„type“: „fs“,
„nustatymai“:
"suspausti": "tiesa",
"location": "" "/ home / root / backups" ""
Jei turite daugiau nei vieną momentinių nuotraukų saugyklą ir neprisimenate pavadinimo, galite praleisti atpirkimo pavadinimą ir paskambinti į „_snapshot“ galutinį tašką, kad išvardytumėte visas esamas saugyklas.
GET / _snapshot arba curl curl -XGET http: // localhost: 9200 / _snapshot
Kaip sukurti „Elasticsearch“ momentinę nuotrauką
Kuriant „Elasticsearch“ momentinę nuotrauką konkrečiai momentinių vaizdų saugyklai, tvarko „snapshot“ kūrimo API. API reikalingas momentinės nuotraukos saugyklos pavadinimas ir momentinės nuotraukos pavadinimas.
PASTABA: Vienoje momentinių nuotraukų saugykloje gali būti daugiau nei viena tų pačių grupių momentinė nuotrauka, jei jos turi unikalias tapatybes / pavadinimus.
Apsvarstykite šią užklausą, kad pridėtumėte momentinę kopiją, vadinamą „snapshot_2021“, į atsarginės kopijos_repo talpyklą.
PUT / _snapshot / backup_repo / snapshot_2021Norėdami naudoti „CURL“, naudokite komandą:
curl -XPUT „http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021“Komanda turėtų grąžinti „Elasticsearch“ atsakymą su 200 OK ir priimti: true
„priimta“: tiesa
Kadangi jame nenurodoma, kuriuos duomenų srautus ir indeksus norite kurti atsarginėmis kopijomis, iškvietus aukščiau pateiktą užklausą, sukuriama visų duomenų ir grupių būsenos atsarginė kopija. Norėdami nurodyti, kuriuos duomenų srautus ir indeksus kurti atsargines kopijas, pridėkite juos prie užklausos turinio.
Apsvarstykite šią užklausą, kuri sukuria atsarginę .kibana index (sistemos indeksas) ir nurodo, kuris vartotojas leido momentinę nuotrauką, ir priežastis.
PUT / _snapshot / backup_repo / snapshot_2"indeksai": ".kibana ",
"ignore_unavailable": tiesa,
"include_global_state": tiesa,
„metaduomenys“:
"taken_by": "elastinis administratorius",
„Taken_because“: „Kasdieninė atsarginė kopija“
Tam skirta komanda „CURL“ yra:
užriesti -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2" -H 'Content-Type: application / json' -d '"indeksai": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metadata ": " taken_by ":" Flexibleadmin "," taken_because ":" Daily Backup " 'Ignore_unavailable nustato Bulio būseną, kuri pateikia klaidą, jei nėra duomenų srautų ar momentiniame vaizde nurodytų indeksų arba jie uždaryti.
Parametras „include_global_state“ išsaugo klasterio esamą būseną, jei ji teisinga. Dalis išsaugotos sankaupos informacijos yra:
- Nuolatiniai grupių nustatymai
- Rodyklės šablonai
- Senų rodyklių šablonai
- Nurykite vamzdynus
- ILM gyvavimo ciklo politika
PASTABA: Galite nurodyti daugiau nei vieną indeksą, atskirtą kableliais.
Dažnas argumentas, naudojamas su _snapshot galiniu tašku, yra wait_for_completion, Bulio reikšmė, apibrėžianti, ar (true), ar ne (false) užklausa turėtų grįžti iškart po momentinės nuotraukos inicijavimo (numatytasis nustatymas), ar laukti, kol momentinė nuotrauka bus baigta.
Pavyzdžiui:
PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = tiesa"indeksai": ".kibana ",
"ignore_unavailable": tiesa,
"include_global_state": klaidinga,
„metaduomenys“:
"taken_by": "elastinis administratorius",
„Taken_because“: „Savaitės atsarginė kopija“
CURL komanda yra:
užriesti -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3?wait_for_completion = true "-H" Turinio tipas: application / json '-d' "indeksai": ".kibana "," ignore_unavailable ": true," include_global_state ": false," metadata ": " taken_by ":" Flexibleadmin "," taken_because ":" Savaitės atsarginė kopija " 'Kai parametras „wait_for_completion“ bus nustatytas kaip „true“, pateiksite išvestį, panašią į toliau pateiktą:
„momentinė nuotrauka“:
"snapshot": "snapshot_3",
„uuid“: „tQUHyofIRnGMMtw0AGBACQ“,
„version_id“: 7100299,
„versija“: „7.10.2 ",
„indeksai“: [
".kibana_1 "
],
"data_streams": [],
"include_global_state": klaidinga,
„metaduomenys“:
"taken_by": "elastinis administratorius",
„Taken_because“: „Savaitės atsarginė kopija“
,
"valstija": "SĖKMĖ",
„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,
„nesėkmės“: [],
"skeveldros":
„iš viso“: 1,
„nepavyko“: 0,
„sėkmingas“: 1
Kaip peržiūrėti momentines nuotraukas
GET momentinės nuotraukos API valdo rodinio momentinių nuotraukų funkcionalumą.
Viskas, ką jums reikia perduoti užklausoje, yra momentinių vaizdų saugykla ir nuotraukos, kurią norite peržiūrėti, pavadinimas.
Momentinė nuotrauka turėtų pateikti išsamią informaciją apie nurodytą momentinę nuotrauką. Ši informacija apima:
- Pradžios ir pabaigos laiko reikšmės
- „Elasticsearch“ versija, kuri sukūrė momentinę nuotrauką
- Įtrauktų indeksų sąrašas
- Dabartinė fotografijos būsena
- Momentinės nuotraukos metu įvykusių gedimų sąrašas
Pvz., Norėdami peržiūrėti išsamią informaciją apie anksčiau sukurtą momentinę nuotrauką_3, naudokite toliau pateiktą užklausą:
GET / _snapshot / backup_repo / snapshot_3Norėdami naudoti „CURL“, naudokite toliau pateiktą komandą:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
curl -XGET „http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3“
Užklausa turėtų pateikti atsakymą su išsamia momentinės nuotraukos informacija:
„momentinės nuotraukos“: [
"snapshot": "snapshot_3",
„uuid“: „tQUHyofIRnGMMtw0AGBACQ“,
„version_id“: 7100299,
„versija“: „7.10.2 ",
„indeksai“: [
".kibana_1 "
],
"data_streams": [],
"include_global_state": klaidinga,
„metaduomenys“:
"taken_by": "elastinis administratorius",
„Taken_because“: „Savaitės atsarginė kopija“
,
„valstija“: „SĖKMĖ“,
„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,
„nesėkmės“: [],
"skeveldros":
„iš viso“: 1,
„nepavyko“: 0,
„sėkmingas“: 1
]
Taip pat galite tinkinti užklausos turinį, kad gautumėte konkrečią informaciją apie momentinę nuotrauką. Tačiau kol kas to nenagrinėsime.
Sakykime, kad norite peržiūrėti informaciją apie visas nuotraukas konkrečioje momentinių nuotraukų saugykloje; tokiu atveju prašyme galite perduoti žvaigždutės pakaitą kaip:
GET / _snapshot / backup_repo / *Tam skirta komanda „CURL“ yra:
curl -XGET „http: // localhost: 9200 / _snapshot / backup_repo / *“Atsakymas yra išsamus visų tos talpyklos momentinių vaizdų sąrašas:
„momentinės nuotraukos“: [
"momentinė nuotrauka": "momentinė nuotrauka_2021",
„uuid“: „7CFigHzvRtyZW07c60d2iw“,
„version_id“: 7100299,
„versija“: „7.10.2 ",
„indeksai“: [
„my_index“,
"single_index_with_body",
„my_index_2“,
„single_index“,
".kibana_1 ",
„Testas“
],
"data_streams": [],
"include_global_state": tiesa,
„valstija“: „SĖKMĖ“,
„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,
„nesėkmės“: [],
"skeveldros":
„iš viso“: 7,
„nepavyko“: 0,
„sėkmingas“: 7
,
"momentinė nuotrauka": "momentinė nuotrauka_2",
„uuid“: „w58IrYmORAub8VC7cg04Wg“,
„version_id“: 7100299,
„versija“: „7.10.2 ",
„indeksai“: [
".kibana_1 "
],
"data_streams": [],
"include_global_state": klaidinga,
„metaduomenys“:
"taken_by": "elastinis administratorius",
"taken_because": "Kasdieninė atsarginė kopija"
,
"valstija": "SĖKMĖ",
„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 m,
„nesėkmės“: [],
"skeveldros":
„iš viso“: 1,
„nepavyko“: 0,
„sėkmingas“: 1
,
"snapshot": "snapshot_3",
„uuid“: „tQUHyofIRnGMMtw0AGBACQ“,
„version_id“: 7100299,
„versija“: „7.10.2 ",
„indeksai“: [
".kibana_1 "
],
"data_streams": [],
"include_global_state": klaidinga,
„metaduomenys“:
"taken_by": "elastinis administratorius",
„Taken_because“: „Savaitės atsarginė kopija“
,
"valstija": "SĖKMĖ",
„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,
„nesėkmės“: [],
"skeveldros":
„iš viso“: 1,
„nepavyko“: 0,
„sėkmingas“: 1
]
Pakaitalai yra labai naudingi filtruojant konkrečią informaciją apie momentines nuotraukas.
Kaip ištrinti momentinę nuotrauką
Momentinės nuotraukos ištrynimas yra labai paprastas: viskas, ką jums reikia padaryti, tai naudoti „DELETE“ užklausą kaip:
DELETE / _snapshot / backup_repo / snapshot_2021 /CURL komanda yra:
garbanoti -XDELETE „http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021 /“Atsakymą reikia pripažinti: tiesa
„Pripažino“: tiesa
Jei momentinės nuotraukos nėra, gausite 404 būsenos kodą ir momentinės kopijos trūkstamą klaidą kaip:
„klaida“:
"Pagrindinė priežastis" : [
"type": "snapshot_missing_exception",
"Priežastis": "Trūksta [backup_repo: snapshot_2021]"
],
"type": "snapshot_missing_exception",
"Priežastis": "Trūksta [backup_repo: snapshot_2021]"
,
„statusas“: 404
Išvada
Šiame vadove aptarėme, kaip sukurti „Elasticsearch“ momentines nuotraukas naudojant „Snapshot“ API. To, ko išmokote, turėtų pakakti, kad galėtumėte sukurti momentinių nuotraukų saugyklą, peržiūrėti momentinių nuotraukų saugyklas, kurti, peržiūrėti ir ištrinti momentines nuotraukas. Nors yra pritaikymų, kuriuos galite atlikti naudodamiesi API, žinių, esančių šiame vadove, turėtų būti pakankamai, kad galėtumėte pradėti.
Ačiū, kad skaitėte.