This article is available in French.
1. Le rôle des inputs #
La porte d'entrée des données.
Principe #
Un input collecte des données : il lit un fichier, écoute un port, interroge le système ou reçoit un protocole. Chaque enregistrement reçoit un tag (par exemple kube.var.log.containers.api-xyz.log) : c'est lui que les filtres et les outputs utilisent, via Match, pour décider de ce qu'ils traitent.
| Famille | Inputs | Usage |
|---|---|---|
| Fichiers | tail | Logs applicatifs, conteneurs (/var/log/containers) |
| Système | systemd, kmsg | Journal systemd, noyau |
| Réseau | syslog, tcp, udp, http | Équipements réseau, applications qui poussent |
| Protocoles d'agents | forward, opentelemetry | Fluentd/Fluent Bit en chaîne, SDK OpenTelemetry (OTLP) |
| Métriques | node_exporter_metrics, prometheus_scrape, cpu, mem | Métriques de l'hôte et des applications |
| Kubernetes | kubernetes_events | Événements du cluster |
2. Lire des fichiers avec tail #
L'input le plus utilisé.
Configuration #
pipeline:
inputs:
- name: tail
tag: app.*
path: /var/log/app/*.log
exclude_path: /var/log/app/*.gz
db: /var/lib/fluent-bit/tail-app.db # positions de lecture
read_from_head: false # nouveau fichier : partir de la fin
refresh_interval: 10 # recherche de nouveaux fichiers (s)
rotate_wait: 30 # continuer à lire l'ancien fichier après rotation (s)
skip_long_lines: on
multiline.parser: docker, cri, java # recoller les lignes d'une exception
mem_buf_limit: 50MB
storage.type: filesystemPoints d'attention #
pathaccepte les jokers ; le tag avec*est complété par le chemin du fichier (points à la place des barres).- Le multiligne se règle dès l'input :
dockeretcrireconstituent les lignes coupées par le runtime ;java,python,goregroupent les traces de pile. - Le fichier DB doit être sur un volume persistant (hostPath sur Kubernetes).
3. Autres inputs utiles #
Réseau, journald, OpenTelemetry.
Exemples #
pipeline:
inputs:
- name: systemd
tag: host.journal
systemd_filter: _SYSTEMD_UNIT=nginx.service
read_from_tail: on
- name: syslog
mode: udp
listen: 0.0.0.0
port: 5140
parser: syslog-rfc5424
- name: opentelemetry # reçoit logs, métriques et traces OTLP/HTTP
listen: 0.0.0.0
port: 4318
- name: forward # depuis d'autres agents Fluent Bit ou Fluentd
listen: 0.0.0.0
port: 24224
- name: node_exporter_metrics
tag: host.metrics
scrape_interval: 30Mémoire et contre-pression #
Quand une sortie ralentit, les données s'accumulent. mem_buf_limit borne la mémoire d'un input : une fois atteint, l'input est mis en pause (risque de perte pour les inputs réseau). Avec storage.type: filesystem, les chunks débordent sur disque et rien n'est perdu.
service:
storage.path: /var/lib/fluent-bit/buffer
storage.sync: normal
storage.backlog.mem_limit: 50MBonne Pratique : Pour les inputs réseau (syslog, http, forward), le tampon disque est indispensable : un client qui envoie pendant une pause perd ses messages.
My progress
Sign in to track your progress and take notes. Sign in
Recommended Articles
Fluent Bit : pipeline, configuration et plugins essentiels
Les concepts de Fluent Bit (inputs, parsers, filters, tags et match, buffer, outputs), la configu...
Fluent Bit : les outputs (sorties), routage et fiabilité de l'envoi
Envoyer les données de Fluent Bit : routage par Match et Match_Regex, sorties Loki, Elasticsearch...
Fluent Bit : parsers et filters, structurer et transformer les logs
Structurer et transformer les logs dans Fluent Bit : parsers (json, regex, logfmt, ltsv), parsers...
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 ...
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 colle...
Vector : les sources en détail
Les sources de Vector : fichiers, logs Kubernetes, journald, syslog, sockets, HTTP, OpenTelemetry...
Bonnes pratiques de collecte de logs avec Fluent Bit et Vector
Check-list de production pour la collecte de logs : structure, filtrage à la source, masquage, ta...
Fluent Bit ou Vector ? Choisir, combiner et migrer
Comparer Fluent Bit et Vector (performances, transformations, écosystème, gouvernance), les combi...
Collecter des logs vers Loki : Alloy, Promtail, Docker et OpenTelemetry
Envoyer des logs vers Loki : Grafana Alloy, Promtail, driver Docker, OTLP, bons labels, parsing e...