RousselTMLEARNING

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

Fluent Bit en Kubernetes

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

1. Installer avec Helm #

Un DaemonSet prêt à l'emploi.

Commandes #

helm repo add fluent https://fluent.github.io/helm-charts
helm upgrade --install fluent-bit fluent/fluent-bit -n logging --create-namespace -f values.yaml
# values.yaml (extrait) : le chart accepte la configuration au format classique
config:
  inputs: |
    [INPUT]
        Name              tail
        Path              /var/log/containers/*.log
        multiline.parser  docker, cri
        Tag               kube.*
        Mem_Buf_Limit     50MB
        Skip_Long_Lines   On
        storage.type      filesystem
  filters: |
    [FILTER]
        Name                kubernetes
        Match               kube.*
        Merge_Log           On
        Keep_Log            Off
        K8S-Logging.Parser  On
        K8S-Logging.Exclude On
  outputs: |
    [OUTPUT]
        Name        loki
        Match       kube.*
        Host        loki-gateway.logging.svc
        Port        80
        Labels      job=fluent-bit
        Label_keys  $kubernetes['namespace_name'],$kubernetes['container_name']
Bonne Pratique : Merge_Log On analyse les logs JSON des applications et place leurs champs au premier niveau ; les annotations fluentbit.io/parser et fluentbit.io/exclude permettent aux équipes de choisir un parser ou d'exclure leurs pods.

2. Logs multilignes #

Les piles d'appels Java et Python.

multiline #

Une exception Java s'étale sur 50 lignes : sans traitement, chaque ligne devient un enregistrement. Les parsers multilignes intégrés (docker, cri, java, python, go) ou personnalisés les regroupent :

[MULTILINE_PARSER]
    name          java_exceptions
    type          regex
    flush_timeout 1000
    rule  "start_state"  "/^\d{4}-\d{2}-\d{2} .*/"   "cont"
    rule  "cont"         "/^\s+at .*|^Caused by: .*/"   "cont"

[FILTER]
    name                  multiline
    match                 kube.*
    multiline.key_content log
    multiline.parser      java, java_exceptions

3. Tampon et contre-pression #

Ne rien perdre, ne pas saturer.

Réglages #

ParamètreEffet
mem_buf_limitPlafond mémoire d'un input : au-delà, la lecture est suspendue (contre-pression)
storage.type filesystemLes morceaux en attente sont écrits sur disque et survivent à un redémarrage
storage.total_limit_size (output)Taille maximale du tampon disque par destination
retry_limit (output)Nombre de réessais (no_limits pour réessayer indéfiniment)
Erreur Courante : Avec un tampon uniquement en mémoire, une panne de Loki de quelques minutes peut entraîner la perte de logs ou la suspension de la lecture. Activez le tampon disque sur les nœuds de production.

Superviser Fluent Bit #

curl -s localhost:2020/api/v1/health
curl -s localhost:2020/api/v2/metrics/prometheus | grep -E 'fluentbit_(input_records|output_(proc_records|errors|retries_failed))_total'
- alert: FluentBitOutputErrors
  expr: sum by (name) (rate(fluentbit_output_retries_failed_total[5m])) > 0
  for: 10m
  labels: { severity: warning }

📄 Fluent Bit sur Kubernetes : DaemonSet, multiline, tampon et supervision →

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 : les inputs (entrées) du pipeline en détail

Tout sur les inputs de Fluent Bit : rôle des tags, lecture de fichiers avec tail (positions, rota...

Fluent Bit : parsers et filters, structurer et transformer les logs

Structurer et transformer les logs dans Fluent Bit : parsers (json, regex, logfmt, ltsv), parsers...

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 : 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 : pipeline, configuration et plugins essentiels

Les concepts de Fluent Bit (inputs, parsers, filters, tags et match, buffer, outputs), la configu...

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

Fluent Bit ou Vector ? Choisir, combiner et migrer

Comparer Fluent Bit et Vector (performances, transformations, écosystème, gouvernance), les combi...

OpenTelemetry sur Kubernetes : Operator, auto-instrumentation et Collector

Déployer OpenTelemetry sur Kubernetes : modes de déploiement du Collector (DaemonSet, Deployment,...

Déployer et exploiter Pyroscope sur Kubernetes

Installer Pyroscope avec Helm, collecter les profils du cluster avec Alloy (annotations et eBPF),...

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!