From c9afbe04a8bae584da295452c28b9d7d2907a4f6 Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Wed, 28 Sep 2016 11:45:01 +0200 Subject: [PATCH] =?UTF-8?q?Revert=20"retrait=20de=20mentions=20=C3=A0=20Gi?= =?UTF-8?q?t=20et=20apt=20update"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit abc497e1d31ecfc812ef620c265dccbc442daf0a. --- HowtoELK.md | 21 +++++++++---- HowtoElasticsearch.md | 71 ++++++++++++++++++++++--------------------- 2 files changed, 51 insertions(+), 41 deletions(-) diff --git a/HowtoELK.md b/HowtoELK.md index 51ae970a..8e738c01 100644 --- a/HowtoELK.md +++ b/HowtoELK.md @@ -17,7 +17,7 @@ Elasticsearch est un serveur de base de donnée qui dispose d'une interface REST ~~~ # wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add - # echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | tee -a /etc/apt/sources.list.d/elastic.list -# apt install elasticsearch openjdk-7-jre openjdk-7-jre-headless +# apt update && apt install elasticsearch openjdk-7-jre openjdk-7-jre-headless ~~~ ## Configuration de base @@ -47,13 +47,17 @@ Plus détails sur la bonne configuration d'Elasticsearch sont sur [HowtoElasticS # chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/plugins/ ~~~ +~~~ +# cd /etc; git add -A; git commit -m "Install Elasticsearch" +~~~ + ## Démarrage ~~~ # systemctl start elasticsearch ~~~ -Pour que le démon soit géré automatiquement par SystemD : +Pour que le démon soit géré automatiquement par systemd : ~~~ # systemctl enable elasticsearch @@ -76,7 +80,8 @@ Documentation officielle : # systemctl start logstash ~~~ -Pour que le démon soit géré automatiquement par SystemD : +Pour que le démon soit géré automatiquement par systemd : ~~~ # systemctl enable logstash @@ -107,7 +112,7 @@ Documentation officielle : /dev/null -$ curl -s 'localhost:9200/_flush' | grep -qe '"ok":true' -$ if [ $? -eq 0 ]; then - rsync -a --delete /var/lib/elasticsearch/ /home/backup/elasticsearch/ - else - echo "Error when flushing ES translog indexes." - fi -$ curl -s -XPUT 'localhost:9200/_settings' -d '{"index.translog.disable_flush": false}' > /dev/null +# mkdir /home/backup-elasticsearch +# chown elasticsearch: /home/backup-elasticsearch ~~~ -Une sauvegarde plus avancée est d'utiliser les snaphosts, un exemple : +NB : en cas de cluster multi-nœuds, il faut penser que le filesystem doit être partagé (via NFS ou autre) car chaque nœud ne gère que ses propres données. + +Le dépôt doit être référencé dans la configuration `/etc/elasticsearch/elasticsearch.yml` : ~~~ -$ cd /srv/snapshots -$ for i in $(ls -1d snapshot-* | head -n -10 | sed s'/snapshot-snapshot_//g'); do curl -s -XDELETE "localhost:9200/_snapshot/backup/snaps hot_${i}"; done -$ date=$(date +%Y-%m-%d) -$ curl -s -XDELETE "localhost:9200/_snapshot/backup/snapshot_${date}" | grep -v acknowledged..true -$ curl -s -XPUT "localhost:9200/_snapshot/backup/snapshot_${date}?wait_for_completion=true" -o /tmp/es_snapshot_${date}.log +path.repo: ["/home/backup-elasticsearch"] ~~~ -Attention, en mode cluster il faut gérer des montages NFS sur les nœuds slaves car chacun écrit uniquement les données qu'il a ! +Après restart d'Elasticsearch on lui fait créer le snapshot **evobackup** : + +~~~ +# curl -XPUT 127.0.0.1:9200/_snapshot/evobackup -d '{"type": "fs", "settings": {"location": "/home/backup-elasticsearch/evobackup", "compress": true}}' +~~~ + +Enfin, dans un script qui tourne régulièrement, on provoque la fixation d'un snapshot : + +~~~ +date=$(date +%H) +curl -s -X DELETE "127.0.0.1:9200/_snapshot/evobackup/h${date}" | grep -v acknowledged..true +curl -s -X PUT "127.0.0.1:9200/_snapshot/evobackup/h${date}?wait_for_completion=true" -o /tmp/es_snapshot_h${date}.log +~~~ + +Ici, on crée un snapshot portant le numéro de l'heure courante. Il est supprimé avant d'être recréé afin d'avoir des snapshots "roulants". ## Principe de fonctionnement @@ -231,7 +232,7 @@ curl -X PUT localhost:9200/planet Créer un type de donnée nommé « hacker ». ~~~ -curl -X PUT localhost:9200/planet/hacker/_mapping -d @- <<< ' +curl -X PUT localhost:9200/planet/hacker/_mapping -d ' { "hacker": { "properties": { @@ -250,7 +251,7 @@ curl -X PUT localhost:9200/planet/hacker/_mapping -d @- <<< ' Créer un document de type hacker avec l'ID 1. ~~~ -curl -X PUT localhost:9200/planet/hacker/1 -d @- <<< '{"handle": "jean-michel", "age": 18}' +curl -X PUT localhost:9200/planet/hacker/1 -d '{"handle": "jean-michel", "age": 18}' ~~~ Voir son contenu.