Elastic Stack, anciennement ELK (Elasticsearch, Logstash, Kibana), est une suite d’outils qui ensemble permettent de monitorer des serveurs.
Beats et ses sous-modules sont chargés de récupérer les logs (Filebeat) et informations machine (CPU, RAM, Disk) avec Metricbeat. Ces agents sont à installer sur les serveurs clients.
Logstash collecte ces données, les transforme si besoin et les insère dans Elasticsearch, qui stock et index toutes les données.
Kibana est responsable de l’interface, permettant de créer des dashboards customisés, et de chercher des informations dans tout le flow de data.
Le module complémentaire X-Pack permet d’ajouter une couche intéressante de sécurité et d’alerting, il faudra toutefois s’acquitter d’une licence.
Voici un schéma représentatif :
Un autre, provenant d’une slide Elastic :
Docker
Il est possible de monitorer des démons Docker à l’aide d’un Beat custom.
Commandes utiles
Lister les indices de recherche Elasticsearch
curl http://localhost:9200/_cat/indices
Lister des résultats Metricbeat
curl -XGET 'http://localhost:9200/metricbeat-*/_search?pretty'
Purge des données
Le disque de votre serveur Elastic Stack va vite se remplir s’il récupère des logs et metrics de plusieurs serveurs.
Afin d’avoir une purge régulière des data, il est possible d’utiliser Elasticsearch Curator, qui se configure via un fichier action_curator.yml
actions:
1:
action: delete_indices
description: "Supprime les anciens indices"
options:
timeout_override:
continue_if_exception: False
disable_action: False
filters:
- filtertype: kibana
exclude: True
- filtertype: age
source: creation_date
direction: older
unit: days
unit_count: 30
exclude: False
Une fois cet utilitaire placé dans une CRON quotidienne, il supprimera les indices Elasticsearch de plus de 30 jours, en ignorant les indices kibana afin de pas supprimer les dashboards.