retrait de mentions à Git et apt update
This commit is contained in:
parent
6c1393c3b2
commit
abc497e1d3
21
HowtoELK.md
21
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 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
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue