Elastična pretraga

Napravite sigurnosnu kopiju i vratite klastere Elasticsearch sa snimkama

Napravite sigurnosnu kopiju i vratite klastere Elasticsearch sa snimkama
Elasticsearch je sve o podacima, a kao što vjerojatno već znate, podaci su važni - vama i Elasticsearchu. Međutim, koliko god i vi i Elasticsearch voljeli podatke, mogu se dogoditi i kvarovi podataka, što dovodi do gubitka podataka.

Kako bi se zaštitio od gubitka podataka, Elasticsearch ima razne značajke koje vam omogućuju osiguravanje dostupnosti podataka, čak i u slučajevima kvara podataka.

Neki od načina na koje Elasticsearch pruža dostupnost podataka uključuju:

Ovaj vam vodič pokazuje kako stvoriti snimke klastera koji će vam pomoći da budete spremni u slučaju nepovratnog događaja neuspjeha podataka.

Započnimo.

Što je Elasticsearch Snapshot?

Kao što je spomenuto, elastična snimka sigurnosna je kopija pokrenutog Elasticsearch klastera. Ova snimka može sadržavati cijeli klaster ili određene indekse i tokove podataka unutar određenog klastera.

Kao što ćete uskoro saznati, dodatak spremišta upravlja snimkama Elasticsearch. Te se snimke mogu pohraniti na raznim mjestima za pohranu definiranim dodatkom. To uključuje lokalne sustave i udaljene sustave poput GCP Storage, Amazon EC2, Microsoft Azure i mnoge druge.

Kako stvoriti repozitorij snimaka Elasticsearch

Prije nego što krenemo u stvaranje Elasticsearch snimaka, moramo stvoriti spremište snimki jer mnoge usluge Elasticsearch koriste Snapshot API za izvršavanje ovih zadataka.

Neki od zadataka kojima se bavi Snapshot API su:

Da bismo stvorili spremište snimaka, koristimo _snapshot API krajnju točku praćeno imenom koje želimo dodijeliti spremištu snimki. Razmotrite zahtjev u nastavku koji stvara spremište pod nazivom backup_repo

PUT / _snapshot / backup_repo

"type": "fs",
"postavke":
"location": "/ home / root / sigurnosne kopije",
"oblog": istina

Evo naredbe cURL za gornji zahtjev:

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

Da biste proslijedili put spremišta brzih snimki, prvo morate dodati putanju sustava ili nadređeni direktorij.repo unos u elastičnom pretraživanju.yml

Put.repo unos trebao bi izgledati slično:

staza.repo: [“/ home / root / sigurnosne kopije”]

Konfiguracijsku datoteku Elasticsearch možete pronaći u / etc / elasticsearch / elasticsearch.yml

BILJEŠKA: Nakon dodavanja putanje.repo, možda ćete trebati ponovno pokrenuti Elasticsearch klastere. Uz to, vrijednosti podržane za put.repo se može jako razlikovati ovisno o platformi koja pokreće Elasticsearch.

Kako pregledati spremište snimaka

Da biste potvrdili uspješno stvaranje spremišta snimki, upotrijebite GET zahtjev s krajnjom točkom _snapshot kao:

GET / _snapshot / backup_repo

Možete koristiti i sljedeću naredbu cURL:

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

Ovo bi trebalo prikazati informacije o spremištu sigurnosnih kopija, na primjer:


"backup_repo":
"type": "fs",
"postavke":
"compress": "true",
"location": "" "/ home / root / sigurnosne kopije" ""


Ako imate više spremišta za brze snimke i ne sjećate se imena, možete izostaviti ime repo-a i pozvati krajnju točku _snapshot da biste popisali sve postojeće spremišta.

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

Kako stvoriti snimku elastičnog pretraživanja

Stvaranje snimke Elasticsearch za određeno spremište snimki obrađuje API stvaranja snimke. API zahtijeva naziv spremišta snimke i naziv snimke.

BILJEŠKA: Pojedino spremište snimke može imati više snimki istih klastera pod uvjetom da imaju jedinstvene identitete / imena.

Razmotrite sljedeći zahtjev za dodavanje snimke zvane snapshot_2021 u spremište backup_repo.

PUT / _snapshot / backup_repo / snapshot_2021

