Elastické vyhľadávanie

Zálohujte a obnovujte klastre Elasticsearch pomocou snímok

Zálohujte a obnovujte klastre Elasticsearch pomocou snímok
Elasticsearch je predovšetkým o dátach a ako už pravdepodobne viete, dáta sú pre vás a Elasticsearch dôležité. Avšak rovnako ako vy, aj Elasticsearch milujete údaje, môžu sa vyskytnúť zlyhania údajov, ktoré vedú k ich strate.

Na zabezpečenie ochrany pred stratou údajov má Elasticsearch rôzne funkcie, ktoré vám umožňujú zabezpečiť dostupnosť údajov, a to aj v prípadoch zlyhania údajov.

Medzi spôsoby, ktoré vám server Elasticsearch poskytuje, aby vám poskytol dostupnosť údajov, patria:

Tento tutoriál vám ukáže, ako vytvoriť snímky klastra, ktoré vám pomôžu byť pripravení, ak dôjde k nezvratnej udalosti zlyhania údajov.

Začnime.

Čo je Elasticsearch Snapshot?

Ako už bolo spomenuté, elastická snímka je záložnou kópiou spusteného klastra Elasticsearch. Táto snímka môže byť celého klastra alebo konkrétnych indexov a dátových tokov v konkrétnom klastri.

Ako sa čoskoro dozviete, zásuvný modul úložiska spravuje snímky Elasticsearch. Tieto snímky sa dajú uložiť na rôznych miestach úložiska definovaných doplnkom. Patria sem miestne systémy a vzdialené systémy, ako napríklad GCP Storage, Amazon EC2, Microsoft Azure a mnoho ďalších.

Ako vytvoriť úložisko snímok Elasticsearch

Predtým, ako sa ponoríme do vytvárania snímok Elasticsearch, musíme vytvoriť úložisko snímok, pretože veľa služieb Elasticsearch používa na vykonávanie týchto úloh rozhranie Snapshot API.

Niektoré z úloh spracovávaných rozhraním Snapshot API sú:

Na vytvorenie úložiska snímok používame koncový bod API _snapshot nasledovaný názvom, ktorý chceme priradiť úložisku snímok. Zvážte nižšie uvedenú požiadavku, ktorá vytvára úložisko s názvom backup_repo

PUT / _snapshot / backup_repo

"type": "fs",
"nastavenie":
"location": "/ domov / root / zálohy",
"stlačiť": pravda

Tu je príkaz cURL pre vyššie uvedenú požiadavku:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo" -H 'Content-Type: application / json' -d '"type": "fs", "settings": "location": "/ home / root / backups "," compress ": true '

Ak chcete odovzdať cestu k úložisku snímok, musíte do cesty najskôr pridať cestu systému alebo nadradený adresár.repo záznam v elasticsearch.yml

Cesta.záznam repo by mal vyzerať podobne ako:

cesta.repo: [“/ home / root / backups”]

Konfiguračný súbor Elasticsearch nájdete v priečinku / etc / elasticsearch / elasticsearch.yml

POZNÁMKA: Po pridaní cesta.repo, možno budete musieť reštartovať klastre Elasticsearch. Ďalej sú podporované hodnoty pre cestu.repo sa môže veľmi líšiť v závislosti od platformy, na ktorej je spustený Elasticsearch.

Ako zobraziť úložisko snímok

Ak chcete potvrdiť úspešné vytvorenie úložiska snímok, použite požiadavku GET s koncovým bodom _snapshot ako:

ZÍSKAŤ / _snapshot / backup_repo

Môžete tiež použiť nasledujúci príkaz cURL:

curl -XGET "http: // localhost: 9200 / _snapshot / backup_repo"

Mali by sa zobraziť informácie o úložisku záloh, napríklad:


"backup_repo":
"type": "fs",
"nastavenie" :
"compress": "true",
"location": "" "/ domov / root / zálohy" ""


Ak máte viac ako jedno úložisko snímok a nepamätáte si ich názov, môžete vynechať názov úložiska a zavolať koncový bod _snapshot a uviesť všetky existujúce úložiská.

