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 Onanalyse les logs JSON des applications et place leurs champs au premier niveau ; les annotationsfluentbit.io/parseretfluentbit.io/excludepermettent 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_exceptions3. Tampon et contre-pression #
Ne rien perdre, ne pas saturer.
Réglages #
| Paramètre | Effet |
|---|---|
mem_buf_limit | Plafond mémoire d'un input : au-delà, la lecture est suspendue (contre-pression) |
storage.type filesystem | Les 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 }Mi seguimiento
Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión
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),...