Les alternatives ou compléments à Logstash
Je vous ai suffisamment parlé de tout le bien que je pense de Logstash :
- Collectd, Logstash, Kibana: Alternative possible en supervision ?
- Introduction à ELK
- Faire suivre les messages Rsyslog vers Logstash
pour ne pas vous présenter un peu ses compagnons, qu’ils soient des compléments ou des alternatives à celui-ci. Voilà une compilation de ma liste personnelle.
Les « syslog like »
Ce sont des logiciels qui peuvent très bien fonctionner comme client au protocole syslog de Logstash mais qu’ils seraient dommage de ne confiner qu’à ce rôle. Il sont tous trois bien plus que cela.
NXlog
NXlog est un collecteur et forwarder de fichier journaux universel fonctionnant sur tous types de plates-formes (BSD, Unix, Linux, Windows, Android) et compatibles avec de multiples sources et protocoles (Syslog, Windows EventLog, Graylog2 GELF, XML, JSON, CSV…).
Celui là est clairement mon client de type syslog préféré sur Windows. Il a pour moi remplacé Snare dans ce rôle et est beaucoup plus complet et puissant, moins bridé aussi. Je l’ai également utilisé comme cache devant un serveur Logstash à une époque où celui-ci était très lent au démarrage.
Syslog NG
Syslog NG a longtemps été le démon fourni en standard sur les principales distributions Linux. Il a beaucoup évolué ces dernières années, et sait se connecter à RabbitMQ, ZeroMQ, MySQL, POstgreSQL, MongoDB et même Oracle… Heu, c’est quoi Oracle !
Il me semble que Syslog NG est plutôt en perte de vitesse ces derniers temps au profit du suivant de cette liste. C’est une impression toute personnelle, non basée sur des faits tangibles.
Rsyslog
Rsyslog est le système rapide comme l’éclair pour le traitement des journaux. C’est eux qui le disent !
Il offre haute performance, sécurité et conception modulaire. Il a commencé comme un démon syslog classique mais est devenu au fil du temps devenu une sorte de couteau suisse du traitement de fichiers journaux. C’est désormais le démon founri en standard sur la majorité des distributions Linux. À ce rythme, il devrait rapidement se trouver dans la catégorie suivante que voici.
Les alternatives
Plus ambitieux qu’un simple client, même si la frontière est parfois ténue, ils sont des alternatives possibles à un setup basé sur Logstash en brique centrale.
Fluentd
Fluentd est un collecteur de données Open Source, qui vous permet d’unifier la collecte et la consommation de données afin d’en tirer une meilleure compréhension et utilisation.
Il possède des fonctionnalités assez similaires en termes d’input, filtres, routage et sorties que Logstash. Presque une affaire de goût et couleurs, et ça; ça ne ne se discute pas!
Graylog2
Graylog2 est le cousin le plus proche de Logstash. Il offre, à son instar, une solution complète de traitement et centralisation de messages de type fichiers journaux. Par complète, il faut comprendre, collecte, stockage et interface. Il possède entre autres son propre protocole GELF « Graylog Extended Log Format » qui est aujourd’hui reconnu par la quasi totalité des autres outils de la sphère gestion de logs. Il stocke les données dans MongoDB Elasticsearch.
J’avoue que depuis que j’ai choisi Logstash à titre personnel, c’est une solution que je suis moins mais qui mérite que vous la preniez en compte si votre choix n’est pas arrêté.
Flume
Flume est un service distribué et fiable de collecte, d’agrégation et de transport pour de grandes quantités de données de type fichiers journaux. Il dispose d’une architecture simple et flexible basée sur le streaming des flux de données. Il est robuste et tolérant aux pannes. Il utilise un modèle de données extensible simple.
Heka
Le dernier de cette catégorie est je crois le plus jeune mais certainement pas le moins ambitieux. Et avec l’équipe Mozilla aux manettes, ça risque de pousser très fort… Les logs bien sûr… OK, je sors !
Le système ne se limite pas aux logs et amibitionne de devenir une solution complète de monitoring. De l’aveu même des développeurs, ils ont pioché pas mal d’idées dans Logstash.
Heka est un logiciel de traitement de flux Open Source développé par Mozilla. C’est un véritable couteau suisse pour le traitement de données, utile dans une grande variété de cas différents, tels que:
- Chargement et journaux d’analyse des fichiers d’un système de fichiers.
- Accepte les données de type statsd
- Stockage vers des bases de données de séries chronologiques comme Graphite ou InfluxDB.
- Lancement de processus externes pour collecter les données système local.
- Effectuer une analyse en temps réel, la représentation graphique et la détection des anomalies sur les données circulant à travers le pipeline Heka.
- Envoi des données par l’intermédiaire d’un transport extérieur (comme AMQP) ou directement (TCP).
Les compléments
Ils ne rentrent pas, à mon sens; dans les deux catégories ci-dessus mais permettent d’étendre le champ des possibles.
Log4…
Le plus connu de la famille est bien sûr Log4j, système de journalisation de référence dans la galaxie Java mais il n’est plus le seul et vous pouvez trouver désormais un Log4php, un Log4net…
SEC
Celui-là fait parti de ma « Log Toolbox » depuis des années et m’a bien souvent permis de répondre à des problématiques complexes ou tordues… Choisissez l’adjectif qui convient ! Son domaine de prédilection, c’est la corrélation et en tant que tel, il peut s’intercaler dans toutes chaîne de traitement de fichiers journaux facilement. J’ai écrit il y a déjà quelques temps un exemple de setup avec Graylog2
Log.io
Que serait une liste de ce genre de nos jours sans un représentant NodeJS. Log.io mérite sa place ici comme client-serveur et interface temps réel pour par exemple des logs de serveurs Web. Tout ce qui se présente dans vos logs Apache et cie est directement « poussé » dans votre navigateur via socket.io.
Pas d’embarras, que du choix
Le traitement des fichiers journaux a longtemps été le parent pauvre du monitoring Open Source. Cette liste montre que ce passé est désormais révolu. Désormais, c’est de traitement de flux dont il faut parler, de routage de données plus que gestion des logs. C’est vraiment la tendance.
Et puis surtout, ces différents outils permettent aujourd’hui de traiter d’énormes volumes de données; ce qui n’était pas le cas encore récemment.
Vous avez donc désormais tout ce qu’il faut pour pouvoir construire une solution de traitements, centralisation de fichiers journaux basée sur l’un ou plusieurs de ces logiciels, tous interopérables entre eux. C’est beau l’ouverture !