Elastyczne wyszukiwanie

Tworzenie kopii zapasowych i przywracanie klastrów Elasticsearch za pomocą migawek

Tworzenie kopii zapasowych i przywracanie klastrów Elasticsearch za pomocą migawek
Elasticsearch to przede wszystkim dane, a jak zapewne już wiesz, dane są ważne – dla Ciebie i Elasticsearch. Jednak zarówno Ty, jak i Elasticsearch kochacie dane, mogą wystąpić awarie danych, prowadzące do utraty danych.

Aby pomóc zabezpieczyć się przed utratą danych, Elasticsearch oferuje różne funkcje, które pozwalają zapewnić dostępność danych, nawet w przypadku awarii danych.

Niektóre ze sposobów, jakie Elasticsearch wykorzystuje w celu zapewnienia dostępności danych, obejmują:

Ten samouczek pokazuje, jak tworzyć migawki klastra, które pomogą Ci być gotowym na wypadek nieodwracalnej awarii danych.

Zacznijmy.

Co to jest migawka Elasticsearch?

Jak wspomniano, elastyczna migawka to kopia zapasowa działającego klastra Elasticsearch. Ta migawka może obejmować cały klaster lub określone indeksy i strumienie danych w ramach konkretnego klastra.

Jak wkrótce się dowiesz, wtyczka repozytorium zarządza migawkami Elasticsearch. Te migawki można przechowywać w różnych lokalizacjach pamięci zdefiniowanych przez wtyczkę. Należą do nich systemy lokalne i systemy zdalne, takie jak GCP Storage, Amazon EC2, Microsoft Azure i wiele innych.

Jak utworzyć repozytorium migawek Elasticsearch?

Zanim zagłębimy się w tworzenie migawek Elasticsearch, musimy utworzyć repozytorium migawek, ponieważ wiele usług Elasticsearch wykorzystuje Snapshot API do wykonywania tych zadań.

Niektóre z zadań obsługiwanych przez Snapshot API to:

Aby utworzyć repozytorium migawek, używamy punktu końcowego API _snapshot, po którym następuje nazwa, którą chcemy przypisać do repozytorium migawek. Rozważ poniższe żądanie, które tworzy repozytorium o nazwie backup_repo

PUT /_snapshot/backup_repo

"typ": "fs",
"ustawienia":
"lokalizacja": "/home/root/kopie zapasowe",
"kompresja": prawda

Oto polecenie cURL dla powyższego żądania:

curl -XPUT "http://localhost:9200/_snapshot/backup_repo" -H 'Content-Type: application/json' -d'  "type": "fs",  "settings":     "location": "/ strona główna/główna/kopie zapasowe”,    "kompresuj": prawda  '

Aby przekazać ścieżkę repozytorium migawek, musisz najpierw dodać do ścieżki ścieżkę systemową lub katalog nadrzędny.wpis repo w elasticsearch.Yml

Ścieżka.wpis repo powinien wyglądać podobnie do:

ścieżka.repozytorium: [„/home/root/kopie zapasowe”]

Plik konfiguracyjny Elasticsearch można znaleźć w /etc/elasticsearch/elasticsearch.Yml

UWAGA: Po dodaniu ścieżki.repozytorium, może być konieczne ponowne uruchomienie klastrów Elasticsearch. Dodatkowo obsługiwane wartości dla path.repozytorium może się bardzo różnić w zależności od platformy, na której działa Elasticsearch.

Jak wyświetlić repozytorium migawek

Aby potwierdzić pomyślne utworzenie repozytorium migawek, użyj żądania GET z punktem końcowym _snapshot jako:

POBIERZ /_snapshot/backup_repo

Możesz także użyć następującego polecenia cURL:

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

Powinno to wyświetlić informacje o repozytorium kopii zapasowych, na przykład:


"repo_zapasowe" :
"typ" : "fs",
"ustawienia" :
"skompresuj" : "prawda",
"lokalizacja" : """/dom/główny/kopie zapasowe"""


Jeśli masz więcej niż jedno repozytoria migawek i nie pamiętasz nazwy, możesz pominąć nazwę repozytorium i wywołać punkt końcowy _snapshot, aby wyświetlić listę wszystkich istniejących repozytoriów.

GET /_snapshot lub cURL curl -XGET http://localhost:9200/_snapshot

Jak stworzyć migawkę Elasticsearch?

Tworzenie migawki Elasticsearch dla konkretnego repozytorium migawek jest obsługiwane przez API tworzenia migawek. API wymaga nazwy repozytorium zrzutów i nazwy zrzutu.

UWAGA: Pojedyncze repozytorium migawek może zawierać więcej niż jedną migawkę tych samych klastrów, o ile mają one unikalne tożsamości/nazwy.

Rozważ następujące żądanie dodania migawki o nazwie snapshot_2021 do repozytorium backup_repo.

PUT /_migawka/repo_zapasowe/migawka_2021

Aby użyć cURL, użyj polecenia:

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