GET / _snapshot alebo curl curl -XGET http: // localhost: 9200 / _snapshot

Ako vytvoriť snímku elasticsearch

Vytvorenie snímky Elasticsearch pre konkrétne úložisko snímok sa vybavuje rozhraním create snapshot API. Rozhranie API vyžaduje názov úložiska snímok a názov snímky.

POZNÁMKA: Jeden archív snímok môže mať viac ako jednu snímku rovnakých klastrov, pokiaľ majú jedinečné identity / názvy.

Zvážte nasledujúcu požiadavku na pridanie snímky nazvanej snapshot_2021 do úložiska backup_repo.

PUT / _snapshot / backup_repo / snapshot_2021

Ak chcete použiť cURL, použite príkaz:

curl -XPUT “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021”

Príkaz by mal vrátiť odpoveď z Elasticsearch s 200 OK a prijatý: true


„prijatý“: pravda

Pretože neurčuje, ktoré dátové toky a indexy chcete zálohovať, volanie vyššie uvedenej požiadavky zálohuje všetky údaje a stav klastra. Ak chcete určiť, ktoré dátové toky a indexy sa majú zálohovať, pridajte ich do tela žiadosti.

Zvážte nasledujúcu požiadavku, ktorá zálohuje .index kibana (systémový index) a určuje, ktorý používateľ autorizoval snímku, a dôvod.

PUT / _snapshot / backup_repo / snapshot_2

"indexy": ".kibana ",
"ignore_unavailable": pravda,
"include_global_state": true,
"metadáta":
"taken_by": "elasticadmin",
“Taken_because”: “Denné zálohovanie”

Príkaz cURL je:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2" -H 'Content-Type: application / json' -d '"indexy": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metadata ": " taken_by ":" elasticadmin "," taken_because ":" Daily Backup " '

Ignore_unavailable nastavuje booleovský stav, ktorý vracia chybu, ak chýbajú alebo sú zatvorené akékoľvek dátové toky alebo indexy uvedené v snímke.

Parameter include_global_state uloží aktuálny stav klastra, ak je pravdivý. Niektoré z uložených informácií o klastri zahŕňajú:

POZNÁMKA: Môžete zadať viac ako jeden index oddelený čiarkami.

Bežným argumentom používaným v koncovom bode _snapshot je wait_for_completion, logická hodnota definujúca, či (true) alebo nie (false) by sa žiadosť mala vrátiť okamžite po inicializácii snímky (predvolená) alebo počkať na dokončenie snímky.

Napríklad:

PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = true

"indexy": ".kibana ",
"ignore_unavailable": pravda,
"include_global_state": false,
"metadáta":
"taken_by": "elasticadmin",
“Taken_because”: “Týždenné zálohovanie”

Príkaz cURL je:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3?wait_for_completion = true "-H 'Typ obsahu: application / json' -d '" indexy ":".kibana "," ignore_unavailable ": true," include_global_state ": false," metadata ": " taken_by ":" elasticadmin "," taken_because ":" Týždenné zálohovanie " '

Keď máte parameter wait_for_completion nastavený na true, dáte výstup podobný tomu, ktorý je uvedený nižšie:


