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 -
# 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
@ -47,17 +47,13 @@ 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
@ -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
# apt update && apt install logstash
# cd /etc; git add -A; git commit -m "Install Logstash"
# apt install logstash
~~~
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
~~~
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
@ -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
# apt update && apt install kibana
# apt install kibana
# /opt/kibana/bin/kibana plugin --install elastic/sense
# 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
~~~
# 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

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
# wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
# apt update
# apt install elasticsearch openjdk-7-jre
# aptitude install elasticsearch openjdk-7-jre
~~~
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
@ -31,10 +36,10 @@ Pour que le démon soit géré automatiquement par systemd :
## 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`
~~~{.diff}
~~~
-rootLogger: ${es.logger.level}, console, file
+rootLogger: ${es.logger.level}, file
~~~
@ -68,14 +73,12 @@ Assurez-vous de créer le répertoire :
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
_Paragraphe à revoir car l'auto-découverte et le multicast ont changé._
Exemples avec 3 instances nommés **elastic1**, **elastic2** et **elastic3**.
Exemples avec 3 instances nommés **elastic1**, **elastic2** et **elastic3**. Avec le mode d'auto découverte.
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'
~~~
Si le master passe en DOWN, un autre est élu.
~~~
[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
@ -153,46 +158,40 @@ discovery.zen.ping.unicast.hosts: ["elastic2", "elastic3"]
## 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
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
# chown elasticsearch: /home/backup-elasticsearch
$ curl -s -X PUT 'localhost:9200/_settings' -d '{"index.translog.disable_flush": true}' >/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
~~~
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` :
Une sauvegarde plus avancée est d'utiliser les snaphosts, un exemple :
~~~
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** :
~~~
# 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".
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 !
## Principe de fonctionnement
@ -232,7 +231,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": {
@ -251,7 +250,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.