From 52d5970c2f9ab2d0a7b72152232b2abe64d2759f Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Tue, 20 Sep 2016 13:12:19 +0200 Subject: [PATCH] Ajout de la doc ELK --- HowtoELK.md | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 HowtoELK.md diff --git a/HowtoELK.md b/HowtoELK.md new file mode 100644 index 00000000..80e00859 --- /dev/null +++ b/HowtoELK.md @@ -0,0 +1,141 @@ +--- +title: Howto Installation de la suite ELK +--- + +Cette documentation décrit l'installation et la configuration d'une stack ELK sur un serveur installé en Debian 8. + +**ELK** = Elasticsearch + Logstash + Kibana + +# Elasticsearch + +Documentation officielle : https://www.elastic.co/guide/en/elasticsearch/reference/2.4/index.html + +Elasticsearch est un serveur de base de donnée qui dispose d'une interface REST HTTP. C'est écrit en Java. + +## installation + +~~~ +# 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 +~~~ + +## Configuration de Elasticsearch dans + +~~~ +# vim /etc/elasticsearch/elasticsearch.yml +~~~ + +~~~{.yaml} +cluster.name: _cluster_name_ +node.name: _node_name_ +network.host: 0.0.0.0 +~~~ + +On vérifie qu'on a bien un Java >= 1.7 activée + +~~~ +# java -version +~~~ + +Plus détails sur la bonne configuration d'Elasticsearch sont sur [HowtoElasticSearch#Configuration cette page dédiée] + +## Installation de quelques plugins + +~~~ +# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head +# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf +# chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/plugins/ +~~~ + +~~~ +# cd /etc; git add -A; git commit -m "Install Elasticsearch" +~~~ + +## Démarrage + +~~~ +# systemctl start elasticsearch +~~~ + +## Utile + +* les logs sont dans `/var/log/elasticsearch/_cluster_name_.log` +* l'interface **Head** est disponible sur http://127.0.0.1:9200/_plugin/head/ +* l'interface **Kopf** est disponible sur http://127.0.0.1:9200/_plugin/kopf/ + +# Logstash + +Logstash est un service qui récupère des données depuis des sources variées (ports TCP/UDP, fichiers…), les transforme et les renvois vers des sorties variées (fichiers, Elasticsearch, syslog…). +C'est un logiciel écrit en Ruby, qui tourne sur une JVM (grace à JRuby). + +Documentation officielle : https://www.elastic.co/guide/en/logstash/2.4/index.html + +## Installation + +~~~ +# 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" +~~~ + +Dans `/etc/default/logstash` il faut penser à ajuster la ram allouée. + +À ce stade, aucun "pipeline" Logstash n'est configuré. +Voir https://www.elastic.co/guide/en/logstash/current/configuration.html + +## Démarrage + +~~~ +# systemctl start logstash +~~~ + +# Kibana + +Kibana est une interface de visualisation des donnes stockées dans Elasticsearch. +C'est un logiciel écrit principalement en NodeJS, où tout est embarqué dans un processus principal. + +Documentation officielle : https://www.elastic.co/guide/en/kibana/4.6/index.html + +## Installation + +~~~ +# 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 +# /opt/kibana/bin/kibana plugin --install elastic/sense +# chown -R kibana: /opt/kibana +~~~ + +~~~ +# vim /etc/logrotate.d/kibana +/var/log/kibana/*.log { + daily + rotate 7 + copytruncate + compress + delaycompress + missingok + notifempty +} +~~~ + +~~~ +# cd /etc; git add -A; git commit -m "Install Kibana" +~~~ + +## Démarrage + +~~~ +# systemctl start kibana +~~~ + +## Utile + +* l'interface principale est disponible sur http://127.0.0.1:5601/ +* l'interface **Sense** est disponible sur http://127.0.0.1:5601/app/sense + + +# Conseils + +* placer Elasticsearch/Logstash/Kibana derrière un proxy (Nginx ou HAProxy) si on souhaite utiliser une authentification ; +* utiliser des certificats SSL (nativement géré par les logiciels) pour que les données circulent de manière chiffrée (surtout entre filebeat et logstash, car ça passe par Internet).