• abdelghanimerzouk

Découverte de la stack Elastic

Dans cet article nous allons découvrir le fonctionnement des différents composants de la stack Elastic (les slides de la présentation complète sont ci dessous).

ELK_AME_OXXEO
.pdf
PDF • 2.64MB

Elastic Stack ELK ou elastic stack, est une suite construite sur une fondation open source, elle permet de rechercher, analyser et visualiser, en toute fiabilité et sécurité, ainsi qu’en temps réel, des données issues de n’importe quelle source et sous n’importe quel format. La suite elastic est composée de la pile ELK (qui combine Elasticsearch, Logstash et Kibana ) et la famille d’expéditeurs de données “Beats” :


1- ELK (Elasticsearch, Logstash et Kibana)


1.1 - Elasticsearch


Il permet via une API REST d’indexer et d’interroger facilement à l’aide de requêtes au format JSON les documents stockés dans une base NoSQL. Cette base est adaptée pour traiter de très gros volumes de données suivant des critères d’indexation complètement paramétrables afin d’optimiser les recherches.


1.2 - Logstash


Collecte et traite (parse et filtre) en parallèle des données provenant d’une multitude de sources, puis les agrège et les envoie vers Elasticsearch.

Son fichier de configuration est composé de 3 parties :

  • Entrées : données de toutes formes, tailles et sources

  • Filtres : via une bibliothèque de filtres très riche, Logstash permet d'analyser et transformer les données afin de booster l'analyse.

  • Sorties: choisir l'entrepôt (Elasticsearch) et envoyer les données



1.3 - Kibana


IHM de visualisation et de gestion permettant de consulter et d'explorer via des dashboards interactifs, paramétrables et entièrement personnalisables, des les données stockées dans Elasticsearch .

Autrement dit, c'est une interface interagissant avec Elasticsearch pour mettre en forme les données via : Des graphiques, histogramme, carte géo.. etc.


2 - Beats


Beats est une plate-forme regroupant des solutions légères de transfert qui envoient des données provenant de toutes les machines vers Logstash ou Elasticsearch.

Ces expéditeurs légers permettent de centraliser les données dans Elasticsearch. Et, pour davantage de puissance de traitement, les Beats peuvent également transférer ces données vers Logstash, qui se chargera de les transformer et de les analyser.



Il existe plus de 93 agents Beats. Parmi les plus connus, nous pouvons trouver ces 3 exemples :

  • Metricbeat : Agent de transfert léger conçu pour les indicateurs (un tas de métriques, notamment système ... ) qui

  • interroge périodiquement les API s de surveillance des différents services

  • collecte les données de performances / les stats dans des documents

  • Les expédier à Logstash ou Elasticsearch


  • Filebeat : Agent de transfert léger conçu pour les logs


  • Heartbeat : Agent de transfert léger conçu pour assurer le monitoring de la disponibilité.

  • Il exécute des contrôles périodiques pour vérifier si le point de terminaison (HTTP, TCP ou ICMP ) est disponible ou indisponible.

  • De là, il rapporte cette information à Elasticsearch, accompagnée d’autres indicateurs utiles.

  • Cette information est automatiquement affichée dans des tableaux de bord Kibana pré-conçus pour le monitoring de la disponibilité.


En résumé, voici le schéma général de la stack :




3 - Bonus


3.1 - Curator

Le Curator est outil indépendant d’Elasticsearch qui permet de réaliser des opérations diverses sur un cluster, le plus souvent déclenchées par des tâches périodiques cron.


Il a 2 fichiers importants :

  • un fichier de configuration qui contient toutes les informations pour se connecter au cluster Elasticsearch


  • un fichier d’action contenant les filtres permettant de déterminer quels index sont concernés (motif sur le nom, âge, taille ou nombre de documents…), puis une série d’actions (compression, déplacement, optimisation..)


Voici un exemple d'action pratique à faire avec Curator (Suppression d'index Elasticsearch) :


actions:
  1:
    action: delete_indices
    description: >-
      Supprimer les index de plus de 15 jours (en fonction du nom)
      commençant par le prefixe "oxxeo_logstash" en ignorant les
      erreurs si le filtre n'aboutit pas un résultat.
    options:
      ignore_empty_list: True
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: oxxeo_logstash-
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 15

Utilité --> ça permettra de définir une stratégie de rétention de données dans l'Elasticsearch

Curator : https://www.elastic.co/guide/en/elasticsearch/client/curator/current/index.html



3.2 - ElastAlert


ElastAlert est un framework gratuit, développé par la société Yelp.


  • Représente une alternative aux outils de Reporting et Alerting fournis par Elastic dans la partie payante X-pack.

  • Il permet de remonter des alertes (anomalies, pics … )

  • Fonctionne avec toutes les versions d’Elasticsearch

  • Les différents types d'alertes sont :

  • Email

  • JIRA

  • OpsGenie

  • Commands

  • HipChat

  • MS Teams

  • Slack

  • Telegram

  • GoogleChat

  • AWS SNS

  • VictorOps

  • PagerDuty

  • PagerTree

  • Exotel

  • Twilio

  • Gitter

  • Line Notify

  • Zabbix



Conclusion


On peut dire que les logs sont des éléments indispensables à toutes les applications pour comprendre le fonctionnement, analyser, diagnostiquer et intervenir en conséquence.

Un des moyens les plus simples d’avoir une gestion proactive du SI est de vérifier régulièrement ces logs et réagir sur une information qui indique une dégradation du système ou de l’application.

La stack Elastic peut apporter une excellente solution de suivi et de monitoring.




NB : cet article est inspiré et développé, en partie, à partir des données contenues dans la documentation officielle https://www.elastic.co/guide/index.html

Consultation Web

Blog