Fluent Bit — Lightweight High-Performance Log and Metrics Processor
Fluent Bit is a fast, lightweight telemetry agent from the Fluentd family. It collects logs, metrics and traces from any source, processes them with filters, and forwards them to dozens of backends.
What it is
Fluent Bit is a fast, lightweight telemetry agent from the Fluentd ecosystem. It collects logs, metrics, and traces from any source, processes them with built-in filters and parsers, and routes the output to multiple destinations (Elasticsearch, Splunk, Datadog, S3, Kafka, and 80+ others). Written in C with a small memory footprint, it runs efficiently on embedded systems, containers, and cloud infrastructure.
SRE teams building observability pipelines, DevOps engineers shipping logs from Kubernetes clusters, and platform teams needing a lightweight data collector use Fluent Bit as their telemetry agent. It is a CNCF graduated project.
How it saves time or tokens
Traditional log shipping requires running heavy agents (Logstash, Fluentd) on every node, consuming significant CPU and memory. Fluent Bit achieves the same functionality with a ~450KB binary and minimal resource usage. Its plugin-based architecture lets you add inputs, filters, and outputs through configuration rather than custom code. Hot-reloading configuration changes avoids downtime during pipeline updates.
How to use
- Run with Docker:
docker run --rm -it fluent/fluent-bit:latest \
/fluent-bit/bin/fluent-bit \
-i cpu -o stdout -f 1
- Configure a pipeline with a configuration file:
[INPUT]
Name tail
Path /var/log/syslog
Tag syslog
[FILTER]
Name grep
Match syslog
Regex log error
[OUTPUT]
Name es
Match *
Host elasticsearch.example.com
Port 9200
Index logs
- Deploy to Kubernetes as a DaemonSet to collect logs from every node.
Example
# Kubernetes DaemonSet for Fluent Bit
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluent-bit
namespace: logging
spec:
selector:
matchLabels:
app: fluent-bit
template:
metadata:
labels:
app: fluent-bit
spec:
containers:
- name: fluent-bit
image: fluent/fluent-bit:latest
volumeMounts:
- name: varlog
mountPath: /var/log
- name: config
mountPath: /fluent-bit/etc/
volumes:
- name: varlog
hostPath:
path: /var/log
- name: config
configMap:
name: fluent-bit-config
Related on TokRepo
- Monitoring Tools -- explore monitoring and observability tools
- DevOps Tools -- discover DevOps infrastructure tools
Common pitfalls
- Backpressure handling is critical. If the output destination is slow, Fluent Bit buffers data in memory. Configure storage.total_limit_size to prevent unbounded memory growth.
- Log parsing consumes CPU. Use the parser filter only when structured log extraction is needed. For simple forwarding, skip parsing to reduce overhead.
- The tail input plugin tracks file positions in a database. If you delete the database file, Fluent Bit re-reads log files from the beginning, causing duplicate entries.
Frequently Asked Questions
Fluent Bit is written in C and designed for resource-constrained environments with a ~450KB binary. Fluentd is written in Ruby with a larger ecosystem of plugins. Fluent Bit is typically used as the edge collector (on each node), while Fluentd serves as the aggregation layer. Both can be used independently.
Fluent Bit supports 80+ output plugins including Elasticsearch, OpenSearch, Splunk, Datadog, CloudWatch, S3, Kafka, Loki, Prometheus, InfluxDB, and standard output. Multiple outputs can be configured simultaneously to route data to different destinations.
Yes. Deploy Fluent Bit as a DaemonSet to collect container logs from /var/log/containers/ on each node. The kubernetes filter enriches log entries with pod metadata (namespace, pod name, labels) automatically.
Yes. Fluent Bit handles logs, metrics (Prometheus format), and traces (OpenTelemetry). It can collect Prometheus metrics, process them with filters, and forward to monitoring backends. OpenTelemetry trace support enables integration with distributed tracing systems.
Fluent Bit is designed for minimal resource usage. The binary is approximately 450KB. Typical deployments use 10-50MB of memory depending on buffer sizes and plugin count. It runs on Linux, Windows, macOS, and embedded systems.
Citations (3)
- Fluent Bit GitHub— Lightweight telemetry agent for logs, metrics, and traces
- Fluent Bit Documentation— CNCF graduated project
- Fluent Bit Outputs— 80+ output plugins for log routing
Related on TokRepo
Discussion
Related Assets
Miniflux — Minimalist Self-Hosted Feed Reader
Miniflux is an opinionated, minimalist RSS and Atom feed reader written in Go that focuses on simplicity, speed, and content readability.
Kanboard — Minimalist Kanban Project Management
Kanboard is a free and open-source Kanban project management tool focused on minimalism, productivity, and getting things done without unnecessary complexity.
Homer — Static Server Dashboard with YAML Configuration
Homer is a dead-simple static dashboard for your server services, configured entirely through a single YAML file with no database or backend required.