Elastično iskanje

Varnostno kopirajte in obnovite grozde Elasticsearch s posnetki

Varnostno kopirajte in obnovite grozde Elasticsearch s posnetki
Elasticsearch je vse o podatkih in kot verjetno že veste, so podatki pomembni za vas in Elasticsearch. Vendar pa tako kot vi in ​​Elasticsearch imate radi podatke, lahko pride do okvar podatkov, kar povzroči izgubo podatkov.

Za zaščito pred izgubo podatkov ima Elasticsearch različne funkcije, ki vam omogočajo, da zagotovite razpoložljivost podatkov, tudi v primerih izpada podatkov.

Nekateri načini, ki jih Elasticsearch uporablja za zagotavljanje razpoložljivosti podatkov, vključujejo:

Ta vadnica vam prikazuje, kako ustvariti posnetke gruče, ki vam bodo pomagali biti pripravljeni, če pride do nepopravljivega okvare podatkov.

Začnimo.

Kaj je Elasticsearch Snapshot?

Kot smo že omenili, je elastični posnetek varnostna kopija delujoče gruče Elasticsearch. Ta posnetek je lahko celotne gruče ali določenih indeksov in podatkovnih tokov znotraj določene gruče.

Kot boste kmalu izvedeli, vtičnik repozitorija upravlja posnetke Elasticsearch. Te posnetke je mogoče shraniti na različnih lokacijah za shranjevanje, ki jih določa vtičnik. Sem spadajo lokalni sistemi in oddaljeni sistemi, kot so GCP Storage, Amazon EC2, Microsoft Azure in mnogi drugi.

Kako ustvariti repozitorij posnetkov posnetkov Elasticsearch

Preden se lotimo ustvarjanja posnetkov Elasticsearch, moramo ustvariti repozitorij posnetkov, ker številne storitve Elasticsearch za izvajanje teh nalog uporabljajo API Snapshot.

Nekatere naloge, ki jih obdeluje API za posnetek, so:

Če želite ustvariti repozitorij posnetkov, uporabimo končno točko API-ja _snapshot, čemur sledi ime, ki ga želimo dodeliti repozitoriju posnetkov. Upoštevajte spodnjo zahtevo, ki ustvari repozitorij z imenom backup_repo

PUT / _snapshot / backup_repo

"type": "fs",
"nastavitve":
"location": "/ home / root / backups",
"obkladek": res

Tu je ukaz cURL za zgornjo zahtevo:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo" -H 'Content-Type: application / json' -d '"type": "fs", "settings": "location": "/ domov / koren / varnostne kopije "," stisni ": true '

Če želite prenesti pot do skladišča posnetkov, morate najprej dodati pot sistema ali nadrejeni imenik.vnos repo v elastičnem iskanju.yml

Pot.ponovni vnos bi moral biti podoben:

pot.repo: [“/ home / root / backups”]

Konfiguracijsko datoteko Elasticsearch lahko najdete v / etc / elasticsearch / elasticsearch.yml

OPOMBA: Po dodajanju poti.repo, boste morda morali znova zagnati gruče Elasticsearch. Poleg tega vrednosti, podprte za pot.repo se lahko zelo razlikuje, odvisno od platforme, na kateri se izvaja Elasticsearch.

Kako si ogledati repozitorij posnetkov

Če želite potrditi uspešno izdelavo repozitorija posnetkov, uporabite zahtevo GET s končno točko _snapshot kot:

GET / _snapshot / backup_repo

Uporabite lahko tudi naslednji ukaz cURL:

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

Tu bi morali biti prikazani podatki o skladišču varnostnih kopij, na primer:


"backup_repo":
"type": "fs",
"nastavitve":
"compress": "true",
"location": "" "/ home / root / backups" ""


Če imate več kot eno shrambo posnetkov in se imena ne spomnite, lahko izpustite ime repo in pokličete končno točko _snapshot, da navedete vse obstoječe repozitorije.

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

