Table des matières

Présentation

Le stack ELK (pour Elasticsearch, Kibana, Logstash), se divise en plusieurs services.

Elasticsearch

Tout d’abord, le plus important, le service central, est Elasticsearch (ES). Ce service est tout simplement une base de données time series qui va nous permettre à la fois de stoquer les données relatives à l’infrastructure (métriques, logs, …), et aussi des données relative au fonctionnement des autres services (plugins, dashboard de kibana, …).

Beats

Ensuite, Elasticsearch utilise des beats pour lui transmettre les informations sur lequel il travail. Les beats sont donc tout simplement des daemons sur chaques machines de l’infrastructure qui permettent de remonter les logs et les métriques. Deux beats sont proposé par ES de base, Filebeat et Metricbeat. Le premier gère la transmission de logs, et le second la transmission de métrique. Pour l’instant, nous avons fait le choix de n’utiliser que Metricbeat. L’ajout de Filebeat peut se faire simplement.

Logstash


Actuellement non utilisé


Logstash, lui, permet la transformation des logs envoyés par Filebeat. Au lieu d’envoyer les logs directement à ES, on va les passer à Logstash, qui va se charger de les transformer, afin de faire en sorte de remplir chaque champs de la base de donnée, à partir de la chaine de caractère envoyé, et va ensuite transmettre cela à ES. Nous ne l’utilisons pas pour le moment, tout comme Filebeat.

Elastalert

Elastalert est le module ajouté par nos soin permettant de gèrer l’envoie d’alert en fonction des informations présentes dans elasticsearch. Il utilise une base de donnée différente d’elasticsearch, pour stocker ses règles. C’est en fait un script python qui se lance à une fréquence définie et va consulter ses règles, voir si les données dans ES correspondent aux règles défini, pour savoir s’il y a lieux de lever une alerte.

Kibana

Enfin, Kibana est le client web permettant de visualiser les données d’ES. Il permet de créer des visualisations, des dashboards, il permet aussi de créer des alertes avec le plugin elastalert pour kibana.