 Autor: [Tomasz Nowosielski](/autorzy/tomasz-nowosielski) Redaktor naczelny, analityk hostingu · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Fluent Bit — log forwarding

# Fluent Bit — lekki agent do forwarding logów na VPS

Opublikowano: 10 kwietnia 2026 · Kategoria: VPS

Gdy masz kilka serwerów, każdy produkuje gigabajty logów dziennie — Nginx, PHP-FPM, Docker kontenery, własne aplikacje, systemd journal. Ręczne sprawdzanie każdego serwera osobno jest nieefektywne. Fluent Bit rozwiązuje ten problem: to ultra-lekki agent (450 KB RAM!) zbierający logi z wielu źródeł, przetwarzający je i wysyłający do centralnego systemu (Elasticsearch, Grafana Loki, S3, Kafka). Napisany w C, bez JVM, bez Ruby — jeden z najlżejszych agentów log shippingu w ekosystemie. Artykuł pokazuje instalację, konfigurację inputs, filters i outputs.

## Instalacja Fluent Bit

\# Ubuntu / Debian — oficjalne repo Fluent Bit
curl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | sh

# Lub recznie
wget -qO - https://packages.fluentbit.io/fluentbit.key | \\
  sudo gpg --dearmor -o /usr/share/keyrings/fluentbit-keyring.gpg
echo "deb \[signed-by=/usr/share/keyrings/fluentbit-keyring.gpg\] \\
  https://packages.fluentbit.io/ubuntu/$(lsb\_release -cs) \\
  $(lsb\_release -cs) main" | sudo tee /etc/apt/sources.list.d/fluentbit.list
sudo apt update && sudo apt install fluent-bit -y

# Uruchomienie
sudo systemctl enable --now fluent-bit
sudo systemctl status fluent-bit

# Sprawdz wersje
fluent-bit --version

# Konfiguracja glowna: /etc/fluent-bit/fluent-bit.conf
# Parsery:           /etc/fluent-bit/parsers.conf

## Architektura: inputs → filters → outputs

Fluent Bit działa jako pipeline: dane wchodzą przez **inputs** (skąd czytamy), są przetwarzane przez **filters** (transformacje, parsowanie, wzbogacanie) i wychodzą przez **outputs** (dokąd wysyłamy). Wiele inputs i outputs można konfigurować jednocześnie w jednym pliku konfiguracyjnym.

\# /etc/fluent-bit/fluent-bit.conf

\[SERVICE\]
    Flush         5
    Daemon        Off
    Log\_Level     info
    Parsers\_File  parsers.conf
    storage.path  /var/log/fluentbit-buffer
    storage.type  filesystem

# INPUT 1: Logi Nginx z pliku
\[INPUT\]
    Name    tail
    Path    /var/log/nginx/access.log
    Tag     nginx.access
    Parser  nginx
    DB      /var/log/fluentbit-db/nginx.db

# INPUT 2: Systemd journal (journald)
\[INPUT\]
    Name              systemd
    Tag               systemd.\*
    Systemd\_Filter    \_SYSTEMD\_UNIT=nginx.service
    Read\_From\_Tail    On

# INPUT 3: Docker logi kontenerow
\[INPUT\]
    Name            tail
    Tag             docker.\*
    Path            /var/lib/docker/containers/\*/\*.log
    Parser          docker
    Docker\_Mode     On

# FILTER: Dodaj pole hostname do kazdego rekordu
\[FILTER\]
    Name    record\_modifier
    Match   \*
    Record  hostname {{HOSTNAME}}

# FILTER: Parsuj JSON z logow aplikacji
\[FILTER\]
    Name    parser
    Match   docker.\*
    Key\_Name log
    Parser  json

# OUTPUT: Wyslij do Grafana Loki
\[OUTPUT\]
    Name            loki
    Match           \*
    Host            loki.example.com
    Port            3100
    Labels          job=fluent-bit,env=production
    Label\_Keys      $hostname,$container\_name

# OUTPUT 2: Backup do pliku lokalnego
\[OUTPUT\]
    Name    file
    Match   \*
    Path    /var/log/fluentbit-output
    File    all\_logs.log

## Parsery — parsowanie logów Nginx, Apache i JSON

\# /etc/fluent-bit/parsers.conf

# Parser Nginx (Combined Log Format)
\[PARSER\]
    Name    nginx
    Format  regex
    Regex   ^(?<remote>\[^ \]\*) \[^ \]\* (?<user>\[^ \]\*) \\\[(?<time>\[^\\\]\]\*)\\\] "(?<method>\\S+)(?: +(?<path>\[^\\"\]\*?)(?: +\\S\*)?)?" (?<code>\[^ \]\*) (?<size>\[^ \]\*)(?: "(?<referer>\[^\\"\]\*)" "(?<agent>\[^\\"\]\*)")?$
    Time\_Key  time
    Time\_Format %d/%b/%Y:%H:%M:%S %z

