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:
- Klusterien väliset replikoinnit, ominaisuus, jonka avulla voit kopioida tietoja seuraajajoukkoihin; seuraajajoukko on valmiustilaryhmä, jota käytetään, jos pääklusteri epäonnistuu.
- Toinen menetelmä, jota Elasticsearch käyttää tietojen estämiseen varmuuskopioiden avulla, joita kutsutaan myös klusterin tilannekuviksi. Jos tarvetta ilmenee, voit käyttää näitä tilannekuvia palauttaaksesi tiedot kokonaan uudelle klusterille.
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:
- Laita tilannevedosvarasto
- Tarkista tilannevedoksen arkisto
- Hanki tilannevedosvarasto
- Poista tilannevedosvarasto
- Siivoa tilannevedoksen arkisto
- Luo tilannekuva
- Kloonin tilannekuva
- Hanki tilannekuva
- Hanki tilannekuvan tila
- Palauta tilannekuva
- Poista tilannekuva
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_repoVoit 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_2021Kä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:
- Pysyvät klusteriasetukset
- Hakemistomallit
- Vanhat hakemistomallit
- Nielaise putket
- ILM: n elinkaarikäytännöt
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:
- Aloitus- ja lopetusajan arvot
- Elasticsearchin versio, joka loi tilannekuvan
- Luettelo mukana olevista indekseistä
- Tilannekuvan nykyinen tila
- Luettelo tilannevedoksen aikana tapahtuneista vikoista
Jos haluat esimerkiksi tarkastella yllä luotua tilannekuvan_3 tietoja, käytä alla esitettyä pyyntöä:
GET / _snapshot / backup_repo / snapshot_3Kä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.