Aby pomóc w ochronie przed utratą danych, ElasticSearch ma różne funkcje, które umożliwiają zapewnienie dostępności danych, nawet w przypadkach awarii danych.
Niektóre ze sposobów, w jakie ElasticSearch wykorzystuje, aby zapewnić dostępność danych:
Ten samouczek pokazuje, jak tworzyć migawki klastra, co pomoże Ci być gotowym, jeśli wystąpi nieodwracalne zdarzenie dotyczące awarii danych.
Zacznijmy.
Co to jest migawka elasticsearch?
Jak wspomniano, elastyczna migawka to kopia zapasowa działającego klastra ElasticSearch. Ta migawka może mieć cały klaster lub określone wskaźniki i strumienie danych w określonym klastrze.
Jak wkrótce się nauczysz, 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 korzysta z API Snapshot do wykonywania tych zadań.
Niektóre zadania obsługiwane przez API migawki to:
Aby utworzyć repozytorium migawek, używamy punktu końcowego API _SNAPSHOT, a następnie nazwa, którą chcemy przypisać do repozytorium migawek. Rozważ poniższe żądanie, które tworzy repozytorium o nazwie Backup_repo
PUT /_SNAPSHOT /BACKUP_REPOOto polecenie Curl dla powyższego żądania:
curl -xput "http: // localhost: 9200/_snapshot/backup_repo" -h 'content -Type: Application/Json' -D '"type": „fs”, „settings”: „location”: "/" home/root/backups ”,„ compress ”: true 'Aby przejść ścieżkę repozytorium migawek, musisz najpierw dodać ścieżkę systemu lub katalog nadrzędny do ścieżki.Wpis repozytorium w ElasticSearch.yml
Ścieżka.Wpis Repo powinien wyglądać podobnie do:
ścieżka.Repo: [„/home/root/backups”]Można znaleźć plik konfiguracyjny ElasticSearch znajdujący się w/etc/elasticSearch/elasticSearch.yml
NOTATKA: Po dodaniu ścieżki.repozytor. Dodatkowo wartości obsługiwane dla ścieżki.repozytor.
Jak wyświetlić repozytorium migawek
Aby potwierdzić udane tworzenie repozytorium migawki, użyj żądania GET z punktem końcowym _Snapshot jako:
Get /_Snapshot /Backup_repoMoż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:
Jeśli masz więcej niż jeden repozytoria migawek i nie pamiętasz nazwy, możesz pominąć nazwę repozytor.
Pobierz/_snapshot lub curl curl -xget http: // localhost: 9200/_snapshot
Jak utworzyć migawkę ElasticSearch
Tworzenie migawki ElasticSearch dla określonego repozytorium migawek jest obsługiwane przez interfejs API Utwórz migawkę. API wymaga nazwy repozytorium migawek i nazwy migawki.
NOTATKA: Pojedyncze repozytorium migawek może mieć więcej niż jedną migawkę tych samych klastrów, o ile mają one unikalne tożsamości/nazwy.
Rozważ następujące żądanie, aby dodać migawkę o nazwie Snapshot_2021 do repozytorium Backup_Repo.
PUT/_SNAPSHOT/BACKUP_REPO/Snapshot_2021Aby 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 zaakceptowana: prawda
Ponieważ nie określa, które strumienie danych i wskaźniki chcesz wykonać kopię zapasową, wywołanie powyższych zapasów żądania wszystkie dane i stan klastra. Aby określić, które strumienie danych i wskaźniki do tworzenia kopii zapasowej, dodaj to do ciała żądania.
Rozważ następujące żądanie, które tworzy kopie zapasowe .indeks kibana (indeks systemowy) i określa, który użytkownik autoryzował migawkę i powód.
PUT/_SNAPSHOT/BACKUP_REPO/Snapshot_2Komenda Curl dla tego jest:
curl -xput "http: // localhost: 9200/_snapshot/backup_repo/snapshot_2" -h 'content -Type: Application/json' -d '"indicjami": ".kibana ",„ ignor_unavailable ”: true,„ include_global_state ”: true,„ metadata ”: „ wziął_by ”:„ elasticAdmin ”,„ wziął_because ”:„ Daily Backup ” 'Ignoramentowy ustawia stan logiczny, który zwraca błąd, jeśli brakuje żadnych strumieni danych lub indeksów określonych w migawce lub zamkniętej.
Parametr Ibled_Global_State zapisuje bieżący stan klastra, jeśli jest prawdziwy. Niektóre zapisane informacje o klastrze obejmują:
NOTATKA: Możesz określić więcej niż jedną indeksy oddzielone przecinkami.
Wspólnym argumentem używanym z punktem końcowym _snapshot jest Wait_For_Complecja, wartość logiczna określająca (prawda), czy nie (fałsz) żądanie powinno zwrócić natychmiast po inicjalizacji migawki (domyślnie) lub poczekaj na zakończenie migawki.
Na przykład:
PUT/_SNAPSHOT/BACKUP_REPO/Snapshot_3?Wait_For_Completet = truePolecenie Curl to:
curl -xput "http: // localhost: 9200/_snapshot/backup_repo/snapshot_3?Wait_for_Completet = true "-h 'Content -Type: Application/Json' -d '" indices ":".kibana ",„ ignor_unavailable ”: true,„ include_global_state ”: false,„ metadata ”: „ wzięty_bel ”:„ elasticadmin ”,„ wziął_because ”:„ cotygodniowe kopie zapasowe ” 'Gdy masz ustawiony parametr WAVE_FOR_COMPELETION na true, podasz wyjście podobne do tego pokazanego poniżej:
Jak wyświetlić migawki
API GET Snapshot obsługuje funkcjonalność migawek View.
Wszystko, co musisz przekazać w żądaniu, to repozytorium migawki i nazwa migawki, którą chcesz wyświetlić szczegóły.
Migawka powinna odpowiedzieć ze szczegółami na temat określonej migawki. Te szczegóły obejmują:
Na przykład, aby wyświetlić szczegóły dotyczące Snapshot_3 utworzonego powyżej, użyj żądania pokazanego poniżej:
GET/_SNAPSHOT/BACKUP_REPO/Snapshot_3Żądanie powinno zwrócić odpowiedź ze szczegółami migawki jako:
Możesz także dostosować ciało żądania, aby uzyskać szczegółowe informacje na temat migawki. Jednak na razie nie zajmiemy się tym.
Powiedzmy, że chcesz wyświetlić informacje o wszystkich migawkach w określonym repozytorium migawek; W takim przypadku możesz przekazać wieloznaczną kartę gwiazdkową na żądanie jako:
GET/_SNAPSHOT/BACKUP_REPO/*Komenda Curl dla tego jest:
curl -xget „http: // localhost: 9200/_snapshot/backup_repo/*”Odpowiedź jest szczegółowym zrzutem wszystkich migawek w tym repozytorium jako:
Wieloznaczne są bardzo przydatne do filtrowania konkretnych informacji o migawkach.
Jak usunąć migawkę
Usuwanie migawki jest bardzo proste: wystarczy użyć żądania usuwania jako:
Usuń/_snapshot/backup_repo/snapshot_2021/Polecenie Curl to:
curl -xDelete „http: // localhost: 9200/_snapshot/backup_repo/snapshot_2021/”Odpowiedź należy potwierdzić: prawda
Jeśli migawka nie istnieje, otrzymasz kod stanu 404 i brak błąd migawki jako:
Wniosek
W tym przewodniku omówiliśmy, jak tworzyć migawki ElasticSearch za pomocą API Snapshot. To, czego się nauczyłeś, powinno wystarczyć, aby umożliwić utworzenie repozytorium migawek, wyświetlanie repozytoriów migawek, tworzenie, wyświetlanie i usuwanie migawek. Chociaż są dostosowywania, które możesz zrobić z API, wiedza w tym przewodniku powinna wystarczyć, aby zacząć.
Dziękuję za przeczytanie.