retrait de mentions à Git et apt update

This commit is contained in:
Jérémy Lecour 2016-09-28 11:41:18 +02:00 committed by Jérémy Lecour
parent 6c1393c3b2
commit abc497e1d3
2 changed files with 41 additions and 51 deletions

View file

@ -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 - # 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 # echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | tee -a /etc/apt/sources.list.d/elastic.list
# apt update && apt install elasticsearch openjdk-7-jre openjdk-7-jre-headless # apt install elasticsearch openjdk-7-jre openjdk-7-jre-headless
~~~ ~~~
## Configuration de base ## Configuration de base
@ -47,17 +47,13 @@ Plus détails sur la bonne configuration d'Elasticsearch sont sur [HowtoElasticS
# chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/plugins/ # chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/plugins/
~~~ ~~~
~~~
# cd /etc; git add -A; git commit -m "Install Elasticsearch"
~~~
## Démarrage ## Démarrage
~~~ ~~~
# systemctl start elasticsearch # 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 # systemctl enable elasticsearch
@ -80,8 +76,7 @@ Documentation officielle : <https://www.elastic.co/guide/en/logstash/2.4/index.h
~~~ ~~~
# echo "deb http://packages.elastic.co/logstash/2.4/debian stable main" | tee -a /etc/apt/sources.list.d/elastic.list # echo "deb http://packages.elastic.co/logstash/2.4/debian stable main" | tee -a /etc/apt/sources.list.d/elastic.list
# apt update && apt install logstash # apt install logstash
# cd /etc; git add -A; git commit -m "Install Logstash"
~~~ ~~~
Dans `/etc/default/logstash` il faut penser à ajuster la ram allouée. Dans `/etc/default/logstash` il faut penser à ajuster la ram allouée.
@ -95,7 +90,7 @@ Voir <https://www.elastic.co/guide/en/logstash/current/configuration.html>
# systemctl start logstash # 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 # systemctl enable logstash
@ -112,7 +107,7 @@ Documentation officielle : <https://www.elastic.co/guide/en/kibana/4.6/index.htm
~~~ ~~~
# echo "deb http://packages.elastic.co/kibana/4.6/debian stable main" | tee -a /etc/apt/sources.list.d/elastic.list # echo "deb http://packages.elastic.co/kibana/4.6/debian stable main" | tee -a /etc/apt/sources.list.d/elastic.list
# apt update && apt install kibana # apt install kibana
# /opt/kibana/bin/kibana plugin --install elastic/sense # /opt/kibana/bin/kibana plugin --install elastic/sense
# chown -R kibana: /opt/kibana # chown -R kibana: /opt/kibana
~~~ ~~~
@ -130,17 +125,13 @@ Documentation officielle : <https://www.elastic.co/guide/en/kibana/4.6/index.htm
} }
~~~ ~~~
~~~
# cd /etc; git add -A; git commit -m "Install Kibana"
~~~
## Démarrage ## Démarrage
~~~ ~~~
# systemctl start kibana # systemctl start kibana
~~~ ~~~
Pour que le démon soit géré automatiquement par systemd : Pour que le démon soit géré automatiquement par SystemD :
~~~ ~~~
# systemctl enable kibana # systemctl enable kibana

View file

