--- title: Howto ELK (installation de la suite) --- 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 : 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 base ~~~ # 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 ~~~{.bash} $ 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 : ## 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 ## 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 : ## 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 * l'interface **Sense** est disponible sur # 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).