Elastické vyhledávání

Zálohujte a obnovujte klastry Elasticsearch pomocí snímků

Zálohujte a obnovujte klastry Elasticsearch pomocí snímků
Elasticsearch je především o datech a jak již pravděpodobně víte, data jsou pro vás a Elasticsearch důležitá. Avšak stejně jako vy i Elasticsearch milujete data, může dojít k selhání dat, což vede ke ztrátě dat.

Abychom pomohli chránit před ztrátou dat, má Elasticsearch různé funkce, které vám umožňují zajistit dostupnost dat, a to i v případech selhání dat.

Mezi způsoby, které vám Elasticsearch poskytuje, aby vám poskytla dostupnost dat, patří:

Tento kurz vám ukáže, jak vytvořit snímky clusteru, které vám pomohou být připraveni, pokud dojde k nevratné události selhání dat.

Začněme.

Co je Elasticsearch Snapshot?

Jak již bylo zmíněno, elastický snímek je záložní kopií běžícího klastru Elasticsearch. Tento snímek může být celého klastru nebo konkrétních indexů a datových toků v konkrétním klastru.

Jak se brzy dozvíte, plugin úložiště spravuje snímky Elasticsearch. Tyto snímky lze uložit na různých místech úložiště definovaných zásuvným modulem. Patří mezi ně místní systémy a vzdálené systémy, jako je GCP Storage, Amazon EC2, Microsoft Azure a mnoho dalších.

Jak vytvořit úložiště snímků Elasticsearch

Než se ponoříme do vytváření snímků Elasticsearch, musíme vytvořit úložiště snímků, protože mnoho služeb Elasticsearch k provádění těchto úkolů používá API Snapshot.

Některé z úkolů zpracovávaných Snapshot API jsou:

Chcete-li vytvořit úložiště snímků, použijeme koncový bod API _snapshot následovaný názvem, který chceme přiřadit úložiště snímků. Zvažte níže uvedený požadavek, který vytvoří úložiště s názvem backup_repo

PUT / _snapshot / backup_repo

"type": "fs",
"settings":
"location": "/ home / root / backups",
"compress": true

Zde je příkaz cURL pro výše uvedený požadavek:

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

Chcete-li předat cestu úložiště snímků, musíte do cesty nejprve přidat cestu systému nebo nadřazený adresář.repo záznam v ElasticSearch.yml

Cesta.záznam repo by měl vypadat podobně jako:

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

Konfigurační soubor Elasticsearch najdete v / etc / elasticsearch / elasticsearch.yml

POZNÁMKA: Po přidání cesty.repo, možná budete muset restartovat klastry Elasticsearch. Dále jsou podporovány hodnoty pro cestu.repo se může divoce lišit v závislosti na platformě běžící Elasticsearch.

Jak zobrazit úložiště snímků

Chcete-li potvrdit úspěšné vytvoření úložiště snímků, použijte požadavek GET s koncovým bodem _snapshot jako:

ZÍSKAT / _snapshot / backup_repo

Můžete také použít následující příkaz cURL:

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

To by mělo zobrazit informace o úložišti záloh, například:


"backup_repo":
"type": "fs",
"settings":
"compress": "true",
"location": "" "/ home / root / backup" ""


Pokud máte více než jedno úložiště snímků a nepamatujete si název, můžete vynechat název úložiště a zavolat koncový bod _snapshot a vypsat seznam všech existujících úložišť.

ZÍSKAT / _snapshot nebo curl curl -XGET http: // localhost: 9200 / _snapshot

Jak vytvořit snímek Elasticsearch

Vytvoření snímku Elasticsearch pro konkrétní úložiště snímků je zpracováno API pro vytvoření snímku. API vyžaduje název úložiště snímků a název snímku.

POZNÁMKA: Jedno úložiště snímků může mít více než jeden snímek stejných klastrů, pokud mají jedinečné identity / jména.

Zvažte následující požadavek na přidání snímku s názvem snapshot_2021 do úložiště backup_repo.

PUT / _snapshot / backup_repo / snapshot_2021

Chcete-li použít cURL, použijte příkaz:

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

Příkaz by měl vrátit odpověď od Elasticsearch s 200 OK a akceptováno: true


"přijato": pravda

Protože neurčuje, které datové toky a indexy chcete zálohovat, volání výše uvedeného požadavku zálohuje všechna data a stav klastru. Chcete-li určit, které datové toky a indexy se mají zálohovat, přidejte to do těla žádosti.

Zvažte následující požadavek, který zálohuje .index kibana (systémový index) a určuje, který uživatel autorizoval snímek a důvod.

PUT / _snapshot / backup_repo / snapshot_2

"indexy": ".kibana ",
"ignore_unavailable": true,
"include_global_state": true,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Denní zálohování”

