RousselTMLEARNING

Observabilité

Fluent Bit : pipeline, configuration et plugins essentiels

Les concepts de Fluent Bit (inputs, parsers, filters, tags et match, buffer, outputs), la configuration YAML, et les plugins indispensables : tail, systemd, kubernetes, grep, modify, loki, es.

1. Le pipeline #

Six étapes.

Concepts #

Pipeline Fluent Bit
Le routage se fait par tags : chaque output choisit les enregistrements dont le tag correspond à son match.
ÉtapeRôle
InputLit les données et leur attribue un tag (par exemple kube.*)
ParserTransforme une ligne brute en enregistrement structuré
FilterEnrichit, modifie ou supprime des enregistrements
BufferStocke en mémoire ou sur disque avant l'envoi
RouterAssocie tags et outputs via match
OutputEnvoie vers la destination, avec réessais

2. La configuration YAML #

Le format recommandé.

Exemple complet #

service:
  flush: 1
  log_level: info
  http_server: on          # métriques et santé sur le port 2020
  http_listen: 0.0.0.0
  http_port: 2020
  storage.path: /var/lib/fluent-bit/buffer

parsers:
  - name: app_json
    format: json
    time_key: ts
    time_format: '%Y-%m-%dT%H:%M:%S.%LZ'

pipeline:
  inputs:
    - name: tail
      path: /var/log/app/*.log
      tag: app.*
      parser: app_json
      db: /var/lib/fluent-bit/tail.db     # positions de lecture
      mem_buf_limit: 50MB
      storage.type: filesystem
  filters:
    - name: grep
      match: app.*
      exclude: path ^/health
    - name: modify
      match: app.*
      add: [env production]
      remove: password
  outputs:
    - name: loki
      match: app.*
      host: loki
      port: 3100
      labels: job=fluent-bit, env=production
    - name: es
      match: app.*
      host: elasticsearch
      port: 9200
      logstash_format: on
      suppress_type_name: on
fluent-bit -c fluent-bit.yaml
fluent-bit -c fluent-bit.yaml --dry-run   # valider sans démarrer
À savoir : L'ancien format « classique » (sections [INPUT], [OUTPUT]) reste pris en charge ; le YAML est recommandé pour les nouvelles installations.

3. Plugins essentiels #

Ceux qu'on utilise partout.

Sélection #

TypePluginUsage
InputtailFichiers (dont les logs de conteneurs)
InputsystemdJournal systemd
Inputforward, opentelemetryRéception depuis Fluentd/Fluent Bit ou en OTLP
FilterkubernetesAjoute namespace, pod, labels, annotations
Filtergrep, modify, nestFiltrer, renommer, restructurer
FilterluaTransformation libre en Lua
Filterrewrite_tagRe-router selon le contenu
Outputloki, es, opensearchStockage des logs
Outputs3, kafka, opentelemetryArchivage, bus, OTLP

Articles liés

Collecteurs de logs légers : Fluent Bit, Vector et les autres

Pourquoi un collecteur de logs, ce qui distingue les agents légers (Fluent Bit, Vector) des collecteurs histo…

Fluent Bit sur Kubernetes : DaemonSet, multiline, tampon et supervision

Déployer Fluent Bit sur Kubernetes avec Helm, enrichir avec le filtre kubernetes, gérer les logs multilignes,…

Vector : sources, transforms, sinks et topologie

Les concepts de Vector (sources, transforms, sinks), la configuration YAML, les composants courants, les tamp…

Pour aller plus loin