Elastisk søgning

Sikkerhedskopier og gendan klynger med elastiksøgning med snapshots

Sikkerhedskopier og gendan klynger med elastiksøgning med snapshots
Elasticsearch handler om data, og som du sikkert allerede ved, er data vigtige for dig og Elasticsearch. Imidlertid, i så meget som både dig og Elasticsearch elsker data, kan datafejl opstå, hvilket fører til datatab.

For at hjælpe med at beskytte mod datatab har Elasticsearch forskellige funktioner, der giver dig mulighed for at sikre datatilgængelighed, selv i tilfælde af datafejl.

Nogle af de måder, som Elasticsearch bruger for at give dig datatilgængelighed, inkluderer:

Denne vejledning viser dig, hvordan du opretter klyngesnapshots, som hjælper dig med at være klar, hvis der skulle opstå en irreversibel datafejlshændelse.

Lad os komme igang.

Hvad er et øjebliksbillede af elastisk søgning?

Som nævnt er et elastisk øjebliksbillede en sikkerhedskopi af en kørende Elasticsearch-klynge. Dette øjebliksbillede kan være af en hel klynge eller specifikke indekser og datastrømme inden for en bestemt klynge.

Som du snart vil lære, styrer et repository-plugin Elasticsearch-snapshots. Disse snapshots kan gemmes på forskellige lagringssteder defineret af pluginet. Disse inkluderer lokale systemer og eksterne systemer som GCP Storage, Amazon EC2, Microsoft Azure og mange flere.

Sådan oprettes et Elasticsearch Snapshot Repository

Før vi dykker ned i oprettelsen af ​​Elasticsearch-snapshots, er vi nødt til at oprette et snapshot-arkiv, fordi mange af Elasticsearch's tjenester bruger Snapshot API til at udføre disse opgaver.

Nogle af de opgaver, der håndteres af Snapshot API er:

For at oprette et snapshot-arkiv bruger vi _snapshot API-slutpunktet efterfulgt af det navn, vi vil tildele snapshot-arkivet. Overvej nedenstående anmodning, der opretter et lager, der hedder backup_repo

PUT / _snapshot / backup_repo

"type": "fs",
"indstillinger":
"location": "/ home / root / backups",
"komprimere": sandt

Her er en cURL-kommando til ovenstående anmodning:

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 at videregive stien til snapshot-arkivet skal du først føje systemets sti eller den overordnede mappe til stien.repo-indgang i elastiksøgning.yml

Stien.repo-indgang skal se ud som:

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

Du kan finde konfigurationsfilen til Elasticsearch i / etc / elasticsearch / elasticsearch.yml

BEMÆRK: Efter tilføjelse af stien.repo, skal du muligvis genstarte Elasticsearch-klynger. Derudover understøttes værdierne for sti.repo kan variere vildt afhængigt af platformen, der kører Elasticsearch.

Sådan får du vist snapshot-arkivet

For at bekræfte den vellykkede oprettelse af snapshot-arkivet skal du bruge GET-anmodningen med _snapshot-slutpunktet som:

GET / _snapshot / backup_repo

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

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

Dette skal vise oplysninger om backup-arkivet, for eksempel:


"backup_repo":
"type": "fs",
"indstillinger":
"komprimere": "sandt",
"location": "" "/ home / root / backups" ""


Hvis du har mere end et øjebliksbillede repositories og ikke kan huske navnet, kan du udelade repo-navnet og ringe til _snapshot endpoint for at liste alle eksisterende repositories.

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

Sådan oprettes et øjebliksbillede af elastiksøgning

Oprettelse af et Elasticsearch-snapshot til et specifikt snapshot-arkiv håndteres af create snapshot API. API'en kræver snapshot-lagernavnet og navnet på snapshotet.

BEMÆRK: Et enkelt øjebliksbillede arkiv kan have mere end et øjebliksbillede af de samme klynger, så længe de har unikke identiteter / navne.

Overvej følgende anmodning om at tilføje et øjebliksbillede kaldet snapshot_2021 til backup_repo-lageret.

PUT / _snapshot / backup_repo / snapshot_2021

For at bruge cURL skal du bruge kommandoen:

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

Kommandoen skal returnere et svar fra Elasticsearch med 200 OK og accepteret: sandt


"accepteret": sandt

Da det ikke specificerer, hvilke datastrømme og indekser du vil have sikkerhedskopieret, kaldes ovenstående anmodning sikkerhedskopier alle data og klyngetilstand. For at specificere, hvilke datastrømme og indeks der skal sikkerhedskopieres, skal du føje det til anmodningens organ.

Overvej følgende anmodning om sikkerhedskopiering af .kibana-indeks (et systemindeks) og angiver, hvilken bruger der godkendte øjebliksbillede og årsagen.

PUT / _snapshot / backup_repo / snapshot_2

"indekser": ".kibana ",
"ignore_unavailable": sandt,
"include_global_state": sandt,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Daily Backup”

CURL-kommandoen til det er:

krølle -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_tilgængelig indstiller en boolsk tilstand, der returnerer en fejl, hvis der mangler eller lukkes datastrømme eller indeks, der er angivet i øjebliksbillede.