@ -17,13 +17,18 @@ Nous utilisons les paquets Debian distribués par Elasticsearch, les paquets off
~~~ ~~~
# echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list # echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
# wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add - # wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
# apt update # aptitude install elasticsearch openjdk-7-jre
# apt install elasticsearch openjdk-7-jre
~~~ ~~~
Il faut penser à mettre `http://packages.elastic.co/.*` dans la whitelist de Squid si nécessaire. Il faut penser à mettre `http://packages.elastic.co/.*` dans la whitelist de Squid si nécessaire.
Pour que le démon soit géré automatiquement par systemd : Pour que le démon soit géré automatiquement par SysV init :
~~~
# update-rc.d elasticsearch defaults 95 10
~~~
Pour systemd :
~~~ ~~~
# systemctl enable elasticsearch # systemctl enable elasticsearch
@ -31,10 +36,10 @@ Pour que le démon soit géré automatiquement par systemd :
## Configuration ## Configuration
Il est conseillé de ne pas activer le logging stdout vers la console, mais de conserver seulement vers les logs. (`/var/log/elasticsearch`). Il est conseillé de ne pas activer le logging stdout vers la console. Mais de conserver seulement vers les logs. (/var/log/elasticsearch).
Dans `/etc/elasticsearch/logging.yml` Dans `/etc/elasticsearch/logging.yml`
~~~{.diff} ~~~
-rootLogger: ${es.logger.level}, console, file -rootLogger: ${es.logger.level}, console, file
+rootLogger: ${es.logger.level}, file +rootLogger: ${es.logger.level}, file
~~~ ~~~
@ -68,14 +73,12 @@ Assurez-vous de créer le répertoire :
https://github.com/lmenezes/elasticsearch-kopf https://github.com/lmenezes/elasticsearch-kopf
~~~ ~~~
# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
~~~ ~~~
## Mode cluster ## Mode cluster
_Paragraphe à revoir car l'auto-découverte et le multicast ont changé._ Exemples avec 3 instances nommés **elastic1**, **elastic2** et **elastic3**. Avec le mode d'auto découverte.
Exemples avec 3 instances nommés **elastic1**, **elastic2** et **elastic3**.
Spécifier un nom de cluster dans `elasticsearch.yml` sur chaque machine. Spécifier un nom de cluster dans `elasticsearch.yml` sur chaque machine.
@ -130,8 +133,10 @@ On peut consulter le status en faisant des requêtes de types RESTFul. :
curl 'http://localhost:9200/_nodes?pretty=true' curl 'http://localhost:9200/_nodes?pretty=true'
~~~ ~~~
Si le master passe en DOWN, un autre est élu. Si le master passe en DOWN, un autre est élu.
~~~ ~~~
[2013-10-03 16:15:53,892][INFO ][discovery.zen ] [elastic2] master_le [2013-10-03 16:15:53,892][INFO ][discovery.zen ] [elastic2] master_le
ft [[elastic1][3tn7uHSHR8-donXO6JXFRA][inet[/192.168.4.201:9300]]], reason [shut ft [[elastic1][3tn7uHSHR8-donXO6JXFRA][inet[/192.168.4.201:9300]]], reason [shut
@ -153,46 +158,40 @@ discovery.zen.ping.unicast.hosts: ["elastic2", "elastic3"]
## Check Nagios ## Check Nagios
On check sur la page `/_cat/health` si le status n'est pas en **red**. On check sur la page `/_cluster/health` si le status n'est pas en **red**.
~~~ ~~~
/usr/lib/nagios/plugins/check_http -I 127.0.0.1 -u /_cat/health?h=st -p 9200 -r 'red' --invert-regex /usr/lib/nagios/plugins/check_http -H localhost -u /_cluster/health -p 9200 -r '"status":"red",' --invert-regex
~~~ ~~~
## Backup ## Backup
La sauvegarde se fait par snapshots, dans un ou plusiers dépôts. Une sauvegarde simple peut être de sauvegarder `/var/lib/elasticsearch/`
On crée le dépôt sur le filesystem : Il est néanmoins conseillé de désactiver/flusher les translogs avant la sauvegarde, puis de les réactiver :
~~~ ~~~
# mkdir /home/backup-elasticsearch $ curl -s -X PUT 'localhost:9200/_settings' -d '{"index.translog.disable_flush": true}' >/dev/null
# chown elasticsearch: /home/backup-elasticsearch $ 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
~~~ ~~~
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. Une sauvegarde plus avancée est d'utiliser les snaphosts, un exemple :
Le dépôt doit être référencé dans la configuration `/etc/elasticsearch/elasticsearch.yml` :
~~~ ~~~
path.repo: ["/home/backup-elasticsearch"] $ 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
~~~ ~~~
Après restart d'Elasticsearch on lui fait créer le snapshot **evobackup** : 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 !
~~~
# 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 ## Principe de fonctionnement
@ -232,7 +231,7 @@ curl -X PUT localhost:9200/planet
Créer un type de donnée nommé « hacker ». 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": { "hacker": {
"properties": { "properties": {
@ -251,7 +250,7 @@ curl -X PUT localhost:9200/planet/hacker/_mapping -d '
Créer un document de type hacker avec l'ID 1. 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. Voir son contenu.