Graylog vs ELK

Que vous soyez développeur ou administrateur réseaux, vous aurez tôt ou tard besoin de consulter les logs de production ce qui n’est pas toujours facile selon votre infrastructure. Pour éviter ces désagréments, il est conseillé de centraliser les logs des serveurs et/ou applicatifs sur un système central. Il sera ainsi aisé de rechercher des logs depuis une interface web et même d’être alerté en cas d’erreurs importantes.

Il existe de nombreuses solutions payantes : des outils comme Splunk qui peuvent s’installer dans votre architecture ou des offres dans le cloud tel que Loggly. Les tarifs sont variables et pour les offres cloud, il faut veiller à ne pas enfreindre les règles de sécurités en place dans votre société (une norme PCI-DSS par exemple).

Du côté des offres open-source, 2 produits sortent du lot : ELK (Elasticsearch / Logstash / Kibana) et Graylog.

 

ELK

ELK est une offre composée de 3 outils :

  • Elasticsearch qui est un moteur de recherche orienté document facilement scalable pour répondre à de gros volumes
  • Logstash qui permet de configurer des flux d’entrées et des flux de sorties (un fichier lu et envoyé vers Elasticsearch par exemple)
  • Kibana qui est une IHM permettant de consulter les documents d’une base Elasticsearch et d’en sortir des tableaux de bords

Ces 3 produits sont maintenus par la société Elastic.

Cette solution est très simple à mettre en oeuvre avec des outils qui se prennent en main rapidement. Logstash permet, grâce à de nombreux plugins, d’intégrer des logs en provenance de fichiers, d’un rabbitMQ, d’un syslog, … Kibana permet de créer des tableaux de bords très complet avec de nombreux widgets : camembert, graphique, mappemonde, …

kibana4_logmanagement_dashboard

Kibana ne gère cependant pas d’authentification utilisateur. N’importe quel utilisateur peut donc accéder à l’ensemble des logs enregistrés dans le cluster Elasticsearch. La société Elastic propose pour cela un autre outil « Shield » mais qui est payant.

De base, il n’est pas possible de recevoir des alertes sur des conditions précises. Il serait utile par exemple d’être prévenu lorsqu’il y a des tentatives de connexions en erreur sur un serveur ou qu’une base de données n’est plus joignable pour un applicatif. Là aussi, un outil peut être utilisé « Watcher » mais il est soumis à l’achat d’une licence.

Enfin, vous devrez gérer l’épuration des index Elasticsearch par vous même.

 

Graylog

Graylog est une solution composée de 3 briques :

  • Elasticsearch qui est le moteur d’indexation des documents
  • Mongodb qui est une base NoSQL permettant de stocker la configuration et quelques autres paramètres
  • Graylog-server et graylog-web-interface pour la collecte et la visualisation des logs (ces 2 outils vont fusionner dans la prochaine version)

Graylog permet d’intégrer des logs au format syslog, des messages en provenance d’un Rabbit MQ mais également des documents au format GELF. Le GELF est une sorte de syslog améliorée contenant des meta-datas et qui n’a pas de limite de taille sur la longueur du message. Les logs sont traités par la partie serveur et enregistrées dans Elasticsearch.

La partie IHM vous permet d’effectuer des recherches et de configurer :

  • des streams : un stream permet de catégoriser vos logs pour mieux les retrouver. En spécifiant des critères sur la source, le niveau d’erreur, le message, … un log pourra être stocké dans un ou plusieurs streams.
  • des alertes : sur chaque stream, il est possible de définir des alertes afin d’être prévenu s’il y a plus de 10 logs d’erreur sur les 5 dernières minutes par exemple. L’alerte peut être de différents types : par mail, par message slack, via un appel de web-services, …
  • des tableaux de bords : vous pouvez créer des widgets et les intégrer à des tableaux de bords. A ce jour, il existe beaucoup moins de widgets que sur Kibana, mais des nouveautés arrivent avec la prochaine version de Graylog
  • des utilisateurs et des droits d’accès : l’accès à l’interface web nécessite un login et un mot de passe. L’outil propose également une gestion de droit complète permettant de définir les accès aux streams et dashboard pour chaque utilisateur. Il est même possible de brancher Graylog avec le LDAP de votre entreprise

Dans la configuration de la partie serveur, vous pouvez définir une politique de rétention afin que les logs de plus de 6 mois soit automatiquement supprimés par exemple.

graylog_streams

graylog_dashboard_exemple

 

Dans une startup ou une entreprise de petite taille, la stack ELK sera rapidement mise en place et suivant les besoins, il sera possible de la faire évoluer avec les produits proposés par la société Elastic (Watcher, Shield, …) ou de développer ses propres outils pour gérer les alertes par exemple.

Dès lors qu’une entreprise aura besoin d’une authentification pour les utilisateurs et d’alertes pour pouvoir agir rapidement, la solution Graylog sera la plus à même de répondre au besoin.

N’hésitez pas à tester les 2 solutions pour vous faire une idée et voir ce qui répond le mieux à vos besoins.

2 thoughts on “Graylog vs ELK

  1. Abdelkarim Karoui

    Un grand merci pour cette comparaison 🙂

  2. Belle comparaison… sans prendre (trop parti)…

    Merci beaucoup.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *