For å bidra til å beskytte mot tap av data, har Elasticsearch forskjellige funksjoner som lar deg sikre datatilgjengelighet, selv i datasviktforekomster.
Noen av måtene Elasticsearch bruker for å gi deg datatilgjengelighet inkluderer:
Denne opplæringen viser deg hvordan du oppretter klyngebilder, noe som vil hjelpe deg å være klar hvis en irreversibel datafeilhendelse oppstår.
La oss komme i gang.
Hva er et elasticsearch -øyeblikksbilde?
Som nevnt er et elastisk øyeblikksbilde en sikkerhetskopi av en løpende Elasticsearch -klynge. Dette øyeblikksbildet kan være av en hel klynge eller spesifikke indekser og datastrømmer i en bestemt klynge.
Som du snart vil lære, administrerer et depot -plugin Elasticsearch -øyeblikksbilder. Disse øyeblikksbildene kan lagres på forskjellige lagringssteder definert av plugin. Disse inkluderer lokale systemer og eksterne systemer som GCP -lagring, Amazon EC2, Microsoft Azure og mange flere.
Hvordan lage et Elasticsearch Snapshot -depot
Før vi dykker ned i å lage elasticsearch -øyeblikksbilder, må vi lage et øyeblikksbilde depot fordi mange av Elasticsearchs tjenester bruker Snapshot API for å utføre disse oppgavene.
Noen av oppgavene som er håndtert av Snapshot API er:
For å lage et øyeblikksbilde depot, bruker vi _snapshot API -endepunktet etterfulgt av navnet vi ønsker å tilordne til Snapshot -depotet. Vurder forespørselen nedenfor som oppretter et depot som heter Backup_Repo
Put /_snapshot /backup_repoHer er en Curl -kommando for ovennevnte forespørsel:
Curl -xput "http: // localhost: 9200/_snapshot/backup_repo" -h 'innholdstype: applikasjon/json' -d '"type": "fs", "innstillinger": "location": "///////// Hjem/rot/sikkerhetskopier "," komprimering ": true 'For å passere øyeblikksbilde -depotbanen, må du først legge til systemets bane eller overordnede katalog til banen.repo oppføring i Elasticsearch.yml
Banen.Repo -oppføring skal se ut som:
sti.Repo: [“/Home/Root/Backups”]Du kan finne Elasticsearch -konfigurasjonsfilen som ligger i/etc/Elasticsearch/Elasticsearch.yml
MERK: Etter å ha lagt til stien.repo, det kan hende du må starte Elasticsearch -klynger på nytt. I tillegg støttes verdiene for sti.Repo kan variere vilt avhengig av plattformen som kjører Elasticsearch.
Hvordan du ser på øyeblikksbildet depot
For å bekrefte den vellykkede opprettelsen av Snapshot -depotet, bruk Get -forespørselen med _snapshot -endepunktet som:
Få /_snapshot /backup_repoDu kan også bruke følgende Curl -kommando:
Curl -xget "http: // localhost: 9200/_snapshot/backup_repo"Dette skal vise informasjon om backup -depotet, for eksempel:
Hvis du har mer enn ett øyeblikksbilde -depoter og ikke husker navnet, kan du utelate repo -navnet og ringe _snapshot -endepunktet for å liste opp alle eksisterende depoter.
Get/_Snapshot eller Curl Curl -Xget http: // localhost: 9200/_Snapshot
Hvordan lage et elasticsearch -øyeblikksbilde
Opprette et elasticsearch -øyeblikksbilde for et spesifikt øyeblikksbilde depot håndteres av Create Snapshot API. APIen krever Snapshot -depotnavnet og navnet på øyeblikksbildet.
MERK: Et enkelt øyeblikksbilde depot kan ha mer enn ett øyeblikksbilde av de samme klyngene så lenge de har unike identiteter/navn.
Tenk på følgende forespørsel om å legge til et øyeblikksbilde kalt Snapshot_2021 til Backup_Repo -depotet.
Put/_snapshot/backup_repo/snapshot_2021For å bruke krøll, bruk kommandoen:
Curl -xput “http: // localhost: 9200/_snapshot/backup_repo/snapshot_2021”Kommandoen skal returnere et svar fra Elasticsearch med 200 OK og akseptert: True
Siden den ikke spesifiserer hvilke datastrømmer og indekser du vil ha sikkerhetskopiert, og kaller forespørselen ovenfor sikkerhetskopierer alle dataene og klyngestaten. For å spesifisere hvilke datastrømmer og indekser som skal sikkerhetskopieres, kan du legge det til forespørselsorganet.
Tenk på følgende forespørsel som sikkerhetskopierer .Kibana Index (en systemindeks) og spesifiserer hvilken bruker som autoriserte øyeblikksbildet og årsaken.
Put/_snapshot/backup_repo/snapshot_2Curl -kommandoen for det er:
Curl -xput "http: // localhost: 9200/_snapshot/backup_repo/snapshot_2" -h 'innholdstype: applikasjon/json' -d '"indekser": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metadata ": " tagn_by ":" elasticadmin "," tet_because ":" Daily backup " 'Ignore_unavailable setter en boolsk tilstand som returnerer en feil hvis noen datastrømmer eller indekser som er spesifisert i øyeblikksbildet mangler eller lukkes.
Parameteren Include_Global_State lagrer klyngens nåværende tilstand hvis True. Noen av klyngeinformasjonen som er lagret inkluderer:
MERK: Du kan spesifisere mer enn ett indekser atskilt med komma.
Et vanlig argument brukt med _snapshot -endepunktet er wait_for_completion, en boolsk verdi som definerer om (sant) eller ikke (falsk) forespørselen skal returnere umiddelbart etter øyeblikksbilde initialisering (standard) eller vente på et øyeblikksbilde fullføring.
For eksempel:
Put/_snapshot/backup_repo/snapshot_3?WAIT_FOR_COMPLETION = TrueCurl -kommandoen er:
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 ": falsk," metadata ": " take_by ":" elasticadmin "," tagn_because ":" Weekly backup " 'Når du har parameteren Wait_for_Completion satt til True, vil du gi en utgang som ligner den som er vist nedenfor:
Hvordan se øyeblikksbilder
Get Snapshot API håndterer visningssnapshots -funksjonaliteten.
Alt du trenger å sende i forespørselen er Snapshot Repository og navnet på øyeblikksbildet du vil se detaljene.
Stillbildet skal svare med detaljer om et spesifisert øyeblikksbilde. Disse detaljene inkluderer:
For å se detaljene om Snapshot_3 som er opprettet ovenfor, bruker du for eksempel forespørselen nedenfor:
Få/_snapshot/backup_repo/snapshot_3Forespørselen skal returnere et svar med detaljene i øyeblikksbildet som:
Du kan også tilpasse forespørselsorganet for å få spesifikke detaljer om et øyeblikksbilde. Vi vil imidlertid ikke se nærmere på det for nå.
La oss si at du vil se informasjon om alle øyeblikksbilder i et spesifikt øyeblikksbilde depot; I så fall kan du passere et stjerne -jokertegn i forespørselen som:
Få/_snapshot/backup_repo/*Curl -kommandoen for det er:
Curl -xget “http: // localhost: 9200/_snapshot/backup_repo/*”Responsen er en detaljert dump av alle øyeblikksbilder i det depotet som:
Jokertegn er veldig nyttige for å filtrere spesifikk informasjon om øyeblikksbildene.
Hvordan slette et øyeblikksbilde
Å slette et øyeblikksbilde er veldig enkelt: alt du trenger å gjøre er å bruke slettforespørselen som:
Slette/_snapshot/backup_repo/snapshot_2021/Curl -kommandoen er:
Curl -xDelete “http: // localhost: 9200/_snapshot/backup_repo/snapshot_2021/”Responsen skal anerkjennes: sant
Hvis øyeblikksbildet ikke eksisterer, vil du få en statuskode på 404 og øyeblikksbilde manglende feil som:
Konklusjon
I denne guiden har vi diskutert hvordan du oppretter elasticsearch -øyeblikksbilder ved hjelp av øyeblikksbilde API. Det du har lært, skal være nok til at du kan lage et øyeblikksbilde depot, se på øyeblikksbildet depoter, opprette, se og slette øyeblikksbilder. Selv om det er tilpasninger du kan gjøre med API, bør kunnskapen i denne guiden være nok til å komme i gang.
Takk for at du leser.