Parameteren include_global_state gemmer klyngens aktuelle tilstand, hvis den er sand. Nogle af de gemte klyngeoplysninger inkluderer:

BEMÆRK: Du kan angive mere end et indeks adskilt af kommaer.

Et almindeligt argument, der bruges med _snapshot-slutpunktet, er wait_for_completion, en boolsk værdi, der definerer, om (true) eller ikke (false) anmodningen skal vende tilbage straks efter snapshot-initialisering (standard) eller vente på, at et snapshot er afsluttet.

For eksempel:

PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = sandt

"indekser": ".kibana ",
"ignore_unavailable": sandt,
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Ugentlig backup”

CURL-kommandoen er:

krølle -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 ":" Ugentlig backup " '

Når du har indstillet wait_for_completion til true, giver du en output svarende til den, der er vist nedenfor:


"øjebliksbillede":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indekser": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Ugentlig backup”
,
"state": "SUCCESS",
"starttid": "2021-01-19T13: 36: 59.615Z ",
"starttid_i_millis": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"varighed_in_millis": 818,
"fiaskoer": [],
"skår":
"total": 1,
"mislykkedes": 0,
"vellykket": 1


Sådan får du vist snapshots

GET snapshot API håndterer funktionerne for visning af snapshots.

Alt hvad du behøver for at videregive i anmodningen er snapshot-arkivet og navnet på det snapshot, du vil se detaljerne.

Snapshotet skal svare med detaljer om et specificeret snapshot. Disse detaljer inkluderer:

Hvis du f.eks. Vil se detaljerne om snapshot_3 oprettet ovenfor, skal du bruge anmodningen vist nedenfor:

GET / _snapshot / backup_repo / snapshot_3
Brug kommandoen nedenfor for at bruge cURL:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
krølle -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”

Anmodningen skal returnere et svar med detaljerne i øjebliksbillede som:


"snapshots": [

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indekser": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Ugentlig backup”
,
"state": "SUCCESS",
"starttid": "2021-01-19T13: 36: 59.615Z ",
"starttid_i_millis": 1611063419615,
"sluttid": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"varighed_in_millis": 818,
"fiaskoer": [],
"skår":
"total": 1,
"mislykkedes": 0,
"vellykket": 1


]

Du kan også tilpasse anmodningens organ for at få specifikke detaljer om et øjebliksbillede. Vi vil dog ikke se nærmere på det indtil videre.

Lad os sige, at du vil se oplysninger om alle snapshots i et specifikt snapshot-arkiv; i så fald kan du sende et asterisk wildcard i anmodningen som:

GET / _snapshot / backup_repo / *

CURL-kommandoen til det er:

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

Svaret er en detaljeret dump af alle snapshots i det arkiv som:


"snapshots": [

"øjebliksbillede": "øjebliksbillede_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"version": "7.10.2 ",
"indekser": [
"min_index",
"enkelt_index_med_krop",
"min_index_2",
"single_index",
".kibana_1 ",
"prøve"
],
"data_streams": [],
"include_global_state": sandt,
"state": "SUCCESS",
"starttid": "2021-01-19T13: 28: 48.172Z ",
"start_time_in_millis": 1611062928172,
"end_time": "2021-01-19T13: 28: 50.831Z ",
"end_time_in_millis": 1611062930831,
"varighed_in_millis": 2659,
"fiaskoer": [],
"skår":
"i alt": 7,
"mislykkedes": 0,
"vellykket": 7

,

"snapshot": "snapshot_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"version": "7.10.2 ",
"indekser": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
"taken_because": "Daglig sikkerhedskopiering"
,
"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,
"varighed_in_millis": 1439,
"fiaskoer": [],
"skår":
"total": 1,
"mislykkedes": 0,
"vellykket": 1

,

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indekser": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Ugentlig backup”
,
"state": "SUCCESS",
"starttid": "2021-01-19T13: 36: 59.615Z ",
"starttid_i_millis": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"varighed_in_millis": 818,
"fiaskoer": [],
"skår":
"total": 1,
"mislykkedes": 0,
"vellykket": 1


]

Jokertegn er meget nyttige til at filtrere specifikke oplysninger om snapshots.

Sådan slettes et øjebliksbillede

Sletning af et øjebliksbillede er meget simpelt: alt hvad du skal gøre er at bruge DELETE-anmodningen som:

SLET / _snapshot / backup_repo / snapshot_2021 /

CURL-kommandoen er:

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

Svaret skal anerkendes: sandt


“Anerkendt”: sandt

Hvis snapshotet ikke findes, får du en 404-statuskode og snapshot mangler fejl som:


"fejl":
"hovedårsagen" : [

"type": "snapshot_missing_exception",
"årsag": "[backup_repo: snapshot_2021] mangler"

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

Konklusion

I denne vejledning har vi diskuteret, hvordan du opretter Elasticsearch-snapshots ved hjælp af Snapshot API. Hvad du har lært, skal være nok til at give dig mulighed for at oprette et øjebliksbillede arkiv, se øjebliksbillede arkiver, oprette, se og slette snapshots. Selvom der er tilpasninger, du kan foretage med API'et, skal viden i denne vejledning være nok til at komme i gang.

Tak fordi du læste.

Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...