Joustava haku

Varmuuskopioi ja palauta Elasticsearch-klustereita tilannekuvilla

Varmuuskopioi ja palauta Elasticsearch-klustereita tilannekuvilla
Elasticsearch on kyse datasta, ja kuten luultavasti jo tiedät, data on tärkeää sinulle ja Elasticsearchille. Kuitenkin, niin paljon kuin sinäkin ja Elasticsearch rakastat tietoja, voi tapahtua tietojen epäonnistumisia, mikä johtaa tietojen menetykseen.

Tietojen menetyksen estämiseksi Elasticsearchilla on useita ominaisuuksia, joiden avulla voit varmistaa tietojen saatavuuden myös tietojen epäonnistumisissa.

Joitakin tapoja, joilla Elasticsearch tarjoaa sinulle tietojen saatavuuden, ovat:

Tässä opetusohjelmassa kerrotaan, miten luodaan klusterin tilannekuvia, jotka auttavat sinua olemaan valmiita, jos peruuttamaton datahäiriö tapahtuu.

Aloitetaan.

Mikä on Elasticsearch-tilannekuva?

Kuten jo mainittiin, joustava tilannekuva on varmuuskopio käynnissä olevasta Elasticsearch-klusterista. Tämä tilannekuva voi olla koko klusterista tai tietystä indeksistä ja tietovirroista tietyssä klusterissa.

Kuten pian opit, arkistolaajennus hallitsee Elasticsearch-tilannekuvia. Nämä tilannekuvat ovat tallennettavissa laajennuksen määrittelemiin tallennuspaikkoihin. Näitä ovat paikalliset järjestelmät ja etäjärjestelmät, kuten GCP Storage, Amazon EC2, Microsoft Azure ja monet muut.

Kuinka luoda Elasticsearch Snapshot -tietovarasto

Ennen kuin sukellamme Elasticsearch-tilannekuvien luomiseen, meidän on luotava Snapshot-arkisto, koska monet Elasticsearchin palveluista käyttävät Snapshot-sovellusliittymää näiden tehtävien suorittamiseen.

Jotkut Snapshot-sovellusliittymän käsittelemistä tehtävistä ovat:

Snapshot-arkiston luomiseen käytämme _snapshot-sovellusliittymän päätepistettä ja sitä seuraavaa nimeä, jonka haluamme määrittää tilannevedosvarastoon. Harkitse alla olevaa pyyntöä, joka luo tietovaraston nimeltä backup_repo

PUT / _snapshot / backup_repo

"type": "fs",
"asetukset":
"location": "/ home / root / backups",
"pakkaa": totta

Tässä on cURL-komento yllä olevalle pyynnölle:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo" -H 'Sisältötyyppi: application / json' -d '"type": "fs", "settings": "location": "/ home / root / backups "," compress ": true '

Yksittäiskuvan tietovaraston polun välittämiseksi sinun on ensin lisättävä järjestelmän polku tai päähakemisto polkuun.repo merkintä elasticsearch.yml

Polku.repo-merkinnän tulisi näyttää samanlaiselta kuin:

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

Elasticsearch-määritystiedosto löytyy tiedostosta / etc / elasticsearch / elasticsearch.yml

MERKINTÄ: Polun lisäämisen jälkeen.repo, sinun on ehkä käynnistettävä Elasticsearch-klusterit uudelleen. Lisäksi polulle tuetut arvot.repo voi vaihdella villisti riippuen alustasta, joka käyttää Elasticsearchia.

Snapshot-arkiston tarkasteleminen

Vahvista tilannevedosvaraston onnistunut luominen käyttämällä GET-pyyntöä _snapshot-päätepisteen kanssa seuraavasti:

GET / _snapshot / backup_repo

Voit käyttää myös seuraavaa cURL-komentoa:

käpristyminen -XGET "http: // localhost: 9200 / _snapshot / backup_repo"

Tämän pitäisi näyttää tietoja varmuuskopioarkistosta, esimerkiksi:


"backup_repo":
"type": "fs",
"asetukset" :
"pakkaa": "totta",
"location": "" "/ home / root / backups" ""


Jos sinulla on useampi kuin yksi tilannevedoksen arkisto ja et muista nimeä, voit jättää pois repo-nimen ja kutsua _snapshot-päätepisteen luetteloiden kaikki olemassa olevat arkistot.

GET / _snapshot tai cURL curl -XGET http: // localhost: 9200 / _snapshot

Kuinka luoda Elasticsearch-tilannekuva

Elasticsearch-tilannekuvan luominen tietylle snapshot-arkistolle hoidetaan luomalla snapshot-sovellusliittymä. Sovellusliittymä vaatii tilannevedoksen tietovaraston nimen ja otoksen nimen.