Da biste koristili curl, upotrijebite naredbu:

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

Naredba bi trebala vratiti odgovor s Elasticsearch s 200 OK i prihvatio: true


"prihvaćeno": istina

Budući da ne navodi koji tokovi podataka i indeksi želite imati sigurnosnu kopiju, pozivanje gornjeg zahtjeva sigurnosno kopira sve podatke i stanje klastera. Da biste odredili koje tokove podataka i indekse želite sigurnosno kopirati, dodajte to tijelu zahtjeva.

Razmotrite sljedeći zahtjev koji izrađuje sigurnosne kopije datoteke .indeks kibana (indeks sustava) i određuje koji je korisnik odobrio snimku i razlog.

PUT / _snapshot / backup_repo / snapshot_2

"indeksi": ".kibana ",
"ignore_unavailable": true,
"include_global_state": točno,
"metapodaci":
"taken_by": "elastični administrator",
“Taken_because”: “Svakodnevne sigurnosne kopije”

Naredba 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," metapodaci ": " taken_by ":" elasticadmin "," taken_because ":" Daily Backup " '

Ignore_unavailable postavlja logičko stanje koje vraća pogrešku ako bilo koji tok podataka ili indeksi navedeni u snimci nedostaju ili su zatvoreni.

Parametar include_global_state sprema trenutno stanje klastera ako je istinito. Neke spremljene informacije o klasteru uključuju:

BILJEŠKA: Možete odrediti više indeksa odvojenih zarezima.

Uobičajeni argument koji se koristi s krajnjom točkom _snapshot je wait_for_completion, logička vrijednost koja definira hoće li se (istinito) ili ne (lažno) zahtjev vratiti odmah nakon inicijalizacije snimke (zadano) ili pričekati završetak snimke.

Na primjer:

PUT / _snapshot / backup_repo / snapshot_3?pričekajte_za_završetak = točno

"indeksi": ".kibana ",
"ignore_unavailable": true,
"include_global_state": netačno,
"metapodaci":
"taken_by": "elastični administrator",
“Taken_because”: “Tjedna sigurnosna kopija”

Naredba 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," metapodaci ": " taken_by ":" elasticadmin "," take_because ":" Tjedno kopiranje " '

Kada postavite parametar wait_for_completion na true, dobit ćete izlaz sličan onome prikazanom u nastavku:


"snimka":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": netačno,
"metapodaci":
"taken_by": "elastični administrator",
“Taken_because”: “Tjedna sigurnosna kopija”
,
"state": "USPJEH",
"start_time": "2021-01-19T13: 36: 59.615 Z ",
"vrijeme_početka_u_milisu": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433 Z ",
"end_time_in_millis": 1611063420433,
"duration_in_millis": 818,
"neuspjesi": [],
"krhotine":
"ukupno": 1,
"nije uspjelo": 0,
"uspješno": 1


Kako pregledati snimke

API GET snapshot obrađuje funkciju pregleda snimki.

Sve što trebate proslijediti u zahtjevu je spremište snimaka i ime snimke koje želite pregledati.

Snimka bi trebala odgovarati detaljima o određenoj snimci. Ti detalji uključuju:

Na primjer, da biste pogledali detalje o gore stvorenom snimku_3, upotrijebite zahtjev prikazan u nastavku:

GET / _snapshot / backup_repo / snapshot_3
Da biste koristili curl, upotrijebite naredbu u nastavku:
[cc lang = "text" width = "100%" height = "100%" escape = "true" theme = "blackboard" nowrap = "0"]
curl -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”

Zahtjev bi trebao vratiti odgovor s pojedinostima snimke kao:


"snimke": [

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": netačno,
"metapodaci":
"taken_by": "elastični administrator",
“Taken_because”: “Tjedna sigurnosna kopija”
,
"state": "USPJEH",
"start_time": "2021-01-19T13: 36: 59.615 Z ",
"vrijeme_početka_u_milisu": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433 Z ",
"end_time_in_millis": 1611063420433,
"duration_in_millis": 818,
"neuspjesi": [],
"krhotine":
"ukupno": 1,
"nije uspjelo": 0,
"uspješno": 1


]

Također možete prilagoditi tijelo zahtjeva da biste dobili određene detalje o snimci. Međutim, za sada to nećemo razmatrati.

