Gebruikershulpmiddelen

Site-hulpmiddelen


werkinstructies:snapshots_in_elasticsearch

Dit is een oude revisie van het document!


Snapshots in elasticsearch

Om in een backup te maken van een index, bijvoorbeeld de .kibana index om zo de gedefinieerde searches, visualisaties en Dashboards veilig te stellen kan je snapshots gebruiken.

Snapshots worden geregeld door de _snapshot plug-in die standaard mee geïnstalleerd is.

Elasticsearch klaar maken voor snapshots

Maak een directory aan

Op het OS moet je een directory maken waar je de snapshots opslaat.

in mijn geval :
mkdir /DATA/elasticsearch-backup
chown elasticsearch:elasticsearch /DATA/elasticsearch-backup

Elasticsearch configuratie aanpassen

Maak de net gemaakte storage binnen elasticsearch bekend als snapshot repository:

vi /etc/elasticsearch/elasticsearch.yml

en voeg toe :

# Shared repo  for snapshot backups
path.repo: ["/DATA/elasticsearch-backup"]

En herstart Elasticsearch om de nieuwe configuratie bekend te maken:

service elasticsearch restart

Maak een repository

We maken een repository met de naam index_backups aan:

curl -XPUT localhost:9200/_snapshot/index_backups -d '{ "type": "fs", "settings": {"location": "/DATA/elasticsearch-backup", "compress": true, "chunk_size": "10m" } }'

Controleer of de repository aangemaakt is:

curl -XGET 'localhost:9200/_snapshot/_all?pretty=true'

de output is als het klopt als volgt:

{
  "index_backups" : {
    "type" : "fs",
    "settings" : {
      "compress" : "true",
      "chunk_size" : "10m",
      "location" : "/DATA/elasticsearch-backup"
    }
  }
}

De repository is nu aangemaakt en klaar om snapshots naar te schrijven.

Snapshots maken naar de backup repository

Snapshot van een specifieke index

Met het volgende commando maak je bijvoorbeeld een snapshot van de index .kibana met als snapshot naam kibana_snapshot:

curl -XPUT localhost:9200/_snapshot/index_backups/kibana_snapshot -d '{ "indices": ".kibana", "ignore_unavailable": "true" }'

Controleer of de snapshot gelukt is:

curl -XGET localhost:9200/_snapshot/index_backups/kibana_snapshot?pretty=true

de output moet iets zijn als:

{
  "snapshots" : [ {
    "snapshot" : "kibana_snapshot",
    "version_id" : 2040099,
    "version" : "2.4.0",
    "indices" : [ ".kibana" ],
    "state" : "SUCCESS",
    "start_time" : "2017-06-29T14:23:42.105Z",
    "start_time_in_millis" : 1498746222105,
    "end_time" : "2017-06-29T14:23:42.277Z",
    "end_time_in_millis" : 1498746222277,
    "duration_in_millis" : 172,
    "failures" : [ ],
    "shards" : {
      "total" : 1,
      "failed" : 0,
      "successful" : 1
    }
  } ]
}

Snapshot van alle open indices

je zou ook kunnen kiezen om alle open indices te backupen:

curl -XPUT localhost:9200/_snapshot/index_backups/snapshot_naampje

Snapshots verwijderen

Snapshots zijn eenvoudig te verwijderen doot:

curl -XDELETE localhost:9200/_snapshot/index_backups/snapshot_naampje

Snapshots gebruiken voor een restore

Een van de bronnen beweert overigens dat de .kibana index aleen terug gezet kan worden als deze closed is.

je kan de .kibana index closen door:

curl -XPOST localhost:9200/.kibana/_close

en je kan hem heropenen door:

curl -XPOST localhost:9200/.kibana/_open

Een hele snapshot terug zetten

curl -XPOST localhost:9200/_snapshot/index_backups/snapshot_naampje/_restore

Dit zet alle indices in de snapshot snapshot_naampje terug.

Een specifieke index uit een snapshot terug zetten

Om 1 index uit een snapshot terug te zetten, bv de .kibana index uit ons voorbeeld snapshot:

curl -XPOST localhost:9200/_snapshot/index_backups/snapshot_naampje/_restore -d '{ "indices": ".kibana" }'

Bronnen

werkinstructies/snapshots_in_elasticsearch.1499351258.txt.gz · Laatst gewijzigd: 2017/07/06 16:27 door abel