Blog de Jérôme Prudent
Développeur ...

Filebeat

En une phrase : Filebeat collecte des ligne de texte et les publie.

Traduction : Filebeat évoque un électrocardiogramme pour fichier. Je le traduirais électrofichiogramme.

Il entre dans la catégorie des log shipper et log management tool. Il concurrence Logstash sans le remplacer totalement, et Fluentd. Il s’intègre dans la suite ELK.

Filebeat est un projet open-source écrit en Go. Filebeat est populaire.

Filebeat publie sur Elasticsearch. Mais il peut aussi écrire dans Kafka ou Redis. Filebeat peut aussi s’interfacer avec Logstash, pour transformer les logs.

Vocabulaire

Généralités

Filebeat est un démon.

Filebeat gère un état qui tracke chaque fichier. Au redémarrage, Filebeat lit le dernier état et reprend là où il s’était arrêté.

Filebeat garantit faiblement que chaque évênement a été envoyé au moins une fois. Faiblement car il y a des cas où suite à la manipulation de fichiers sur disque, certaines lignes ne sont pas traitées.

Inputs

Filebeat harveste généralement des fichiers de logs, mais il peut harvester plein d’autres choses (kafka, TCP, …)

Chaque input peut filter ou enrichir la donnée via des processors.

Filebeat a une fonctionnalité d’autodiscovery qui écoute des évênements système et peut créer un nouvel input (ou un module) en réaction à cet évênement. Par exemple détecter qu’un nouveau conteneur Docker a été lancé et l’harvester automagiquement.

Modules

Un module contient une configuration d’input prête à l’emploi.

Par exemple le module Nginx comprend son format de log; l’url et le status de la requête HTTP sont indexés dans des champs différents.

Elasticsearch

Filebeat écrit les logs dans un index. Il a une configuration par défaut qui crée l’index dont le cycle de vie est géré par Elasticsearch (Index Lifecycle Management). Il est possible de tout personnaliser.

Kibana

Les logs stockés dans Elasticsearch sont consultables dans Kibana.