Recimo da želite pregledati informacije o svim snimkama u određenom spremištu snimaka; u tom slučaju, u zahtjev možete dodati zamjenski znak zvjezdice kao:

GET / _snapshot / backup_repo / *

Naredba cURL za to je:

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

Odgovor je detaljan dump svih snimaka u tom spremištu kao:


"snimke": [

"snapshot": "snapshot_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
"moj_indeks",
"single_index_with_body",
"moj_indeks_2",
"pojedinačni_indeks",
".kibana_1 ",
"test"
],
"data_streams": [],
"include_global_state": točno,
"state": "USPJEH",
"start_time": "2021-01-19T13: 28: 48.172 Z ",
"vrijeme_početka_u_milisu": 1611062928172,
"end_time": "2021-01-19T13: 28: 50.831 Z ",
"end_time_in_millis": 1611062930831,
"trajanje_u_milisu": 2659,
"neuspjesi": [],
"krhotine":
"ukupno": 7,
"nije uspjelo": 0,
"uspješno": 7

,

"snapshot": "snapshot_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": netačno,
"metapodaci":
"taken_by": "elastični administrator",
"taken_because": "Svakodnevne sigurnosne kopije"
,
"state": "USPJEH",
"start_time": "2021-01-19T13: 33: 34.482 Z ",
"vrijeme_početka_u_milisu": 1611063214482,
"end_time": "2021-01-19T13: 33: 35.921 Z ",
"end_time_in_millis": 1611063215921,
"trajanje_u_milisu": 1439,
"neuspjesi": [],
"krhotine":
"ukupno": 1,
"nije uspjelo": 0,
"uspješno": 1

,

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksi": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": netačno,
"metapodaci":
"taken_by": "elastični administrator",
“Taken_because”: “Tjedna sigurnosna kopija”
,
"state": "USPJEH",
"start_time": "2021-01-19T13: 36: 59.615 Z ",
"vrijeme_početka_u_milisu": 1611063419615,
"end_time": "2021-01-19T13: 37: 00.433 Z ",
"end_time_in_millis": 1611063420433,
"duration_in_millis": 818,
"neuspjesi": [],
"krhotine":
"ukupno": 1,
"nije uspjelo": 0,
"uspješno": 1


]

Zamjenski znakovi vrlo su korisni za filtriranje određenih informacija o snimkama.

Kako izbrisati snimku

Brisanje snimke vrlo je jednostavno: sve što trebate je koristiti DELETE zahtjev kao:

IZBRIŠI / _snapshot / backup_repo / snapshot_2021 /

Naredba cURL je:

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

Odgovor treba priznati: istinit


"Priznato": istina

Ako snimka ne postoji, dobit ćete 404 statusni kod i pogrešku koja nedostaje u snimci kao:


"pogreška":
"korijenski_uzrok": [

"type": "snapshot_missing_exception",
"razlog": "Nedostaje [backup_repo: snapshot_2021]"

],
"type": "snapshot_missing_exception",
"razlog": "Nedostaje [backup_repo: snapshot_2021]"
,
"status": 404

Zaključak

U ovom smo vodiču razgovarali o tome kako stvoriti snimke Elasticsearch pomoću API-ja Snapshot. Ono što ste naučili trebalo bi biti dovoljno da vam omogući stvaranje spremišta za snimke, pregled spremišta za snimke, izradu, pregled i brisanje snimaka. Iako postoje prilagodbe koje možete izvršiti s API-jem, znanje u ovom vodiču trebalo bi biti dovoljno za početak.

Hvala na čitanju.

Najbolji emulatori igraće konzole za Linux
Ovaj će članak navesti popularni softver za emulaciju igraće konzole dostupan za Linux. Emulacija je sloj kompatibilnosti softvera koji oponaša hardve...
Najbolji Linux Distros za igre na sreću 2021. godine
Linux operativni sustav daleko je prevalio svoj izvorni, jednostavni izgled zasnovan na poslužitelju. Ovaj se OS posljednjih godina izuzetno poboljšao...
Kako snimiti i struji svoju igraću sesiju na Linuxu
U prošlosti se igranje igara smatralo samo hobijem, ali s vremenom je igračka industrija zabilježila ogroman rast u pogledu tehnologije i broja igrača...