Polecenie powinno zwrócić odpowiedź z Elasticsearch z 200 OK i zaakceptowane: prawda


"zaakceptowany" : prawda

Ponieważ nie określa, które strumienie danych i indeksy mają zostać zarchiwizowane, wywołanie powyższego żądania tworzy kopię zapasową wszystkich danych i stanu klastra. Aby określić, które strumienie danych i indeksy mają zostać uwzględnione w kopii zapasowej, dodaj to do treści żądania.

Rozważ następujące żądanie, które tworzy kopię zapasową .indeks kibana (indeks systemowy) i określa, który użytkownik autoryzował migawkę i powód.

PUT /_snapshot/backup_repo/snapshot_2

"indeksy": ".Kibana”,
"ignore_unavailable": prawda,
"include_global_state": prawda,
"metadane":
"taken_by": "elasticadmin",
„Taken_because”: „Codzienna kopia zapasowa”

Polecenie cURL to:

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

Ignorowanie_niedostępne ustawia stan logiczny, który zwraca błąd, jeśli jakiekolwiek strumienie danych lub indeksy określone w migawce są niedostępne lub zamknięte.

Parametr include_global_state zapisuje bieżący stan klastra, jeśli prawda. Niektóre z zapisanych informacji o klastrze obejmują:

UWAGA: Możesz podać więcej niż jeden indeks oddzielony przecinkami.

Typowym argumentem używanym z punktem końcowym _snapshot jest wait_for_completion, wartość logiczna określająca, czy (prawda) czy nie (fałsz) żądanie powinno powrócić natychmiast po zainicjowaniu migawki (domyślnie) lub czekać na zakończenie migawki.

Na przykład:

PUT /_snapshot/backup_repo/snapshot_3?wait_for_completion=true

"indeksy": ".Kibana”,
"ignore_unavailable": prawda,
"include_global_state": fałsz,
"metadane":
"taken_by": "elasticadmin",
„Taken_because”: „Tygodniowa kopia zapasowa”

Polecenie cURL to:

curl -XPUT "http://localhost:9200/_snapshot/backup_repo/snapshot_3?wait_for_completion=true" -H 'Content-Type: application/json' -d'  "indices": ".kibana",  "ignore_unavailable": true,  "include_global_state": false,  "metadata":     "taken_by": "elasticadmin",    "taken_because": "Tygodniowa kopia zapasowa"  '

Gdy ustawisz parametr wait_for_completion na true, otrzymasz wynik podobny do pokazanego poniżej:


"migawka" :
"migawka" : "migawka_3",
"uuid" : "tQUHyofIRnGMMtw0AGBACQ",
„identyfikator wersji” : 7100299,
„wersja” : „7.10.2",
"indeksy" : [
".kibana_1"
],
"strumienie_danych" : [ ],
"include_global_state" : fałsz,
"metadane" :
"taken_by" : "elasticadmin",
„Taken_because”: „Tygodniowa kopia zapasowa”
,
"stan" : "SUKCES",
"czas_rozpoczęcia" : "2021-01-19T13:36:59.615Z",
„czas_rozpoczęcia_w_millis” : 1611063419615,
"czas_zakończenia" : "2021-01-19T13:37:00.433Z",
„czas_zakończenia_w_millis” : 1611063420433,
„czas_w_mili” : 818,
"awarie" : [ ],
"odłamki" :
„ogółem” : 1,
"nie powiodło się" : 0,
„udany” : 1


Jak przeglądać migawki

API migawek GET obsługuje funkcjonalność migawek widoków.

Wszystko, co musisz przekazać w żądaniu, to repozytorium migawek i nazwę migawki, której szczegóły chcesz wyświetlić.

Zrzut powinien odpowiadać szczegółowymi informacjami o określonym zrzucie. Te szczegóły obejmują:

Na przykład, aby wyświetlić szczegóły dotyczące utworzonej powyżej migawki_3, użyj poniższego żądania:

POBIERZ /_snapshot/backup_repo/snapshot_3
Aby użyć cURL, użyj poniższego polecenia:
[cc lang="tekst" width="100%" height="100%" escaped="true" theme="tablica" nowrap="0"]
curl -XGET „http://localhost:9200/_snapshot/backup_repo/snapshot_3”

Żądanie powinno zwrócić odpowiedź ze szczegółami migawki jako:


"migawki" : [

"migawka" : "migawka_3",
"uuid" : "tQUHyofIRnGMMtw0AGBACQ",
"identyfikator wersji" : 7100299,
„wersja” : „7.10.2",
"indeksy" : [
".kibana_1"
],
"strumienie_danych" : [ ],
"include_global_state" : fałsz,
"metadane" :
"taken_by" : "elasticadmin",
„Taken_because”: „Tygodniowa kopia zapasowa”
,
"stan" : "SUKCES",
"czas_rozpoczęcia" : "2021-01-19T13:36:59.615Z",
„czas_rozpoczęcia_w_millis” : 1611063419615,
"czas_zakończenia" : "2021-01-19T13:37:00.433Z",
„czas_zakończenia_w_millis” : 1611063420433,
„czas_w_mili” : 818,
"awarie" : [ ],
"odłamki" :
„ogółem” : 1,
"nie powiodło się" : 0,
„udany” : 1


]

Możesz także dostosować treść żądania, aby uzyskać szczegółowe informacje na temat zrzutu. Jednak na razie nie będziemy się tym zajmować.

Powiedzmy, że chcesz wyświetlić informacje o wszystkich migawkach w określonym repozytorium migawek; w takim przypadku możesz przekazać w żądaniu symbol wieloznaczny z gwiazdką jako:

POBIERZ /_snapshot/backup_repo/*

Polecenie cURL to:

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

Odpowiedzią jest szczegółowy zrzut wszystkich migawek w tym repozytorium jako:


"migawki" : [

"migawka" : "migawka_2021",
"uuid" : "7CFigHzvRtyZW07c60d2iw",
"identyfikator wersji" : 7100299,
„wersja” : „7.10.2",
"indeksy" : [
„mój_indeks”,
"pojedynczy_indeks_z_body",
„mój_indeks_2”,
"pojedynczy_indeks",
".kibana_1",
"test"
],
"strumienie_danych" : [ ],
"include_global_state" : prawda,
"stan" : "SUKCES",
"czas_rozpoczęcia" : "2021-01-19T13:28:48.172Z",
„czas_rozpoczęcia_w_millis” : 1611062928172,
"czas_zakończenia" : "2021-01-19T13:28:50.831Z",
„czas_zakończenia_w_millis” : 1611062930831,
„czas trwania_w_millis” : 2659,
"awarie" : [ ],
"odłamki" :
„ogółem” : 7,
"nie powiodło się" : 0,
„udany” : 7

,

"migawka" : "migawka_2",
"uuid" : "w58IrYmORAub8VC7cg04Wg",
„identyfikator wersji” : 7100299,
„wersja” : „7.10.2",
"indeksy" : [
".kibana_1"
],
"strumienie_danych" : [ ],
"include_global_state" : fałsz,
"metadane" :
"taken_by" : "elasticadmin",
"taken_because" : "Codzienna kopia zapasowa"
,
"stan" : "SUKCES",
"czas_rozpoczęcia" : "2021-01-19T13:33:34.482Z",
„czas_rozpoczęcia_w_millis” : 1611063214482,
"czas_zakończenia" : "2021-01-19T13:33:35.921Z",
„czas_zakończenia_w_millis” : 1611063215921,
„czas trwania_w_millis” : 1439,
"awarie" : [ ],
"odłamki" :
„ogółem” : 1,
"nie powiodło się" : 0,
„udany” : 1

,

"migawka" : "migawka_3",
"uuid" : "tQUHyofIRnGMMtw0AGBACQ",
"identyfikator wersji" : 7100299,
„wersja” : „7.10.2",
"indeksy" : [
".kibana_1"
],
"strumienie_danych" : [ ],
"include_global_state" : fałsz,
"metadane" :
"taken_by" : "elasticadmin",
„Taken_because”: „Tygodniowa kopia zapasowa”
,
"stan" : "SUKCES",
"czas_rozpoczęcia" : "2021-01-19T13:36:59.615Z",
„czas_rozpoczęcia_w_millis” : 1611063419615,
"czas_zakończenia" : "2021-01-19T13:37:00.433Z",
„czas_zakończenia_w_millis” : 1611063420433,
„czas_w_mili” : 818,
"awarie" : [ ],
"odłamki" :
„ogółem” : 1,
"nie powiodło się" : 0,
„udany” : 1


]

Symbole wieloznaczne są bardzo przydatne do filtrowania określonych informacji o zrzutach.

Jak usunąć migawkę

Usunięcie migawki jest bardzo proste: wystarczy użyć żądania DELETE jako:

USUŃ /_migawka/repo_zapasowe/migawka_2021/

Polecenie cURL to:

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

Odpowiedź powinna być potwierdzona:prawda


„potwierdzony”: prawda

Jeśli migawka nie istnieje, otrzymasz kod stanu 404 i błąd braku migawki jako:


"błąd" :
"pierwotna przyczyna" : [

"typ" : "migawka_brakującego_wyjątku",
"powód" : "Brakuje [repo_zapasowe:migawka_2021]"

],
"typ" : "migawka_brakującego_wyjątku",
"powód" : "Brakuje [repo_zapasowe:migawka_2021]"
,
"stan" : 404

Wniosek

W tym przewodniku omówiliśmy tworzenie migawek Elasticsearch za pomocą Snapshot API. To, czego się nauczyłeś, powinno wystarczyć do utworzenia repozytorium migawek, przeglądania repozytoriów migawek, tworzenia, przeglądania i usuwania migawek. Chociaż istnieją dostosowania, których możesz dokonać za pomocą interfejsu API, wiedza zawarta w tym przewodniku powinna wystarczyć, aby rozpocząć.

Dziękuję za przeczytanie.

How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...