Aller au contenu principal

Fluentd — collecte de logs

Fluentd est un collecteur/routeur de logs unifié, alternative à la stack Filebeat/Logstash : il agrège des logs depuis de multiples sources, les structure en JSON, et les route vers une ou plusieurs destinations (Elasticsearch, S3, Kafka...). Très utilisé dans l'écosystème Kubernetes (projet CNCF) comme agent de collecte par nœud.

Installation

# td-agent = distribution stable de Fluentd
curl -fsSL https://toolbelt.treasuredata.com/sh/install-ubuntu-jammy-td-agent4.sh | sh
sudo systemctl enable --now td-agent

Fichiers de configuration

CheminRôle
/etc/td-agent/td-agent.confConfiguration principale (source, filter, match)
/etc/td-agent/plugin/Plugins additionnels (sorties, parseurs)
/var/log/td-agent/Logs internes de Fluentd lui-même

Commandes utiles

CommandeFonction
fluentd --dry-run -c td-agent.confValider une configuration sans démarrer
td-agent-gem install <plugin>Installer un plugin (sortie, parseur...)
systemctl status td-agentÉtat du service

Exemple de configuration

<source>
@type tail
path /var/log/nginx/access.log
pos_file /var/log/td-agent/nginx.pos
tag nginx.access
<parse>
@type nginx
</parse>
</source>

<match nginx.access>
@type elasticsearch
host localhost
port 9200
index_name nginx-logs
</match>

Sécurisation

  • Activer TLS sur les sorties réseau (<match> vers Elasticsearch/Kafka distants).
  • Limiter les permissions du fichier pos_file et des logs sources (utilisateur dédié td-agent, pas root).
  • Configurer un buffer avec limite de taille (<buffer> avec total_limit_size) pour éviter qu'une destination indisponible ne sature le disque local.

Logs & dépannage

  • journalctl -u td-agent -f (ou /var/log/td-agent/td-agent.log) — erreurs de parsing, échecs d'envoi.
  • fluentd --dry-run — premier réflexe après modification de config.
  • Vérifier l'état du buffer (/var/log/td-agent/buffer/) en cas de destination indisponible — les événements s'y accumulent en attendant.

Voir aussi