Elastisk søk

Sikkerhetskopier og gjenopprett elastiske søkeklynger med øyeblikksbilder

Sikkerhetskopier og gjenopprett elastiske søkeklynger med øyeblikksbilder
Elasticsearch handler om data, og som du sikkert allerede vet, er data viktig for deg og Elasticsearch. Imidlertid, i så mye som både deg og Elasticsearch elsker data, kan datafeil oppstå, noe som fører til tap av data.

For å beskytte mot tap av data har Elasticsearch forskjellige funksjoner som lar deg sikre datatilgjengelighet, selv i datafeilstilfeller.

Noen av måtene som Elasticsearch bruker for å gi deg datatilgjengelighet, inkluderer:

Denne opplæringen viser deg hvordan du lager klyngemomenter, som vil hjelpe deg å være klar hvis en irreversibel datafeilhendelse skulle oppstå.

La oss komme i gang.

Hva er et øyeblikksbilde av elastisk søk?

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 pluginet. Disse inkluderer lokale systemer og eksterne systemer som GCP Storage, Amazon EC2, Microsoft Azure og mange flere.

Hvordan lage et Elasticsearch Snapshot Repository

Før vi dykker ned i å lage Elasticsearch-øyeblikksbilder, må vi opprette et øyeblikksbilde-arkiv fordi mange av Elasticsearch-tjenestene bruker Snapshot API for å utføre disse oppgavene.

Noen av oppgavene som håndteres av Snapshot API er:

For å opprette et øyeblikksbilde-arkiv bruker vi _snapshot API-endepunktet etterfulgt av navnet vi vil tilordne øyeblikksbildelageret. Vurder forespørselen nedenfor som oppretter et lager kalt backup_repo

PUT / _snapshot / backup_repo

"type": "fs",
"innstillinger":
"location": "/ home / root / backups",
"komprimere": sant

Her er en CURL-kommando for forespørselen ovenfor:

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

For å passere øyeblikksbilde-arkivbanen må du først legge til systemets bane eller overordnede katalog i banen.repo oppføring i elasticsearch.yml

Banen.repooppføring skal se ut som:

sti.repo: [“/ home / root / backups]]

Du finner konfigurasjonsfilen til Elasticsearch i / etc / elasticsearch / elasticsearch.yml

MERK: Etter å ha lagt til stien.repo, må du kanskje starte Elasticsearch-klynger på nytt. I tillegg støttes verdiene for banen.repo kan variere vilt avhengig av plattformen som kjører Elasticsearch.

Hvordan vise Snapshot Repository

For å bekrefte vellykket opprettelse av øyeblikksbildelageret, bruk GET-forespørselen med _snapshot-sluttpunktet som:

GET / _snapshot / backup_repo

Du kan også bruke følgende cURL-kommando:

krøll -XGET "http: // localhost: 9200 / _snapshot / backup_repo"

Dette skal vise informasjon om reservelageret, for eksempel:


"backup_repo":
"type": "fs",
"innstillinger":
"komprimere": "sant",
"location": "" "/ home / root / backups" ""


Hvis du har mer enn ett øyeblikksbilde-arkiv og ikke husker navnet, kan du utelate reponavnet og ringe til _snapshot-sluttpunktet for å liste alle eksisterende lagringssteder.

GET / _snapshot eller curl curl -XGET http: // localhost: 9200 / _snapshot

Hvordan lage et øyeblikksbilde av elastisk søk

Opprette et Elasticsearch-øyeblikksbilde for et bestemt øyeblikksbilde-arkiv håndteres av API-et for øyeblikksbilde. API-et krever øyeblikksbilde-depotnavnet og navnet på øyeblikksbildet.

MERK: Et enkelt øyeblikksbilde arkiv kan ha mer enn ett øyeblikksbilde av de samme klyngene så lenge de har unike identiteter / navn.

Vurder følgende forespørsel om å legge til et øyeblikksbilde kalt snapshot_2021 i backup_repo-depotet.

PUT / _snapshot / backup_repo / snapshot_2021

For å bruke cURL, bruk kommandoen:

krøll -XPUT “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021”

Kommandoen skal returnere et svar fra Elasticsearch med 200 OK og akseptert: true


"akseptert": sant

Siden den ikke spesifiserer hvilke datastrømmer og indekser du vil ha sikkerhetskopiert, ringer ovennevnte forespørsel sikkerhetskopier alle dataene og klyngetilstanden. For å spesifisere hvilke datastrømmer og indekser som skal sikkerhetskopieres, legg til det i forespørselen.

Vurder følgende forespørsel om sikkerhetskopiering av .kibana-indeks (en systemindeks) og spesifiserer hvilken bruker som autoriserte øyeblikksbildet og årsaken.

PUT / _snapshot / backup_repo / snapshot_2

"indices": ".kibana ",
"ignore_unavailable": sant,
"include_global_state": sant,
"metadata":
"taken_by": "elastisk admin",
“Taken_because”: “Daily Backup”

CURL-kommandoen for det er:

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 ":" Daily Backup " '

Ignorer_tilgjengelig angir en boolsk tilstand som returnerer en feil hvis noen datastrømmer eller indekser spesifisert i øyeblikksbildet mangler eller lukkes.

Parameteren include_global_state lagrer klyngens nåværende tilstand hvis den er sann. Noe av klyngene som er lagret inkluderer:

MERK: Du kan spesifisere mer enn én indeks atskilt med komma.

Et vanlig argument brukt med _snapshot-endepunktet er wait_for_completion, en boolsk verdi som definerer om (true) eller ikke (false) forespørselen skal returneres umiddelbart etter øyeblikksbildeinitialisering (standard) eller vente på å fullføre et øyeblikksbilde.

For eksempel:

PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = sant

"indices": ".kibana ",
"ignore_unavailable": sant,
"include_global_state": false,
"metadata":
"taken_by": "elastisk admin",
“Taken_because”: “Weekly Backup”

CURL-kommandoen er:

krøll -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 ":" Weekly Backup " '

Når du har satt parameteren wait_for_completion til true, gir du en utgang som ligner på den som er vist nedenfor:


"øyeblikksbilde":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"versjon_id": 7100299,
"versjon": "7.10.2 ",
"indekser": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elastisk admin",
“Taken_because”: “Weekly Backup”
,
"state": "SUCCESS",
"starttid": "2021-01-19T13: 36: 59.615Z ",
"start_time_in_millis": 1611063419615,
"sluttid": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"varighet_in_millis": 818,
"feil": [],
"skjær":
"totalt": 1,
"mislyktes": 0,
"vellykket": 1


Hvordan vise stillbilder

GET snapshot API håndterer funksjonen for visning av øyeblikksbilder.

Alt du trenger å sende inn forespørselen er øyeblikksbildelageret og navnet på øyeblikksbildet du vil se detaljene.

Øyeblikksbildet skal svare med detaljer om et spesifisert øyeblikksbilde. Disse detaljene inkluderer:

For eksempel, for å se detaljene om snapshot_3 opprettet ovenfor, bruk forespørselen vist nedenfor:

GET / _snapshot / backup_repo / snapshot_3
For å bruke cURL, bruk kommandoen nedenfor:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
krøll -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”

Forespørselen skal returnere et svar med detaljene i øyeblikksbildet som:


"øyeblikksbilder": [

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"versjon_id": 7100299,
"versjon": "7.10.2 ",
"indekser": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elastisk admin",
“Taken_because”: “Weekly Backup”
,
"state": "SUCCESS",
"starttid": "2021-01-19T13: 36: 59.615Z ",
"start_time_in_millis": 1611063419615,
"sluttid": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"varighet_in_millis": 818,
"feil": [],
"skjær":
"totalt": 1,
"mislyktes": 0,
"vellykket": 1


]

Du kan også tilpasse forespørselen for å få spesifikke detaljer om et øyeblikksbilde. Imidlertid vil vi ikke se på det foreløpig.

La oss si at du vil se informasjon om alle øyeblikksbilder i et bestemt øyeblikksbilde-arkiv; I så fall kan du sende et jokertegn i stjernen i forespørselen som:

GET / _snapshot / backup_repo / *

CURL-kommandoen for det er:

krøll -XGET “http: // localhost: 9200 / _snapshot / backup_repo / *”

Svaret er en detaljert dump av alle øyeblikksbildene i datalageret som:


"øyeblikksbilder": [

"snapshot": "snapshot_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"versjon_id": 7100299,
"versjon": "7.10.2 ",
"indekser": [
"min_indeks",
"single_index_with_body",
"min_index_2",
"single_index",
".kibana_1 ",
"test"
],
"data_streams": [],
"include_global_state": sant,
"state": "SUCCESS",
"starttid": "2021-01-19T13: 28: 48.172Z ",
"start_time_in_millis": 1611062928172,
"sluttid": "2021-01-19T13: 28: 50.831Z ",
"end_time_in_millis": 1611062930831,
"varighet_in_millis": 2659,
"feil": [],
"skjær":
"totalt": 7,
"mislyktes": 0,
"vellykket": 7

,

"snapshot": "snapshot_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"versjon_id": 7100299,
"versjon": "7.10.2 ",
"indekser": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elastisk admin",
"taken_because": "Daglig sikkerhetskopiering"
,
"state": "SUCCESS",
"starttid": "2021-01-19T13: 33: 34.482Z ",
"start_time_in_millis": 1611063214482,
"sluttid": "2021-01-19T13: 33: 35.921Z ",
"end_time_in_millis": 1611063215921,
"varighet_in_millis": 1439,
"feil": [],
"skjær":
"totalt": 1,
"mislyktes": 0,
"vellykket": 1

,

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"versjon_id": 7100299,
"versjon": "7.10.2 ",
"indekser": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elastisk admin",
“Taken_because”: “Weekly Backup”
,
"state": "SUCCESS",
"starttid": "2021-01-19T13: 36: 59.615Z ",
"start_time_in_millis": 1611063419615,
"sluttid": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"varighet_in_millis": 818,
"feil": [],
"skjær":
"totalt": 1,
"mislyktes": 0,
"vellykket": 1


]

Jokertegn er veldig nyttige for å filtrere spesifikk informasjon om øyeblikksbildene.

Slik sletter du et øyeblikksbilde

Det er veldig enkelt å slette et øyeblikksbilde: alt du trenger å gjøre er å bruke DELETE-forespørselen som:

SLETT / _snapshot / backup_repo / snapshot_2021 /

CURL-kommandoen er:

krøll -XDELETE “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021 /”

Svaret skal erkjennes: sant


“Erkjent”: sant

Hvis øyeblikksbildet ikke eksisterer, vil du få en statuskode 404 og manglende øyeblikksbilde som:


"feil":
"Opprinnelig årsak" : [

"type": "snapshot_missing_exception",
"reason": "[backup_repo: snapshot_2021] mangler"

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

Konklusjon

I denne guiden har vi diskutert hvordan du oppretter Elasticsearch-øyeblikksbilder ved hjelp av Snapshot API. Det du har lært, burde være nok til at du kan opprette et øyeblikksbilde-arkiv, se øyeblikksbilde-arkivene, opprette, vise og slette øyeblikksbilder. Selv om det er tilpasninger du kan gjøre med API, bør kunnskapen i denne veiledningen være nok til å komme i gang.

Takk for at du leser.

Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...
OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...