Elastisk sökning

Säkerhetskopiera och återställ Elasticsearch-kluster med ögonblicksbilder

Säkerhetskopiera och återställ Elasticsearch-kluster med ögonblicksbilder
Elasticsearch handlar om data, och som du säkert redan vet är data viktigt för dig och Elasticsearch. Men i så mycket som både du och Elasticsearch älskar data kan datafel uppstå, vilket leder till dataförlust.

För att skydda mot dataförlust har Elasticsearch olika funktioner som gör att du kan säkerställa datatillgänglighet, även i fall av datafel.

Några av de sätt som Elasticsearch använder för att förse dig med datatillgänglighet är:

Denna handledning visar hur du skapar klustermoment, vilket hjälper dig att vara redo om en oåterkallelig datafel händelse inträffar.

Låt oss börja.

Vad är en ögonblicksbild av elastik?

Som nämnts är en elastisk ögonblicksbild en säkerhetskopia av ett löpande Elasticsearch-kluster. Denna ögonblicksbild kan vara av ett helt kluster eller specifika index och dataströmmar i ett visst kluster.

Som du snart kommer att lära dig, hanterar ett arkivpluggin Elasticsearch-ögonblicksbilder. Dessa ögonblicksbilder kan lagras på olika lagringsplatser som definieras av plugin-programmet. Dessa inkluderar lokala system och fjärrsystem som GCP Storage, Amazon EC2, Microsoft Azure och många fler.

Hur man skapar ett ögonblicksförvar för elastisk sökning

Innan vi dyker in i att skapa Elasticsearch-ögonblicksbilder, måste vi skapa ett snapshot-arkiv eftersom många av Elasticsearchs tjänster använder Snapshot API för att utföra dessa uppgifter.

Några av de uppgifter som hanteras av Snapshot API är:

För att skapa ett snapshot-arkiv använder vi _snapshot API-slutpunkten följt av namnet vi vill tilldela snapshot-arkivet. Tänk på begäran nedan som skapar en databas som heter backup_repo

PUT / _snapshot / backup_repo

"type": "fs",
"inställningar":
"location": "/ home / root / backups",
"komprimera": sant

Här är ett cURL-kommando för ovanstående begäran:

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

För att skicka ögonblicksbildsförrådssökvägen måste du först lägga till systemets sökväg eller överordnad katalog till sökvägen.repo-post i elasticsearch.yml

Vägen.repo-post ska se ut som:

väg.repo: [“/ home / root / backups]]

Du hittar konfigurationsfilen för Elasticsearch i / etc / elasticsearch / elasticsearch.yml

NOTERA: Efter att ha lagt till sökvägen.repo, du kan behöva starta om Elasticsearch-kluster. Dessutom stöds värdena för sökvägen.repo kan variera vilt beroende på vilken plattform som kör Elasticsearch.

Hur man visar Snapshot Repository

För att bekräfta framgångsrikt skapande av ögonblicksbildsförvaret använder du GET-förfrågan med slutpunkten _snapshot som:

GET / _snapshot / backup_repo

Du kan också använda följande cURL-kommando:

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

Detta ska visa information om reservförvaret, till exempel:


"backup_repo":
"type": "fs",
"inställningar" :
"compress": "true",
"location": "" "/ home / root / backups" ""


Om du har mer än en ögonblicksbildsförvaring och inte kommer ihåg namnet kan du utelämna reponamnet och ringa _snapshot-slutpunkten för att lista alla befintliga förråd.

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

Hur man skapar en ögonblicksbild av elastik

Skapa en Elasticsearch-ögonblicksbild för ett specifikt snapshot-arkiv hanteras av API: n för att skapa snapshot. API: et kräver snapshot-förvarets namn och namnet på snapshot.

NOTERA: En enda snapshot-databas kan ha mer än en snapshot av samma kluster så länge de har unika identiteter / namn.

Överväg följande begäran om att lägga till en ögonblicksbild som heter snapshot_2021 i backup_repo-arkivet.

PUT / _snapshot / backup_repo / snapshot_2021

För att använda cURL, använd kommandot:

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

Kommandot ska returnera ett svar från Elasticsearch med 200 OK och accepterat: true


"accepterad": sant

Eftersom det inte anger vilka dataströmmar och index du vill ha säkerhetskopierat, ringer ovanstående begäran säkerhetskopierar alla data och klustertillståndet. För att ange vilka dataströmmar och index som ska säkerhetskopieras, lägg till det i begäran.

Tänk på följande begäran som säkerhetskopierar .kibana-index (ett systemindex) och anger vilken användare som godkände ögonblicksbilden och anledningen.

PUT / _snapshot / backup_repo / snapshot_2

"index": ".kibana ",
"ignore_unavailable": sant,
"include_global_state": sant,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Daily Backup”

CURL-kommandot för det är:

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 " '

Ignorera_unavailable anger ett booleskt tillstånd som returnerar ett fel om några dataströmmar eller index som anges i ögonblicksbilden saknas eller stängs.

Parametern include_global_state sparar klusterns nuvarande tillstånd om det är sant. En del av den sparade klusterinformationen inkluderar:

NOTERA: Du kan ange mer än ett index åtskilt med kommatecken.