MERKINTÄ: Yhdessä tilannevedostovarastossa voi olla useampia otoksia samoista klustereista, kunhan niillä on yksilölliset identiteetit / nimet.

Harkitse seuraavaa pyyntöä lisätä tilannekuva nimeltä snapshot_2021 backup_repo-arkistoon.

PUT / _snapshot / backup_repo / snapshot_2021

Käytä cURL-komentoa komennolla:

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

Komennon tulisi palauttaa Elasticsearchin vastaus 200 OK: lla ja hyväksytty: true


"hyväksytty": totta

Koska se ei määritä, mitkä tietovirrat ja indeksit haluat varmuuskopioida, yllä olevan pyynnön kutsuminen varmuuskopioi kaikki tiedot ja klusterin tilan. Voit määrittää varmuuskopioitavat tietovirrat ja indeksit lisäämällä ne pyyntörunkoon.

Harkitse seuraavaa pyyntöä, joka varmuuskopioi .kibana-indeksi (järjestelmäindeksi) ja määrittää, mikä käyttäjä hyväksyi tilannekuvan ja syyn.

PUT / _snapshot / backup_repo / snapshot_2

"indeksit": ".kibana ",
"ignore_unavailable": totta,
"include_global_state": tosi,
"metatiedot":
"taken_by": "elastadmin",
“Taken_because”: “Päivittäinen varmuuskopiointi”

CURL-komento on:

curl -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2" -H 'Sisältötyyppi: application / json' -d '"indeksit": ".kibana "," ignore_unavailable ": true," include_global_state ": true," metadata ": " taken_by ":" Flexibleadmin "," taken_because ":" Daily Backup " ''

Ignore_unavailable asettaa Boolen-tilan, joka palauttaa virheen, jos snapshotissa määritetty tietovirta tai indeksi puuttuu tai on suljettu.

Parametri include_global_state tallentaa klusterin nykyisen tilan, jos se on tosi. Jotkut tallennetuista klusteritiedoista ovat:

MERKINTÄ: Voit määrittää useamman kuin yhden indeksin pilkuilla erotettuna.

_Snapshot-päätepisteen kanssa käytetty yleinen argumentti on wait_for_completion, Boolen arvo, joka määrittää, pitäisikö pyynnön (true) vai ei (false) palata heti snapshot-alustuksen jälkeen (oletus) vai odottaa tilannekuvan valmistumista.

Esimerkiksi:

PUT / _snapshot / backup_repo / snapshot_3?wait_for_completion = tosi

"indeksit": ".kibana ",
"ignore_unavailable": totta,
"include_global_state": epätosi,
"metatiedot":
"taken_by": "elastadmin",
“Taken_because”: “Viikoittainen varmuuskopiointi”

CURL-komento on:

käpristyminen -XPUT "http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3?wait_for_completion = true "-H" Sisältötyyppi: application / json '-d' "indeksit": ".kibana "," ignore_unavailable ": true," include_global_state ": false," metadata ": " taken_by ":" Flexibleadmin "," taken_because ":" Weekly Backup " ''

Kun olet asettanut parametrin wait_for_completion arvoksi tosi, annat samanlaisen lähdön kuin alla oleva:


"tilannekuva":
"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksit": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": epätosi,
"metatiedot":
"taken_by": "elastadmin",
“Taken_because”: “Viikoittainen varmuuskopiointi”
,
"state": "MENESTYS",
"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,
"epäonnistumiset": [],
"sirpaleet":
"yhteensä": 1,
"epäonnistui": 0,
"onnistunut": 1


Kuinka katsella valokuvia

GET-tilannekuvan sovellusliittymä käsittelee näkymän tilannekuvien toiminnallisuutta.

Ainoa mitä sinun tulee lähettää pyynnössä, on tilannevedosvarasto ja sen kuvan nimi, jonka haluat tarkastella yksityiskohdissa.

Tilannekuvan tulisi vastata yksityiskohtaisesti määritetystä tilannekuvasta. Näitä yksityiskohtia ovat:

Jos haluat esimerkiksi tarkastella yllä luotua tilannekuvan_3 tietoja, käytä alla esitettyä pyyntöä:

GET / _snapshot / backup_repo / snapshot_3
Käytä cURL: ää käyttämällä seuraavaa komentoa:
[cc lang = "text" width = "100%" height = "100%" escaped = "true" theme = "liitutaulu" nowrap = "0"]
käpristyminen -XGET “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_3”

Pyynnön tulisi palauttaa vastaus, joka sisältää tilannekuvan tiedot seuraavasti:


"otokset": [

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksit": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": epätosi,
"metatiedot":
"taken_by": "elastadmin",
“Taken_because”: “Viikoittainen varmuuskopiointi”
,
"state": "MENESTYS",
"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,
"epäonnistumiset": [],
"sirpaleet":
"yhteensä": 1,
"epäonnistui": 0,
"onnistunut": 1


]

Voit myös mukauttaa pyynnön runkoa saadaksesi tarkempia tietoja tilannekuvasta. Emme kuitenkaan tutki sitä toistaiseksi.

Sanotaan, että haluat tarkastella tietoja kaikista tietyn tilannevedoksen tietovaraston tilannekuvista; siinä tapauksessa voit välittää pyynnössä tähtimerkin seuraavasti:

GET / _snapshot / backup_repo / *

CURL-komento on:

käpristyminen -XGET “http: // localhost: 9200 / _snapshot / backup_repo / *”

Vastaus on yksityiskohtainen kaatopaikka kaikista kyseisen arkiston tilannekuvista:


"otokset": [

"snapshot": "snapshot_2021",
"uuid": "7CFigHzvRtyZW07c60d2iw",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksit": [
"my_index",
"single_index_with_body",
"my_index_2",
"single_index",
".kibana_1 ",
"testata"
],
"data_streams": [],
"include_global_state": tosi,
"tila": "MENESTYS",
"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,
"epäonnistumiset": [],
"sirpaleet":
"yhteensä": 7,
"epäonnistui": 0,
"onnistunut": 7

,

"snapshot": "snapshot_2",
"uuid": "w58IrYmORAub8VC7cg04Wg",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksit": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": epätosi,
"metatiedot":
"taken_by": "elastadmin",
"taken_because": "Päivittäinen varmuuskopio"
,
"tila": "MENESTYS",
"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,
"epäonnistumiset": [],
"sirpaleet":
"yhteensä": 1,
"epäonnistui": 0,
"onnistunut": 1

,

"snapshot": "snapshot_3",
"uuid": "tQUHyofIRnGMMtw0AGBACQ",
"version_id": 7100299,
"version": "7.10.2 ",
"indeksit": [
".kibana_1 "
],
"data_streams": [],
"include_global_state": epätosi,
"metatiedot":
"taken_by": "elastadmin",
“Taken_because”: “Viikoittainen varmuuskopiointi”
,
"state": "MENESTYS",
"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,
"epäonnistumiset": [],
"sirpaleet":
"yhteensä": 1,
"epäonnistui": 0,
"onnistunut": 1


]

Jokerimerkit ovat erittäin hyödyllisiä suodatettaessa tiettyjä tietoja tilannekuvista.

Yksittäiskuvan poistaminen

Tilannekuvan poistaminen on hyvin yksinkertaista: sinun tarvitsee vain käyttää POISTA-pyyntöä seuraavasti:

POISTA / _snapshot / backup_repo / snapshot_2021 /

CURL-komento on:

käpristyminen -XDELETE “http: // localhost: 9200 / _snapshot / backup_repo / snapshot_2021 /”

Vastaus on tunnustettava: totta


"Tunnustettu": totta

Jos tilannekuvaa ei ole, saat 404-tilakoodin ja tilannevedoksen puuttuvan virheen:


"virhe":
"pohjimmainen syy" : [

"type": "snapshot_missing_exception",
"syy": "[backup_repo: snapshot_2021] puuttuu"

],
"type": "snapshot_missing_exception",
"syy": "[backup_repo: snapshot_2021] puuttuu"
,
"tila": 404

Johtopäätös

Tässä oppaassa olemme keskustelleet Elasticsearch-tilannekuvien luomisesta Snapshot-sovellusliittymän avulla. Oppimiesi pitäisi olla riittäviä, jotta voit luoda tilannevedosvaraston, tarkastella tilannevedosvarastoja, luoda, tarkastella ja poistaa tilannekuvia. Vaikka sovellusliittymällä voidaan tehdä mukautuksia, tämän oppaan tietojen tulisi olla riittäviä aloittamaan sinut.

Kiitos, että luit.

Parhaat komentorivipelit Linuxille
Komentorivi ei ole vain suurin liittolainen Linuxia käytettäessä - se voi olla myös viihteen lähde, koska voit käyttää sitä pelaamaan monia hauskoja p...
Parhaat Linux-peliohjaimen kartoitussovellukset
Jos haluat pelata pelejä Linuxissa peliohjaimella tyypillisen näppäimistön ja hiiren syöttöjärjestelmän sijaan, on sinulle hyödyllisiä sovelluksia. Mo...
Hyödyllisiä työkaluja Linux-pelaajille
Jos haluat pelata pelejä Linuxissa, on todennäköistä, että olet käyttänyt sovelluksia ja apuohjelmia, kuten Wine, Lutris ja OBS Studio, pelikokemuksen...