Fluent Bit ist ein leichtgewichtiger Log- und Metrik-Collector, der in C geschrieben ist und als einzelnes Binary ohne Laufzeitumgebung auskommt. Er ist Teil des Fluent-Ökosystems, wird von der Cloud Native Computing Foundation getragen und läuft heute auf Servern, in Kubernetes-Clustern als DaemonSet und in eingebetteten Systemen.

\n

Aufbau: Parser, Filter, Output

\n

Fluent Bit verarbeitet Daten in einer Pipeline:

\n
    \n
  1. Input – liest Quellen, etwa tail für Dateien, systemd für Journal-Einträge, docker oder kubernetes für Container-Metadaten, forward für andere Fluent-Agenten, http und syslog für Netzwerkquellen.
  2. \n
  3. Parser – zerlegt Text in strukturierte Felder, wahlweise mit Regex, JSON- oder Logfmt-Parser.
  4. \n
  5. Filter – verändert oder ergänzt Datensätze, etwa grep, modify, kubernetes zum Anhängen von Pod- und Namespace-Namen oder multiline zum Zusammenfassen mehrzeiliger Stacktraces.
  6. \n
  7. Output – schreibt weiter nach Elasticsearch, OpenSearch, Loki, Graylog, Kafka, S3, InfluxDB oder in eine Datei.
  8. \n
\n

Beispielkonfiguration

\n
[SERVICE]\n    flush        1\n    log_level    info\n\n[INPUT]\n    name         tail\n    path         /var/log/nginx/*.log\n    tag          nginx\n\n[FILTER]\n    name         parser\n    match        nginx\n    key_name     log\n    parser       nginx\n\n[OUTPUT]\n    name         loki\n    match        *\n    host         127.0.0.1\n    port         3100
\n

Abgrenzung zu Fluentd

\n

Fluentd (Ruby) kann mehr Plugins und komplexere Transformationen, braucht aber deutlich mehr Ressourcen. Fluent Bit ist der Sammler am Rand, Fluentd häufig die Aggregationsstufe in der Mitte. Beide sprechen das Forward-Protokoll, sodass sich Fluent Bit auf jedem Knoten und Fluentd als zentraler Weiterleiter kombinieren lassen. Wer heute neu plant, fährt meist einstufig mit Fluent Bit direkt in das Zielsystem.

\n

Verwandte Grundlagen: Logging, Graylog, Observability, Monitoring mit Prometheus und Grafana.