Elastne otsing

Elasticsearchi klastrite varundamine ja taastamine hetktõmmistega

Elasticsearchi klastrite varundamine ja taastamine hetktõmmistega
Elasticsearch on seotud andmetega ja nagu te ilmselt juba teate, on andmed teile ja Elasticsearchile olulised. Kuid nii palju kui teie ja Elasticsearch armastate andmeid, võivad tekkida andmetõrked, mis põhjustavad andmete kadu.

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

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:

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_repo

Võ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_2021

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

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:

Näiteks ülaltoodud hetktõmmise üksikasjade kuvamiseks kasutage allpool näidatud taotlust:

GET / _snapshot / backup_repo / snapshot_3
CURL-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.

Viis parimat mängu püüdmise kaarti
Me kõik oleme YouTube'is voogesituse mänge näinud ja armastanud. PewDiePie, Jakesepticye ja Markiplier on vaid mõned tipptasemel mängijatest, kes on t...
Kuidas mängu Linuxis arendada
Kümme aastat tagasi ei osanud paljud Linuxi kasutajad ennustada, et nende lemmikoperatsioonisüsteem on ühel päeval populaarne kommertsvideomängude män...
Kommertsmängumootorite avatud lähtekoodiga sadamad
Tasuta, avatud lähtekoodiga ja platvormidevaheliste mängumootorite puhkusereise saab kasutada nii vanade kui ka mõnede üsna hiljutiste mängude pealkir...