Ett vanligt argument som används med _snapshot-slutpunkten är wait_for_completion, ett booleskt värde som definierar om (true) eller inte (false) begäran ska returneras omedelbart efter initialisering av snapshot (standard) eller vänta på att snapshot är slutfört.

Till exempel:

PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = sant

"index": ".kibana ",
"ignore_unavailable": sant,
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Weekly Backup”

Kommandot cURL är:

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

När parametern wait_for_completion är satt till true, ger du en utdata som liknar den som visas nedan:


"ögonblicksbild":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"index": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Weekly Backup”
,
"state": "SUCCESS",
"start_time": "2021-01-19T13: 36: 59.615Z ",
"start_time_in_millis": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"duration_in_millis": 818,
"misslyckanden": [],
"skärvor":
"totalt": 1,
"misslyckades": 0,
"lyckad": 1


Hur man visar ögonblicksbilder

GET snapshot API hanterar vyn snapshots-funktionalitet.

Allt du behöver skicka i begäran är ögonblicksbildsförvaret och namnet på ögonblicksbilden som du vill visa detaljerna.

Ögonblicksbilden ska svara med detaljer om en angiven ögonblicksbild. Dessa detaljer inkluderar:

Om du till exempel vill se detaljerna om snapshot_3 som skapats ovan använder du begäran nedan:

GET / _snapshot / backup_repo / snapshot_3
För att använda cURL, använd kommandot nedan:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "blackboard" nowrap = "0"]
curl -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”

Förfrågan ska returnera ett svar med detaljerna i ögonblicksbilden som:


"ögonblicksbilder": [

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"index": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Weekly Backup”
,
"state": "SUCCESS",
"start_time": "2021-01-19T13: 36: 59.615Z ",
"start_time_in_millis": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"duration_in_millis": 818,
"misslyckanden": [],
"skärvor":
"totalt": 1,
"misslyckades": 0,
"lyckad": 1


]

Du kan också anpassa förfrågan för att få specifik information om en ögonblicksbild. Men vi kommer inte att undersöka det för nu.

Låt oss säga att du vill visa information om alla snapshots i ett specifikt snapshot-arkiv; i så fall kan du skicka ett asterisk jokertecken i begäran som:

GET / _snapshot / backup_repo / *

CURL-kommandot för det är:

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

Svaret är en detaljerad dumpning av alla ögonblicksbilder i förvaret som:


"ögonblicksbilder": [

"snapshot": "snapshot_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"version": "7.10.2 ",
"index": [
"min_index",
"enkel_index_med_kropp",
"min_index_2",
"single_index",
".kibana_1 ",
"testa"
],
"data_streams": [],
"include_global_state": sant,
"state": "SUCCESS",
"start_time": "2021-01-19T13: 28: 48.172Z ",
"start_time_in_millis": 1611062928172,
"end_time": "2021-01-19T13: 28: 50.831Z ",
"end_time_in_millis": 1611062930831,
"duration_in_millis": 2659,
"misslyckanden": [],
"skärvor":
"totalt": 7,
"misslyckades": 0,
"lyckad": 7

,

"snapshot": "snapshot_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"version": "7.10.2 ",
"index": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
"taken_because": "Daily Backup"
,
"state": "SUCCESS",
"start_time": "2021-01-19T13: 33: 34.482Z ",
"start_time_in_millis": 1611063214482,
"end_time": "2021-01-19T13: 33: 35.921Z ",
"end_time_in_millis": 1611063215921,
"duration_in_millis": 1439,
"misslyckanden": [],
"skärvor":
"totalt": 1,
"misslyckades": 0,
"lyckad": 1

,

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"index": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metadata":
"taken_by": "elasticadmin",
“Taken_because”: “Weekly Backup”
,
"state": "SUCCESS",
"start_time": "2021-01-19T13: 36: 59.615Z ",
"start_time_in_millis": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433Z ",
"end_time_in_millis": 1611063420433,
"duration_in_millis": 818,
"misslyckanden": [],
"skärvor":
"totalt": 1,
"misslyckades": 0,
"lyckad": 1


]

Jokertecken är mycket användbara för att filtrera specifik information om ögonblicksbilderna.

Hur man tar bort en ögonblicksbild

Att radera en ögonblicksbild är väldigt enkelt: allt du behöver göra är att använda DELETE-begäran som:

RADERA / _snapshot / backup_repo / snapshot_2021 /

Kommandot cURL är:

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

Svaret bör erkännas: sant


”Erkänt”: sant

Om ögonblicksbilden inte finns kommer du att få en 404-statuskod och ett ögonblicksbild saknas som:


"fel":
"Grundorsak" : [

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

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

Slutsats

I den här guiden har vi diskuterat hur man skapar Elasticsearch-ögonblicksbilder med Snapshot API. Vad du har lärt dig borde vara tillräckligt för att du ska kunna skapa ett ögonblicksbildsförvar, visa ögonblicksbildsförvaren, skapa, visa och ta bort ögonblicksbilder. Även om det finns anpassningar du kan göra med API: et, bör kunskapen i den här guiden vara tillräcklig för att komma igång.

Tack för att du läste.

Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...
Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...
Mus Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Mus och Pekplattas gör inte bara datoranvändning lättare men effektivare och mindre tidskrävande. Vi kan inte föreställa oss ett liv utan dessa enhete...