From c0af1da48bb8d3f688e67aa973eef175e5558185 Mon Sep 17 00:00:00 2001 From: gcolpart Date: Thu, 19 Jul 2018 16:06:53 +0200 Subject: [PATCH] Ajout d'infos pour les sauvegardes --- HowtoElasticsearch.md | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/HowtoElasticsearch.md b/HowtoElasticsearch.md index 634eeecd..1a795a57 100644 --- a/HowtoElasticsearch.md +++ b/HowtoElasticsearch.md @@ -294,29 +294,45 @@ $ curl -s -XDELETE "localhost:9200/_snapshot/foo/snapshot_test" ### Sauvegarde via snapshots +Il faut donc avoir une directive `path.repo: ["/home/backup-elasticsearch"]` prise en compte par Elasticsearch avec un répertoire existant. +Puis on crée + +Créons un snapshot repository nommé `snaprepo` : + +~~~ +$ curl -XPUT 'http://localhost:9200/_snapshot/snaprepo' -d '{ +"type": "fs", + "settings": { + "location": "/home/backup-elasticsearch", + "compress": true + } +}' +{"acknowledged":true} +~~~ + On peut ainsi créer régulièrement des snapshots pour les sauvegardes. Pour créer un snapshot toutes les heures, et en conserver 24 en permanence (notion de snapshots "roulants") : ~~~ $ date=$(date +%H) -$ curl -s -X DELETE "127.0.0.1:9200/_snapshot/foo/h${date}" | grep -v acknowledged..true -$ curl -s -X PUT "127.0.0.1:9200/_snapshot/foo/h${date}?wait_for_completion=true" -o /tmp/es_snapshot_h${date}.log +$ curl -s -X DELETE "127.0.0.1:9200/_snapshot/snaprepo/h${date}" | grep -v acknowledged..true +$ curl -s -X PUT "127.0.0.1:9200/_snapshot/snaprepo/h${date}?wait_for_completion=true" -o /tmp/es_snapshot_h${date}.log ~~~ Plus classiquement pour avoir un snapshot par jour : ~~~ $ date=$(date +%Y-%m-%d) -$ curl -s -XDELETE "localhost:9200/_snapshot/foo/snapshot_${date}" | grep -v acknowledged..true -$ curl -s -XPUT "localhost:9200/_snapshot/foo/snapshot_${date}?wait_for_completion=true" -o /tmp/es_snapshot_${date}.log +$ curl -s -XDELETE "localhost:9200/_snapshot/snaprepo/snapshot_${date}" | grep -v acknowledged..true +$ curl -s -XPUT "localhost:9200/_snapshot/snaprepo/snapshot_${date}?wait_for_completion=true" -o /tmp/es_snapshot_${date}.log ~~~ On peut ensuite purger les snapshots vieux de plus de 10 jours ainsi : ~~~ -$ cd /home/backup-elasticsearch/foo -$ for i in $(ls -1d snapshot-* | head -n -10 | sed s'/snapshot-snapshot_//g'); do curl -s -XDELETE "localhost:9200/_snapshot/foo/snaps +$ cd /home/backup-elasticsearch/snaprepo +$ for i in $(ls -1d snapshot-* | head -n -10 | sed s'/snapshot-snapshot_//g'); do curl -s -XDELETE "localhost:9200/_snapshot/snaprepo/snaps hot_${i}"; done ~~~