Metadatos de Kubernetes para tópicos dinámicos de Kafka en Fluent Bit

Descubre cómo enrutar logs de Fluent Bit a tópicos de Kafka específicos con Dynamic_topic y Topic_key, elevando campos anidados con Lua para Kubernetes multiinquilino.

20 sept 2025 • 3 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Gestionar logs a gran escala puede ser un dolor, sobre todo cuando todos acaban en el mismo tópico de Kafka. Qué pasaría si pudieras enrutar los logs a tópicos específicos por pod o a cualquier tópico personalizado directamente desde Fluent Bit. Esto facilita mucho el filtrado y la consulta, especialmente en entornos Kubernetes multiinquilino o de gran tamaño.

En Fluent Bit el plugin de salida para Kafka permite asignación dinámica de tópicos mediante Dynamic_topic on y Topic_key. Sin embargo la documentación es ambigua sobre el uso de campos anidados como clave de tópico, que es precisamente el caso de los metadatos de kubernetes. El problema clave es que Topic_key solo resuelve claves de primer nivel del registro. Si el campo que quieres usar está dentro de kubernetes.pod_name Fluent Bit no lo resolverá directamente para la salida.

La solución práctica consiste en elevar el campo anidado a nivel superior antes de que llegue al plugin de salida. Esto se puede hacer con un filtro Lua que lea record.kubernetes.pod_name y lo copie a record.topic_name. Así Fluent Bit podrá utilizar topic_name como Topic_key y Dynamic_topic funcionará como se espera.

Ejemplo de registro original antes del filtro: { timestamp: 2025-05-13T19:27:31.954980134Z, log: Server is listening on port 5000, kubernetes: { namespace_name: default, pod_name: dy-7d8eeb3d4fb6da81d88da56280de7d42-5744dfc46c-dgsjf } }

Pseudocódigo del filtro Lua para promover el campo pod_name a nivel superior: function promote_pod_name(tag,timestamp,record) local k8s = record.kubernetes if k8s and k8s.pod_name then record.topic_name = k8s.pod_name elseif k8s and k8s.namespace_name then record.topic_name = k8s.namespace_name else record.topic_name = nil end return 1,timestamp,record end

Después del filtro el registro quedaría así: { timestamp: 2025-05-13T19:27:31.954980134Z, log: Server is listening on port 5000, topic_name: dy-7d8eeb3d4fb6da81d88da56280de7d42-5744dfc46c-dgsjf, kubernetes: { ... } } Ahora Fluent Bit puede usar topic_name como Topic_key en la salida Kafka.

Configuración de Fluent Bit relevante: [FILTER] Name lua Match kube.* script /fluent-bit/scripts/promote_pod_name.lua call promote_pod_name [OUTPUT] Name kafka Match * Brokers kafka:9093 Topics kube Topic_key topic_name Dynamic_topic on Format json

Un ejemplo de ConfigMap para Fluent Bit procesando logs de pods: apiVersion: v1 kind: ConfigMap metadata: name: fluent-bit-config namespace: logging data: fluent-bit.conf: | [INPUT] Name tail Path /var/log/containers/*.log multiline.parser docker, cri Tag kube.* Mem_Buf_Limit 5MB Skip_Long_Lines On [FILTER] Name kubernetes Match kube.* Merge_Log On Keep_Log Off Kube_Tag_Prefix kube.var.log.containers. Kube_URL https://kubernetes.default.svc:443 Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt Kube_Token_File /var/run/secrets/kubernetes.io/serviceaccount/token K8S-Logging.Exclude On [FILTER] Name lua Match kube.* script /fluent-bit/scripts/promote_pod_name.lua call promote_pod_name [OUTPUT] Name kafka Match * Brokers kafka:9093 Topics kube Topic_key topic_name Dynamic_topic on Format json

Este enfoque no se limita a pod_name. Puedes promover cualquier campo anidado de kubernetes o cualquier etiqueta a un campo de primer nivel y usarlo como clave de tópico en Kafka. Casos de uso típicos: separar logs por namespace, crear tópicos por aplicación, aplicar aislamiento multiinquilino y mejorar la eficiencia en búsquedas y monitorización.

En Q2BSTUDIO como empresa de desarrollo de software y aplicaciones a medida ofrecemos experiencia en infraestructura observability, integración con servicios cloud y automatización de pipelines de logging. Si necesitas adaptar Fluent Bit y Kafka a tu arquitectura, o desarrollar soluciones de logging a medida para entornos Kubernetes, podemos ayudarte con servicios profesionales y consultoría en servicios cloud aws y azure. Conectamos estas soluciones con proyectos de software a medida y aplicaciones a medida para obtener pipelines robustos y escalables.

Además, nuestras capacidades abarcan inteligencia artificial e ia para empresas, desarrollo de agentes IA, ciberseguridad y pentesting, y servicios de inteligencia de negocio y power bi para explotar los datos de logs y convertirlos en información accionable. Si quieres más información sobre despliegues cloud y arquitectura de logs revisa nuestra página de servicios cloud a través de servicios cloud aws y azure y para proyectos de desarrollo y aplicaciones a medida visita software y aplicaciones a medida.

Si pruebas esta técnica en tu entorno o te encuentras con casos límite estaremos encantados de saber de ti. En Q2BSTUDIO podemos implementar filtros personalizados, pipelines de ingestión y soluciones de inteligencia de negocio para que tus logs trabajen a favor de tus operaciones y seguridad.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.