Andmete kadumise eest kaitsmiseks on Elasticsearchil mitmeid funktsioone, mis võimaldavad teil tagada andmete kättesaadavuse ka andmetõrgetel juhtudel.
Mõned viisid, mida Elasticsearch teile andmete kättesaadavuse tagamiseks kasutab, hõlmavad järgmist
- Klastriteülesed replikatsioonid - funktsioon, mis võimaldab teil andmeid kopeerida järgijate klastrite komplekti; järgijaklaster on ooteklaster, mida kasutatakse põhiklastri rikke korral.
- Teine meetod, mida Elasticsearch kasutab andmete vältimiseks varukoopiate abil, mida nimetatakse ka klastri hetktõmmisteks. Vajaduse korral saate nende hetktõmmiste abil taastada andmed täiesti uues klastris.
See õpetus näitab teile, kuidas luua klastri hetktõmmiseid, mis aitavad teil olla valmis pöördumatu andmerikke korral.
Alustame.
Mis on Elasticsearchi hetktõmmis?
Nagu mainitud, on elastne hetktõmmis töötava Elasticsearchi klastri varukoopia. See hetktõmmis võib koosneda tervest klastrist või konkreetsest indeksist ja andmevoogudest konkreetses klastris.
Nagu varsti teada saate, haldab hoidla pistikprogramm Elasticsearchi hetktõmmiseid. Need hetktõmmised on salvestatavad pistikprogrammi määratletud erinevates salvestuskohtades. Nende hulka kuuluvad kohalikud süsteemid ja kaugsüsteemid nagu GCP Storage, Amazon EC2, Microsoft Azure ja palju muud.
Kuidas luua Elasticsearchi hetktõmmiste hoidlat
Enne kui sukeldume Elasticsearchi hetktõmmiste loomisse, peame looma hetktõmmiste hoidla, kuna paljud Elasticsearchi teenused kasutavad nende ülesannete täitmiseks Snapshot API-d.
Mõned Snapshot API käsitsetud ülesanded on:
- Pange hetktõmmiste hoidla
- Kontrollige hetktõmmiste hoidlat
- Hankige hetktõmmistehoidla
- Kustuta hetktõmmiste hoidla
- Koristage hetktõmmiste hoidla
- Loo hetktõmmis
- Klooni hetktõmmis
- Hankige hetktõmmis
- Hankige hetktõmmise olek
- Taasta hetktõmmis
- Kustuta hetktõmmis
Hetkepiltide hoidla loomiseks kasutame _snapshot API lõpp-punkti, millele järgneb nimi, mille soovime hetkepildihoidlale määrata. Mõelge allpool olevale taotlusele, mis loob hoidla nimega backup_repo
PUT / _snapshot / backup_repo"tüüp": "fs",
"seaded":
"asukoht": "/ home / root / backups",
"kompress": tõsi
Siin on ülaltoodud päringu jaoks käsk cURL:
curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo" -H 'Sisu tüüp: application / json' -d '"type": "fs", "settings": "location": "/ home / root / backups "," compress ": true 'Hetkepiltide hoidla tee edastamiseks peate kõigepealt lisama teele süsteemi tee või vanema kataloogi.repo kanne elasticsearchis.yml
Tee.repokirje peaks välja nägema sarnane:
tee.repo: [“/ home / root / backups”]Elasticsearchi konfiguratsioonifaili leiate kataloogist / etc / elasticsearch / elasticsearch.yml
MÄRGE: Pärast tee lisamist.repo, peate võib-olla Elasticsearchi klastrid taaskäivitama. Lisaks on tee jaoks toetatud väärtused.repo võib sõltuvalt Elasticsearchi töötavast platvormist väga varieeruda.
Kuidas vaadata hetktõmmiste hoidlat
Hetkepiltide hoidla eduka loomise kinnitamiseks kasutage GET-päringut koos lõpp-punktiga _snapshot järgmiselt:
GET / _snapshot / backup_repoVõite kasutada ka järgmist käsku cURL:
curl -XGET "http: // localhost: 9200 / _snapshot / backup_repo"See peaks kuvama teavet varukoopiate hoidla kohta, näiteks:
"backup_repo":
"tüüp": "fs",
"seaded":
"kompress": "tõene",
"asukoht": "" "/ kodu / juur / varukoopiad" ""
Kui teil on rohkem kui üks hetktõmmistehoidla ja nimi ei mäleta, võite loobuda repo nimest ja helistada _snapshoti lõpp-punktile, et loetleda kõik olemasolevad hoidlad.
GET / _snapshot või curl curl -XGET http: // localhost: 9200 / _snapshot
Kuidas luua Elasticsearchi hetktõmmist
Konkreetse hetkepildihoidla jaoks Elasticsearchi hetktõmmise loomisega tegeleb snapshoti loomise API. API nõuab hetktõmmise hoidla nime ja hetktõmmise nime.
MÄRGE: Ühes hetkepildihoidlas võib olla mitu klastrit samast klastrist, kui neil on ainulaadsed identiteedid / nimed.
Kaaluge järgmist taotlust hetktõmmise nimega snapshot_2021 lisamiseks varukoopia_repo juurde.
PUT / _snapshot / backup_repo / snapshot_2021CURL-i kasutamiseks kasutage käsku:
curl -XPUT “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021”Käsk peaks tagastama Elasticsearchi vastuse väärtusega 200 OK ja aktsepteeritud: true
"aktsepteeritud": tõsi
Kuna see ei täpsusta, milliseid andmevooge ja indekseid soovite varundada, varundatakse ülaltoodud päringuga helistades kõik andmed ja klastri olek. Varundatavate andmevoogude ja indeksite täpsustamiseks lisage need päringu kehasse.
Mõelge järgmisele taotlusele, mis varundab .kibana indeks (süsteemi register) ja täpsustab, milline kasutaja hetktõmmise autoriseeris ja selle põhjuse.
PUT / _snapshot / backup_repo / snapshot_2"indeksid": ".kibana ",
"ignore_unavailable": tõsi,
"include_global_state": tõene,
"metaandmed":
"taken_by": "elastadmin",
„Taken_because”: „Igapäevane varundamine”
Selle jaoks on käsk cURL:
curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2" -H 'Sisu tüüp: application / json' -d '"indeksid": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metadata ": " taken_by ":" elastneadmin "," taken_because ":" Daily Backup " 'Ignore_unavailable määrab tõeväärtuse oleku, mis tagastab tõrke, kui mõni hetktõmmises määratud andmevoog või indeks puudub või on suletud.
Parameeter include_global_state salvestab klastri praeguse oleku, kui see on tõene. Osa salvestatud klastriteabest sisaldab järgmist:
- Klastri püsiseaded
- Indeksimallid
- Pärandindeksi mallid
- Neelake torujuhtmed
- ILM-i elutsüklipoliitika
MÄRGE: Saate määrata mitu komadega eraldatud indeksit.
_Snapshoti lõpp-punktiga kasutatav tavaline argument on wait_for_completion, Boole'i väärtus, mis määrab, kas (tõene) või mitte (vale) peaks taotlus tagastama kohe pärast hetktõmmise initsialiseerimist (vaikimisi) või ootama hetktõmmise valmimist.
Näiteks:
PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = tõene"indeksid": ".kibana ",
"ignore_unavailable": tõsi,
"include_global_state": vale,
"metaandmed":
"taken_by": "elastadmin",
„Taken_because”: „Iganädalane varundamine”
Käsk cURL on:
curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / hetktõmmis_3?wait_for_completion = true "-H" Sisu tüüp: application / json '-d' "indeksid": ".kibana "," ignore_unavailable ": tõsi," include_global_state ": vale," metaandmed ": " taken_by ":" elastneadmin "," taken_because ":" Iganädalane varukoopia " 'Kui parameeter wait_for_completion on seatud väärtusele True, annate väljundi, mis sarnaneb allpool näidatuga:
"hetktõmmis":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"versioon": "7.10.2 ",
"indeksid": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": vale,
"metaandmed":
"taken_by": "elastadmin",
„Taken_because”: „Iganädalane varundamine”
,
"riik": "EDU",
"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,
"ebaõnnestumised": [],
"killud":
"kokku": 1,
"nurjus": 0,
"edukas": 1
Kuidas vaadata pilte
GET-i hetktõmmise API haldab vaate hetktõmmiste funktsionaalsust.
Kõik, mida peate päringus edastama, on hetktõmmiste hoidla ja selle hetkepildi nimi, mille üksikasju soovite vaadata.
Hetkepilt peaks vastama üksikasjadega täpsustatud hetktõmmise kohta. Need üksikasjad hõlmavad järgmist:
- Algus- ja lõppaja väärtused
- Elasticsearchi versioon, mis hetkepildi lõi
- Lisatud indeksite loetelu
- Pildi hetkeseis
- Ülevaate ajal ilmnenud tõrgete loend
Näiteks ülaltoodud hetktõmmise üksikasjade kuvamiseks kasutage allpool näidatud taotlust:
GET / _snapshot / backup_repo / snapshot_3CURL-i kasutamiseks kasutage allolevat käsku:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
curl -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”
Taotlus peaks tagastama vastuse koos hetktõmmise üksikasjadega järgmiselt:
"hetktõmmised": [
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"versioon": "7.10.2 ",
"indeksid": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": vale,
"metaandmed":
"taken_by": "elastadmin",
„Taken_because”: „Iganädalane varundamine”
,
"riik": "EDU",
"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,
"ebaõnnestumised": [],
"killud":
"kokku": 1,
"nurjus": 0,
"edukas": 1
]
Samuti saate kohandada päringu keha, et saada hetktõmmise kohta üksikasju. Praegu me seda siiski ei uuri.
Oletame, et soovite vaadata teavet kõigi hetktõmmiste kohta konkreetses hetktõmmiste hoidlas; sellisel juhul võite taotluses edastada tärnimärgi järgmiselt:
GET / _snapshot / backup_repo / *Selle jaoks on käsk cURL:
curl -XGET “http: // localhost: 9200 / _snapshot / backup_repo / *”Vastus on kõigi selle hoidla hetktõmmiste üksikasjalik väljavõte järgmiselt:
"hetktõmmised": [
"hetktõmmis": "hetktõmmis_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"versioon": "7.10.2 ",
"indeksid": [
"my_index",
"single_index_with_body",
"my_index_2",
"single_index",
".kibana_1 ",
"Test"
],
"data_streams": [],
"include_global_state": tõene,
"riik": "EDU",
"algusaeg": "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,
"ebaõnnestumised": [],
"killud":
"kokku": 7,
"nurjus": 0,
"edukas": 7
,
"hetktõmmis": "hetktõmmis_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"versioon": "7.10.2 ",
"indeksid": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": vale,
"metaandmed":
"taken_by": "elastadmin",
"taken_because": "Igapäevane varukoopia"
,
"riik": "EDU",
"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,
"ebaõnnestumised": [],
"killud":
"kokku": 1,
"nurjus": 0,
"edukas": 1
,
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"versioon": "7.10.2 ",
"indeksid": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": vale,
"metaandmed":
"taken_by": "elastadmin",
„Taken_because”: „Iganädalane varundamine”
,
"riik": "EDU",
"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,
"ebaõnnestumised": [],
"killud":
"kokku": 1,
"nurjus": 0,
"edukas": 1
]
Metamärgid on väga kasulikud hetktõmmiste kohta konkreetse teabe filtreerimiseks.
Kuidas kustutada hetktõmmist
Hetkepildi kustutamine on väga lihtne: peate vaid kasutama DELETE päringut järgmiselt:
KUSTUTA / _snapshot / backup_repo / snapshot_2021 /Käsk cURL on:
curl -XDELETE “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021 /”Vastust tuleks tunnistada: tõsi
“Tunnustatud”: tõsi
Kui hetktõmmist pole olemas, saate 404 olekukoodi ja hetktõmmise puuduva tõrke:
"tõrge":
"peamine põhjus" : [
"type": "snapshot_missing_exception",
"põhjus": "[backup_repo: snapshot_2021] puudub"
],
"type": "snapshot_missing_exception",
"põhjus": "[backup_repo: snapshot_2021] puudub"
,
"staatus": 404
Järeldus
Selles juhendis oleme arutanud, kuidas luua Elasticsearchi hetktõmmiseid Snapshot API abil. Õpitu peaks olema piisav, et saaksite luua hetktõmmiste hoidla, vaadata hetktõmmiste hoidlaid, luua, vaadata ja kustutada pilte. Kuigi API-ga saate kohandusi teha, peaksid selle juhendi teadmised alustamiseks piisama.
Täname lugemast.