Kako ustvariti posnetek Elasticsearch

Ustvarjanje posnetka Elasticsearch za določeno repozitorij posnetkov ureja API za ustvarjanje posnetka. API zahteva ime skladišča posnetkov in ime posnetka.

OPOMBA: Eno skladišče posnetkov ima lahko več posnetkov istih gruč, če imajo edinstvene identitete / imena.

Upoštevajte naslednjo zahtevo za dodajanje posnetka z imenom snapshot_2021 v repozitorij backup_repo.

PUT / _snapshot / backup_repo / snapshot_2021

Če želite uporabiti cURL, uporabite ukaz:

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

Ukaz mora vrniti odgovor Elasticsearch z 200 OK in sprejet: true


"sprejeto": res

Ker ne določa, katere podatkovne tokove in indekse želite varnostno kopirati, priklic zgornje zahteve varnostno kopira vse podatke in stanje gruče. Če želite določiti, katere tokove podatkov in indekse želite varnostno kopirati, dodajte to v telo zahteve.

Upoštevajte naslednjo zahtevo, ki varnostno kopira datoteko .indeks kibana (sistemski indeks) in določa, kateri uporabnik je odobril posnetek in razlog.

PUT / _snapshot / backup_repo / snapshot_2

"indeksi": ".kibana ",
"ignore_unavailable": true,
"include_global_state": true,
"metapodatki":
"taken_by": "elasticadmin",
“Taken_because”: “Daily Backup”

Ukaz cURL za to je:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2" -H 'Content-Type: application / json' -d '"indeksi": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metapodatki ": " taken_by ":" elasticadmin "," taken_because ":" Daily Backup " '

Ignore_unavailable nastavi logično stanje, ki vrne napako, če kateri koli podatkovni tokovi ali indeksi, podani na posnetku, manjkajo ali so zaprti.

Parameter include_global_state shrani trenutno stanje gruče, če je res. Nekatere shranjene informacije o gruči vključujejo:

OPOMBA: Določite lahko več indeksov, ločenih z vejicami.

Pogost argument, ki se uporablja s končno točko _snapshot, je wait_for_completion, logična vrednost, ki določa, ali naj bo (true) ali false (false) zahteva vrnjena takoj po inicializaciji posnetka (privzeto) ali počakajte na zaključek posnetka.

Na primer:

PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = true

"indeksi": ".kibana ",
"ignore_unavailable": true,
"include_global_state": false,
"metapodatki":
"taken_by": "elasticadmin",
“Taken_because”: “Tedensko varnostno kopiranje”

Ukaz cURL je:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3?wait_for_completion = true "-H 'Content-Type: application / json' -d '" indeksi ":".kibana "," ignore_unavailable ": true," include_global_state ": false," metadata ": " taken_by ":" elasticadmin "," taken_because ":" Tedensko varnostno kopiranje " '

Ko nastavite parameter wait_for_completion na true, boste dobili izhod, podoben spodnjemu:


"posnetek":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"različica_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metapodatki":
"taken_by": "elasticadmin",
“Taken_because”: “Tedensko varnostno kopiranje”
,
"state": "USPEH",
"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,
"napake": [],
"črepinje":
"skupaj": 1,
"neuspešno": 0,
"uspešno": 1


Kako si ogledati posnetke

API posnetka GET obravnava funkcionalnost posnetkov pogleda.

V zahtevi potrebujete le shrambo posnetkov in ime posnetka, ki si ga želite ogledati.

Posnetek se mora odzvati s podrobnostmi o določenem posnetku. Te podrobnosti vključujejo:

Če si želite na primer ogledati podrobnosti o zgoraj ustvarjenem posnetku_3, uporabite spodnjo zahtevo:

GET / _snapshot / backup_repo / snapshot_3
Če želite uporabiti cURL, uporabite spodnji ukaz:
[cc lang = "text" width = "100%" height = "100%" escape = "true" theme = "blackboard" nowrap = "0"]
curl -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”

