Fluentd
Tecnología

Fluentd

Una capa de logging unificada para recopilar y enrutar logs

Fluentd es un recolector de datos de código abierto que unifica la recopilación y el consumo de logs. Sigue, analiza, almacena en búfer y enruta datos de log desde muchas fuentes hacia muchos destinos, desacoplando cómo se producen los logs del lugar donde terminan: un índice de búsqueda, almacenamiento de objetos, una plataforma de analítica de logs, o los tres.

Cómo funciona

Fluentd se ejecuta como un agente (a menudo como un DaemonSet de Kubernetes, uno por nodo) que lee datos de log mediante plugins de entrada, los transforma opcionalmente mediante plugins de filtro y los escribe mediante plugins de salida. Su arquitectura de plugins es lo que permite que un único pipeline de Fluentd lea los logs de contenedores del sistema de archivos de un nodo y los distribuya a varios destinos con formatos y semánticas de reintento distintos.

Conceptos clave

  • Plugin de entrada — lee eventos de log de una fuente: un archivo, un socket TCP, el directorio de logs de contenedores de Kubernetes y muchas otras.
  • Plugin de filtro — transforma o enriquece eventos en el pipeline, como extraer campos estructurados de una línea de log en bruto o adjuntar metadatos de Kubernetes.
  • Plugin de salida — escribe eventos en un destino: Elasticsearch, S3, Kafka, una plataforma de logs alojada y decenas más.
  • Buffer — la cola interna de Fluentd entre entradas y salidas, que absorbe la contrapresión y reintenta las escrituras fallidas.

Por qué los equipos adoptan Fluentd

  • Neutral respecto a proveedores. Un gran ecosistema de plugins hace que cambiar de destino de logs sea un cambio de configuración, no un rediseño de la arquitectura.
  • Construido para alto volumen. Su modelo de buffering y chunking está diseñado para manejar flujos de logs con ráfagas y alto rendimiento de forma fiable.
  • Un modelo de logs estructurado. Los eventos llevan campos estructurados en lugar de texto en bruto, lo que hace el filtrado y el enrutamiento posteriores mucho más precisos.
  • Graduado de la CNCF. Es el equivalente en logging al lugar que ocupa Prometheus en la pila de observabilidad: ampliamente adoptado y mantenido activamente.

Primeros pasos

Despliega Fluentd como un DaemonSet para que haya un agente en cada nodo, configúralo para seguir los logs de contenedores y añade los plugins de salida para el lugar donde quieras que terminen los logs. Las guías siguientes cubren las configuraciones de recopilación y enrutamiento más comunes.