"snapshot":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"verzia": "7.10.2 ",
"indexy": [
„.kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadáta":
"taken_by": "elasticadmin",
“Taken_because”: “Týždenné zálohovanie”
,
"state": "ÚSPECH",
"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,
"nepodarky": [],
"shards":
"celkom": 1,
"failed": 0,
„úspešné“: 1


Ako zobraziť snímky

Rozhranie API GET snapshot spracováva funkčnosť snímok zobrazenia.

Všetko, čo potrebujete na odoslanie žiadosti, je úložisko snímok a názov snímky, ktorú chcete zobraziť.

Snímka by mala odpovedať podrobnosťami o určenej snímke. Medzi tieto podrobnosti patria:

Ak chcete napríklad zobraziť podrobnosti o snímke_3 vytvorenej vyššie, použite žiadosť uvedenú nižšie:

ZÍSKAŤ / _snapshot / backup_repo / snapshot_3
Na použitie cURL použite nasledujúci príkaz:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
curl -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”

Žiadosť by mala vrátiť odpoveď s podrobnosťami snímky ako:


„snímky“: [

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"verzia": "7.10.2 ",
"indexy": [
„.kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadáta":
"taken_by": "elasticadmin",
“Taken_because”: “Týždenné zálohovanie”
,
"state": "ÚSPECH",
"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,
"nepodarky": [],
"shards":
"celkom": 1,
"failed": 0,
„úspešný“: 1


]

Môžete tiež prispôsobiť telo žiadosti, aby ste získali konkrétne podrobnosti o snímke. Nateraz sa však tým nebudeme zaoberať.

Povedzme, že chcete zobraziť informácie o všetkých snímkach v konkrétnom úložisku snímok; v takom prípade môžete v žiadosti odovzdať zástupný znak hviezdičky ako:

GET / _snapshot / backup_repo / *

Príkaz cURL je:

curl -XGET “http: // localhost: 9200 / _snapshot / backup_repo / *”

Odpoveďou je podrobný výpis všetkých snímok v danom úložisku ako:


"snímky": [

"snapshot": "snapshot_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"verzia": "7.10.2 ",
"indexy": [
"moj_index",
„single_index_with_body“,
„my_index_2“,
„single_index“,
„.kibana_1 ",
„Test“
],
"data_streams": [],
"include_global_state": true,
"state": "ÚSPECH",
"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,
"nepodarky": [],
"shards":
"celkom": 7,
"failed": 0,
„úspešné“: 7

,

"snapshot": "snapshot_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"verzia": "7.10.2 ",
"indexy": [
„.kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadáta":
"taken_by": "elasticadmin",
"taken_because": "Denné zálohovanie"
,
"state": "ÚSPECH",
"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,
"nepodarky": [],
"shards":
"celkom": 1,
"failed": 0,
„úspešné“: 1

,

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"verzia": "7.10.2 ",
"indexy": [
„.kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadáta":
"taken_by": "elasticadmin",
“Taken_because”: “Týždenné zálohovanie”
,
"state": "ÚSPECH",
"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,
"nepodarky": [],
"shards":
"celkom": 1,
"failed": 0,
„úspešné“: 1


]

Zástupné znaky sú veľmi užitočné na filtrovanie konkrétnych informácií o snímkach.

Ako odstrániť snímku

Odstránenie snímky je veľmi jednoduché: všetko, čo musíte urobiť, je použiť požiadavku na ODSTRÁNENIE ako:

DELETE / _snapshot / backup_repo / snapshot_2021 /

Príkaz cURL je:

curl -XDELETE “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021 /”

Je potrebné uznať odpoveď: pravda


„Potvrdené“: pravda

Ak snímka neexistuje, dostanete stavový kód 404 a chýbajúca snímka ako:


"chyba" :
"príčina" : [

"type": "snapshot_missing_exception",
"reason": "[backup_repo: snapshot_2021] chýba"

],
"type": "snapshot_missing_exception",
"reason": "[backup_repo: snapshot_2021] chýba"
,
"status": 404

Záver

V tejto príručke sme diskutovali o tom, ako vytvoriť snímky Elasticsearch pomocou Snapshot API. To, čo ste sa naučili, by malo stačiť na to, aby ste mohli vytvoriť úložisko snímok, prezerať úložiská snímok, vytvárať, zobrazovať a mazať snímky. Aj keď existujú prispôsobenia, ktoré môžete vykonať pomocou API, znalosti v tejto príručke by vám mali stačiť, aby ste mohli začať.

Ďakujem za čítanie.

Hry Ako zobraziť počítadlo FPS v hrách Linux
Ako zobraziť počítadlo FPS v hrách Linux
Hranie na systéme Linux získalo veľký tlak, keď spoločnosť Valve v roku 2012 oznámila podporu systému Linux pre klienta Steam a ich hry. Od tej doby s...
Hry Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Úvod do hry Civilization 6 predstavuje moderné poňatie klasického konceptu predstaveného v sérii hier Age of Empires. Myšlienka bola dosť jednoduchá; ...
Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...