RousselTMLEARNING

Artículo · Fluent Bit: del descubrimiento a la maestría

Los inputs en detalle

Este artículo está disponible en francés.

1. Le rôle des inputs #

La porte d'entrée des données.

Principe #

Pipeline Fluent Bit
Les inputs produisent des enregistrements (horodatage + champs) regroupés en chunks.

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.

FamilleInputsUsage
FichierstailLogs applicatifs, conteneurs (/var/log/containers)
Systèmesystemd, kmsgJournal systemd, noyau
Réseausyslog, tcp, udp, httpÉquipements réseau, applications qui poussent
Protocoles d'agentsforward, opentelemetryFluentd/Fluent Bit en chaîne, SDK OpenTelemetry (OTLP)
Métriquesnode_exporter_metrics, prometheus_scrape, cpu, memMétriques de l'hôte et des applications
Kuberneteskubernetes_eventsÉvénements du cluster

2. Lire des fichiers avec tail #

L'input le plus utilisé.

Configuration #

Fonctionnement de l'input tail
Sans fichier DB, un redémarrage relit tout depuis la fin ou le début du fichier.
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: filesystem

Points d'attention #

  • path accepte 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 : docker et cri reconstituent les lignes coupées par le runtime ; java, python, go regroupent 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: 30

Mé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: 50M
Bonne Pratique : Pour les inputs réseau (syslog, http, forward), le tampon disque est indispensable : un client qui envoie pendant une pause perd ses messages.

📄 Fluent Bit : les inputs (entrées) du pipeline en détail →

Mi seguimiento

  • ⏱ Duración estimada : ≈ 8 min

Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión

💬 Hacer una pregunta

Artículos recomendados

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...

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...

Vector : les sources en détail

Les sources de Vector : fichiers, logs Kubernetes, journald, syslog, sockets, HTTP, OpenTelemetry...

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...

Apoyar

♥ APOYAR

Apoya RousselTM Learning

Los cursos, artículos, prácticas y certificados siguen siendo gratuitos y sin publicidad intrusiva. Una contribución libre, por el importe que elijas, financia el alojamiento, los entornos de prácticas y nuevos contenidos.

Contribuir con PayPal Importe libre · tarjeta o cuenta PayPalMás información
QR code PayPal
O escanea este código QR con tu teléfono

¡Gracias, cada contribución cuenta!