Az adatvesztés elleni védelem érdekében az Elasticsearch számos olyan funkcióval rendelkezik, amelyek lehetővé teszik az adatok elérhetőségének biztosítását, még az adatok meghibásodása esetén is.
Az Elasticsearch az adatok elérhetőségének biztosítása érdekében néhányat tartalmaz:
- Fürtön átívelő replikációk, egy olyan szolgáltatás, amely lehetővé teszi az adatok több követő fürtökre történő replikálását; követőfürt egy készenléti fürt, amelyet a főfürt meghibásodása esetén használnak.
- Egy másik módszer, amelyet az Elasticsearch az adatok megakadályozására használ biztonsági mentésekkel, más néven fürt pillanatképekkel. Ha szükség van rá, ezeket a pillanatképeket felhasználhatja egy teljesen új fürt adatainak visszaállítására.
Ez az oktatóanyag bemutatja, hogyan hozhat létre fürt pillanatképeket, amelyek segítenek készen állni egy visszafordíthatatlan adathiba bekövetkezése esetén.
Kezdjük el.
Mi az az Elasticsearch pillanatkép?
Mint említettük, a rugalmas pillanatkép egy futó Elasticsearch-fürt biztonsági másolata. Ez a pillanatkép lehet egy teljes fürt, vagy egy adott fürtön belüli konkrét indexek és adatfolyamok.
Amint hamarosan megtudhatja, egy tárház plugin kezeli az Elasticsearch pillanatképeket. Ezek a pillanatképek a plugin által meghatározott különböző tárolási helyeken tárolhatók. Ide tartoznak a helyi rendszerek és a távoli rendszerek, például a GCP Storage, az Amazon EC2, a Microsoft Azure és még sok más.
Hogyan hozzunk létre egy Elasticsearch pillanatkép-adattárat
Mielőtt belevágnánk az Elasticsearch pillanatképek létrehozásába, létre kell hoznunk egy pillanatkép tárat, mert az Elasticsearch számos szolgáltatása a Snapshot API-t használja e feladatok elvégzéséhez.
Néhány a Snapshot API által kezelt feladat:
- Tedd pillanatkép tárházat
- Ellenőrizze a pillanatkép tárházát
- Pillanatkép-tároló letöltése
- Törölje a pillanatképtárat
- Tisztítsa meg a pillanatképtárat
- Pillanatkép készítése
- Klón pillanatkép
- Pillanatkép készítése
- Pillanatkép állapotának lekérése
- Pillanatkép visszaállítása
- Pillanatkép törlése
Pillanatkép-lerakat létrehozásához a _snapshot API végpontot használjuk, amelyet a pillanatkép-lerakathoz rendelni kívánt név követ. Tekintsük az alábbi kérést, amely létrehoz egy backup_repo nevű adattárat
PUT / _snapshot / backup_repo"type": "fs",
"beállítások":
"hely": "/ home / root / backups",
"tömörítés": igaz
Itt van egy cURL parancs a fenti kéréshez:
curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo" -H 'Tartalomtípus: application / json' -d '"type": "fs", "settings": "location": "/ home / root / backups "," compress ": true 'A pillanatkép tárház elérési útjának átadásához először hozzá kell adnia a rendszer elérési útját vagy a szülő könyvtárat az elérési útvonalhoz.repo bejegyzés az elasticsearchben.yml
Az út.a repo bejegyzésnek hasonlónak kell lennie:
pálya.repo: [“/ home / root / backups”]Az Elasticsearch konfigurációs fájl az / etc / elasticsearch / elasticsearch könyvtárban található.yml
JEGYZET: Az út hozzáadása után.repo, lehet, hogy újra kell indítania az Elasticsearch fürtöket. Ezenkívül az elérési útnak támogatott értékek.A repo az Elasticsearch futtató platformtól függően változhat.
A Pillanatfelvételek tárának megtekintése
A pillanatkép-lerakat sikeres létrehozásának megerősítéséhez használja a GET kérést a _snapshot végponttal:
GET / _snapshot / backup_repoHasználhatja a következő cURL parancsot is:
curl -XGET "http: // localhost: 9200 / _snapshot / backup_repo"Ennek meg kell jelenítenie a biztonsági mentés adattárának adatait, például:
"backup_repo":
"type": "fs",
"beállítások" :
"tömörítés": "igaz",
"location": "" "/ home / root / backups" ""
Ha több pillanatkép-tárháza van, és nem emlékszik a névre, akkor kihagyhatja a repó nevét, és felhívhatja a _snapshot végpontot az összes meglévő tárház felsorolásához.
GET / _snapshot vagy curl curl -XGET http: // localhost: 9200 / _snapshot
Hogyan készítsünk egy Elasticsearch pillanatképet
Az Elasticsearch pillanatkép létrehozását egy adott pillanatkép-lerakat számára a pillanatkép-létrehozás API kezeli. Az API megköveteli a pillanatkép-lerakat nevét és a pillanatkép nevét.
JEGYZET: Egyetlen pillanatkép-lerakat több pillanatkép is készíthet ugyanazokból a fürtökből, ha egyedi azonosítóval / névvel rendelkeznek.
Fontolja meg a következő kérést, hogy hozzáadjon egy snapshot_2021 nevű pillanatképet a backup_repo lerakathoz.
PUT / _snapshot / backup_repo / snapshot_2021A cURL használatához használja a következő parancsot:
curl -XPUT “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021”A parancsnak vissza kell adnia az Elasticsearch válaszát 200 OK-val és el kell fogadnia: true
"elfogadott": igaz
Mivel nem határozza meg, hogy mely adatfolyamokat és indexeket kívánja biztonsági másolatra készíteni, a fenti kérés hívása az összes adatot és a fürt állapotát. Annak megadásához, hogy mely adatfolyamokat és indexeket kell biztonsági másolatra készíteni, adja hozzá ezeket a kérelem törzséhez.
Vegye figyelembe a következő kérést, amely biztonsági másolatot készít a .kibana index (egy rendszerindex), és meghatározza, hogy mely felhasználó engedélyezte a pillanatfelvételt és annak okát.
PUT / _snapshot / backup_repo / snapshot_2"indexek": ".kibana ",
"ignore_unavailable": igaz,
"include_global_state": igaz,
"metaadatok":
"taken_by": "elastadmin",
„Taken_because”: „Napi biztonsági mentés”
A cURL parancs erre:
curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2" -H 'Tartalomtípus: application / json' -d '"indexek": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metadata ": " taken_by ":" elastadmin "," taken_because ":" Daily Backup " 'Az ignore_unavailable logikai állapotot állít be, amely hibát ad vissza, ha a pillanatképben megadott adatfolyamok vagy indexek hiányoznak vagy bezáródnak.
Az include_global_state paraméter elmenti a fürt aktuális állapotát, ha igaz. A fürt egyes mentett információi a következők:
- Állandó fürtbeállítások
- Index sablonok
- Régi index sablonok
- Lenyelni a csővezetékeket
- ILM életciklus-házirendek
JEGYZET: Több indexet is megadhat vesszővel elválasztva.
A _snapshot végponttal használt gyakori argumentum a wait_for_completion, egy logikai érték, amely meghatározza, hogy a kérelemnek (igaz) vagy sem (hamis) azonnal vissza kell-e térnie a pillanatkép inicializálása után (alapértelmezett), vagy várni kell a pillanatkép befejezésére.
Például:
PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = true"indexek": ".kibana ",
"ignore_unavailable": igaz,
"include_global_state": hamis,
"metaadatok":
"taken_by": "elastadmin",
„Taken_because”: „Heti biztonsági mentés”
A cURL parancs:
curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / pillanatkép_3?wait_for_completion = true "-H 'Tartalomtípus: application / json' -d '" indexek ":".kibana "," ignore_unavailable ": true," include_global_state ": false," metadata ": " taken_by ":" elastadmin "," taken_because ":" Heti biztonsági mentés " 'Ha a wait_for_completion paramétert igazra állította, akkor az alábbihoz hasonló kimenetet ad:
"pillanatkép" :
"pillanatkép": "pillanatkép_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"verzió": "7.10.2 ",
"indexek": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": hamis,
"metaadatok":
"taken_by": "elastadmin",
„Taken_because”: „Heti biztonsági mentés”
,
"állapot": "SIKER",
"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,
"kudarcok": [],
"szilánkok":
"összesen": 1,
"sikertelen": 0,
"sikeres": 1
Pillanatképek megtekintése
A GET pillanatkép API kezeli a nézet pillanatképek funkcióit.
A kérelemben csak a pillanatkép-tárházat és a részleteket megtekinteni kívánt pillanatkép nevét kell megadnia.
A pillanatképnek válaszolnia kell a megadott pillanatkép részleteivel. Ezek a részletek a következők:
- Kezdési és befejezési időértékek
- Az Elasticsearch verziója, amely létrehozta a pillanatképet
- A mellékelt indexek listája
- A pillanatkép aktuális állapota
- A pillanatkép során előforduló hibák listája
Például a fent létrehozott pillanatkép_3 részleteinek megtekintéséhez használja az alább látható kérést:
GET / _snapshot / backup_repo / snapshot_3A cURL használatához használja az alábbi parancsot:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
curl -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”
A kérelemnek a pillanatkép részleteit tartalmazó választ kell küldenie:
"pillanatképek": [
"pillanatkép": "pillanatkép_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"verzió": "7.10.2 ",
"indexek": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": hamis,
"metaadatok":
"taken_by": "elastadmin",
„Taken_because”: „Heti biztonsági mentés”
,
"állapot": "SIKER",
"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,
"kudarcok": [],
"szilánkok":
"összesen": 1,
"sikertelen": 0,
"sikeres": 1
]
Testreszabhatja a kérelem törzsét is, hogy konkrét részleteket kapjon a pillanatképről. Ezt azonban egyelőre nem vizsgáljuk.
Tegyük fel, hogy meg akarja tekinteni az összes pillanatképet egy adott pillanatkép-lerakatban; ebben az esetben a kérelemben egy csillag helyettesítő karaktert adhat át:
GET / _snapshot / backup_repo / *A cURL parancs erre:
curl -XGET “http: // localhost: 9200 / _snapshot / backup_repo / *”A válasz a tároló összes pillanatképének részletes kiírása:
"pillanatképek": [
"pillanatkép": "pillanatkép_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"verzió": "7.10.2 ",
"indexek": [
"my_index",
"single_index_with_body",
"my_index_2",
"single_index",
".kibana_1 ",
"teszt"
],
"data_streams": [],
"include_global_state": igaz,
"állapot": "SIKER",
"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,
"kudarcok": [],
"szilánkok":
"összesen": 7,
"sikertelen": 0,
"sikeres": 7
,
"pillanatkép": "pillanatkép_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"verzió": "7.10.2 ",
"indexek": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": hamis,
"metaadatok":
"taken_by": "elastadmin",
"taken_because": "Napi biztonsági mentés"
,
"állapot": "SIKER",
"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,
"kudarcok": [],
"szilánkok":
"összesen": 1,
"sikertelen": 0,
"sikeres": 1
,
"pillanatkép": "pillanatkép_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"verzió": "7.10.2 ",
"indexek": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": hamis,
"metaadatok":
"taken_by": "elastadmin",
„Taken_because”: „Heti biztonsági mentés”
,
"állapot": "SIKER",
"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,
"kudarcok": [],
"szilánkok":
"összesen": 1,
"sikertelen": 0,
"sikeres": 1
]
A helyettesítő karakterek nagyon hasznosak a pillanatképekkel kapcsolatos konkrét információk szűréséhez.
Pillanatkép törlése
A pillanatkép törlése nagyon egyszerű: mindössze annyit kell tennie, hogy a DELETE kérést használja:
DELETE / _snapshot / backup_repo / snapshot_2021 /A cURL parancs:
curl -XDELETE “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021 /”A választ el kell ismerni: igaz
„Elismert”: igaz
Ha a pillanatkép nem létezik, kap egy 404-es állapotkódot és a pillanatkép hiányzó hibáját:
"hiba":
"kiváltó ok" : [
"type": "snapshot_missing_exception",
"ok": "Hiányzik a [backup_repo: snapshot_2021]"
],
"type": "snapshot_missing_exception",
"oka": "Hiányzik a [backup_repo: snapshot_2021]"
,
"állapot": 404
Következtetés
Ebben az útmutatóban megvitattuk, hogyan lehet az Elasticsearch pillanatképeket létrehozni a Snapshot API segítségével. A megtanultnak elegendőnek kell lennie ahhoz, hogy létrehozzon egy pillanatképtárat, megtekinthesse a pillanatképtárakat, létrehozhasson, megtekinthessen és törölhessen pillanatképeket. Bár vannak testreszabási lehetőségek az API-val, ennek az útmutatónak a tudásának elegendőnek kell lennie a kezdéshez.
Köszönöm, hogy elolvasta.