Pří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 nastaví booleovský stav, který vrací chybu, pokud chybí nebo jsou zavřeny jakékoli datové toky nebo indexy uvedené ve snímku.

Parametr include_global_state uloží aktuální stav clusteru, pokud je true. Některé z uložených informací o clusteru zahrnují:

POZNÁMKA: Můžete zadat více než jeden index oddělených čárkami.

Běžným argumentem používaným s koncovým bodem _snapshot je wait_for_completion, logická hodnota definující, zda (true) nebo ne (false) by měl požadavek vrátit ihned po inicializaci snímku (výchozí) nebo počkat na dokončení snímku.

Například:

PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = true

"indexy": ".kibana ",
"ignore_unavailable": true,
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Týdenní zálohování”

Příkaz cURL je:

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

Když máte parametr wait_for_completion nastavený na true, dáte výstup podobný tomu, který je uveden níže:


"snapshot":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indexy": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Týdenní zálohování”
,
"state": "ÚSPĚCH",
"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,
"selhání": [],
"střepy":
"celkem": 1,
"failed": 0,
"successful": 1


Jak zobrazit snímky

Rozhraní API GET snapshot zpracovává funkčnost snapshotů zobrazení.

K předání požadavku potřebujete pouze úložiště snímků a název snímku, který chcete zobrazit.

Snímek by měl reagovat podrobnostmi o zadaném snímku. Mezi tyto podrobnosti patří:

Chcete-li například zobrazit podrobnosti o snímku snapshot_3 vytvořeném výše, použijte níže uvedený požadavek:

ZÍSKAT / _snapshot / backup_repo / snapshot_3
Chcete-li použít cURL, použijte následující příkaz:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
curl -XGET „http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3“

Požadavek by měl vrátit odpověď s podrobnostmi o snímku jako:


"snapshots": [

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indexy": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Týdenní zálohování”
,
"state": "ÚSPĚCH",
"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,
"selhání": [],
"střepy":
"celkem": 1,
"failed": 0,
"successful": 1


]

Můžete také přizpůsobit tělo požadavku, abyste získali konkrétní podrobnosti o snímku. Na to se však zatím nebudeme zabývat.

Řekněme, že chcete zobrazit informace o všech snímcích v konkrétním úložišti snímků; v takovém případě můžete v požadavku předat zástupný znak hvězdičky jako:

ZÍSKAT / _snapshot / backup_repo / *

Příkaz cURL je:

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

Odpověď je podrobný výpis všech snímků v daném úložišti jako:


"snapshots": [

"snapshot": "snapshot_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"version": "7.10.2 ",
"indexy": [
„můj_index“,
„single_index_with_body“,
„můj_index_2“,
"single_index",
".kibana_1 ",
"test"
],
"data_streams": [],
"include_global_state": true,
"state": "ÚSPĚCH",
"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,
"selhání": [],
"střepy":
"celkem": 7,
"failed": 0,
„successful“: 7

,

"snapshot": "snapshot_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"version": "7.10.2 ",
"indexy": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
"taken_because": "Denní zálohování"
,
"state": "ÚSPĚCH",
"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,
"selhání": [],
"střepy":
"celkem": 1,
"failed": 0,
"successful": 1

,

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indexy": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Týdenní zálohování”
,
"state": "ÚSPĚCH",
"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,
"selhání": [],
"střepy":
"celkem": 1,
"failed": 0,
"successful": 1


]

Zástupné znaky jsou velmi užitečné pro filtrování konkrétních informací o snímcích.

Jak odstranit snímek

Odstranění snímku je velmi jednoduché: vše, co musíte udělat, je použít požadavek VYMAZAT jako:

ODSTRANIT / _snapshot / backup_repo / snapshot_2021 /

Příkaz cURL je:

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

Odpověď by měla být uznána: pravda


„Potvrzeno“: pravda

Pokud snímek neexistuje, zobrazí se stavový kód 404 a chyba chybějícího snímku jako:


"error":
"Příčina" : [

"type": "snapshot_missing_exception",
"reason": "[backup_repo: snapshot_2021] chybí"

],
"type": "snapshot_missing_exception",
"reason": "[backup_repo: snapshot_2021] chybí"
,
"status": 404

Závěr

V této příručce jsme diskutovali o tom, jak vytvořit snímky Elasticsearch pomocí Snapshot API. To, co jste se naučili, by mělo stačit k tomu, abyste mohli vytvořit úložiště snímků, prohlížet úložiště snímků, vytvářet, prohlížet a mazat snímky. I když existují přizpůsobení, která můžete provést pomocí API, znalosti v této příručce by měly stačit, abyste mohli začít.

Děkuji za přečtení.

Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...
Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...