22
0
Fork 0
wiki/HowtoELK.md

3.9 KiB

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 : 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 base

# vim /etc/elasticsearch/elasticsearch.yml
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

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

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).