# Parser Apache
\[PARSER\]
    Name    apache2
    Format  regex
    Regex   ^(?<host>\[^ \]\*) \[^ \]\* (?<user>\[^ \]\*) \\\[(?<time>\[^\\\]\]\*)\\\] "(?<method>\\S+)(?: +(?<path>\[^ \\"\]\*)(?: +(?<proto>\[^ \\"\]\*))?)?" (?<code>\[^ \]\*) (?<size>\[^ \]\*)(?: "(?<referer>\[^\\"\]\*)" "(?<agent>\[^\\"\]\*)")?$
    Time\_Key  time
    Time\_Format %d/%b/%Y:%H:%M:%S %z

# Parser Docker JSON log driver
\[PARSER\]
    Name        docker
    Format      json
    Time\_Key    time
    Time\_Format %Y-%m-%dT%H:%M:%S.%L
    Time\_Keep   On

# Parser JSON (dla logow aplikacji jako JSON)
\[PARSER\]
    Name   json
    Format json

## Parsowanie multiline — stack traces i logi Java

\# Multiline parser dla Java stack traces
\[MULTILINE\_PARSER\]
    Name          java\_multiline
    Type          regex
    Flush\_Timeout 1000
    # Linia startowa: timestamp + poziom loga
    Rule "start\_state" "/^\\d4-\\d2-\\d2/" "cont"
    # Kontynuacja: linie z tabulatorem (stack frames)
    Rule "cont" "/^\\s+at /" "cont"

# Uzyw w INPUT tail
\[INPUT\]
    Name              tail
    Path              /var/log/myapp/app.log
    Tag               app.java
    multiline.parser  java\_multiline

# Wbudowane parsery multiline: java, go, python, ruby, docker
\[FILTER\]
    Name              multiline
    Match             app.\*
    multiline.parser  go

## Porównanie agentów log forwarding

Agent

Język

RAM

CPU

Pluginy

Zastosowanie

Fluent Bit

C

~0.5 MB

Bardzo niski

100+

Edge agent, IoT, K8s DaemonSet

Fluentd

Ruby + C

40-100 MB

Niski-Średni

1000+

Aggregator, rich transforms

Logstash

JRuby (JVM)

200 MB+

Średni-Wysoki

200+

ELK Stack, complex pipelines

Promtail

Go

20-50 MB

Niski

Tylko Loki

Dedykowany agent dla Grafana Loki

Vector

Rust

30-80 MB

Bardzo niski

50+

Alternatywa dla Fluentd, wielki ekosystem

## Najczęstsze pytania

Czym jest Fluent Bit i czym różni się od Fluentd? +

Fluent Bit to ultra-lekki agent do zbierania, filtrowania i forwarding logów napisany w C. Zużywa ok. 450 KB RAM i mniej niż 0.5% CPU przy dużym ruchu. Fluentd to bogatszy agent w Ruby — zużywa 40+ MB RAM, ma ogromny ekosystem pluginów, ale jest cięższy. Fluent Bit jest idealny jako "node agent" zbierający logi z każdego serwera i przesyłający je do centralnego Fluentd lub bezpośrednio do Elasticsearch/Loki. Razem tworzą architekturę edge (Fluent Bit) + aggregator (Fluentd).

Jakie outputy obsługuje Fluent Bit? +

Fluent Bit obsługuje dziesiątki outputów: Elasticsearch, OpenSearch, Grafana Loki, Splunk, Datadog, New Relic, InfluxDB, AWS CloudWatch, AWS S3, Google Cloud Logging, Azure Log Analytics, Kafka, Fluentd (jako aggregator), HTTP (generic webhook), TCP/UDP, stdout (debug). Lista rośnie z każdą wersją. Jeden Fluent Bit może wysyłać logi do wielu destynacji jednocześnie przez konfigurację wielu sekcji \[OUTPUT\].

Czy Fluent Bit radzi sobie z logami Docker kontenerów? +

Tak, Fluent Bit ma dedykowany input Docker dla logów kontenerów. Może czytać logi ze wszystkich kontenerów przez /var/lib/docker/containers/\*/\*-json.log, parsować je (JSON log driver) i wzbogacać o metadane (container\_id, container\_name, image). W środowiskach Kubernetes jest popularnym wyborem obok Promtail (dla Loki) — DaemonSet Fluent Bit zbiera logi ze wszystkich nodów.

Jak działa parsowanie multiline w Fluent Bit? +

Stack traces i logi Java/Python/Ruby rozciągają się na wiele linii. Fluent Bit obsługuje parsowanie multiline przez \[FILTER\] multiline z konfiguracją parsera (Java, Go, Python, Ruby wbudowane lub własne przez regex). Parser wykrywa linię startową (np. timestamp) i łączy kolejne linie aż do następnej linii startowej w jeden rekord. Obsługiwane też przez typ input tail z parametrem multiline.parser.

Jak zapewnić że logi nie są tracone przy awarii serwera docelowego? +

Fluent Bit obsługuje storage.type=filesystem — buforuje rekordy na dysku gdy output jest niedostępny i ponawia wysyłkę po przywróceniu połączenia. Konfiguruj storage.path=/var/log/fluentbit-storage i storage.max\_chunks\_up=128. Parametr Retry\_Limit=false powoduje nieskończone ponawianie. W ten sposób logi nie są tracone nawet przy kilkugodzinnej awarii backendu.

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Contabo

VPS z dużą przestrzenią dyskową do buforowania logów Fluent Bit

VPS + Storage

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

ProSerwer.pl

Polski VPS z RODO-zgodnym przechowywaniem logów

RODO Compliant

[Aktywuj rabat →](/out/proserwer-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/proserwer)

Mikr.us

Budżetowy VPS — Fluent Bit jest tak lekki że działa na 512 MB RAM

Ultra-Lekki

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

## Powiązane strony

-   [Grafana Loki — agregacja logów z Promtail i LogQL](/baza-wiedzy/loki-grafana-logi)
-   [ELK Stack — centralne logowanie dla serwera](/baza-wiedzy/elk-stack-logi-serwera)
-   [Logrotate — konfiguracja rotacji logów](/baza-wiedzy/logrotate-konfiguracja-linux)
-   [Wszystkie artykuły](/baza-wiedzy/)