Zahteva mora vrniti odgovor s podrobnostmi posnetka kot:


"utrinki": [

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"različica_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metapodatki":
"taken_by": "elasticadmin",
“Taken_because”: “Tedensko varnostno kopiranje”
,
"state": "USPEH",
"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,
"napake": [],
"črepinje":
"skupaj": 1,
"neuspešno": 0,
"uspešno": 1


]

Telo zahteve lahko prilagodite tudi tako, da dobite natančne podrobnosti o posnetku. Vendar tega za zdaj ne bomo preučevali.

Recimo, da si želite ogledati informacije o vseh posnetkih v določenem repozitoriju posnetkov; v tem primeru lahko v zahtevo posredujete nadomestni znak z zvezdico kot:

GET / _snapshot / backup_repo / *

Ukaz cURL za to je:

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

Odgovor je podroben izpis vseh posnetkov v tem repozitoriju kot:


"posnetki": [

"snapshot": "snapshot_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"različica_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
"moj_indeks",
"single_index_with_body",
"moj_indeks_2",
"single_index",
".kibana_1 ",
"Test"
],
"data_streams": [],
"include_global_state": true,
"state": "USPEH",
"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,
"napake": [],
"črepinje":
"skupaj": 7,
"neuspešno": 0,
"uspešno": 7

,

"snapshot": "snapshot_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"različica_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metapodatki":
"taken_by": "elasticadmin",
"taken_because": "Dnevna varnostna kopija"
,
"state": "USPEH",
"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,
"napake": [],
"črepinje":
"skupaj": 1,
"neuspešno": 0,
"uspešno": 1

,

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"različica_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": false,
"metapodatki":
"taken_by": "elasticadmin",
“Taken_because”: “Tedensko varnostno kopiranje”
,
"state": "USPEH",
"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,
"napake": [],
"črepinje":
"skupaj": 1,
"neuspešno": 0,
"uspešno": 1


]

Nadomestni znaki so zelo uporabni za filtriranje določenih informacij o posnetkih.

Kako izbrisati posnetek

Brisanje posnetka je zelo preprosto: vse, kar morate storiti, je, da zahtevo DELETE uporabite kot:

DELETE / _snapshot / backup_repo / snapshot_2021 /

Ukaz cURL je:

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

Odgovor je treba potrditi: resnično


"Priznano": res

Če posnetek ne obstaja, boste dobili kodo stanja 404 in napako posnetka kot:


"napaka":
"glavni vzrok" : [

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

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

Zaključek

V tem priročniku smo razpravljali o tem, kako ustvariti posnetke Elasticsearch z uporabo Snapshot API. Kar ste se naučili, mora biti dovolj, da lahko ustvarite repozitorij posnetkov, si ogledate repozitorije posnetkov, ustvarite, prikažete in izbrišete posnetke. Čeprav lahko z API-jem naredite prilagoditve, bi moralo biti znanje v tem priročniku dovolj za začetek.

Hvala za branje.

Nadzirajte in upravljajte gibanje miške med več monitorji v sistemu Windows 10
Upravitelj miške z dvojnim zaslonom vam omogoča nadzor in konfiguriranje gibanja miške med več monitorji, tako da upočasni gibanje blizu meje. Windows...
WinMouse vam omogoča prilagajanje in izboljšanje premikanja kazalca miške v računalniku z operacijskim sistemom Windows
Če želite izboljšati privzete funkcije kazalca miške, uporabite brezplačno programsko opremo WinMouse. Dodaja več funkcij, s pomočjo katerih boste kar...
Levi gumb miške ne deluje v sistemu Windows 10
Če s prenosnikom ali namiznim računalnikom uporabljate namensko miško, vendar gumb miške z levim klikom ne deluje v operacijskem sistemu Windows 10/8/...