Alejandría

Busca en Alejandría

Herramientas

Kafbat UI

Explora mensajes y diagnostica tus clústeres Kafka.

01

En pocas palabras

Interfaz web abierta para observar y administrar clústeres de Apache Kafka: brokers, topics, particiones, mensajes y grupos de consumidores.

Qué problema resuelve

Dificultad para entender flujos de eventos y diagnosticar problemas mediante comandos y registros.

Cuándo utilizarlo

Desarrollo y operación de sistemas con Kafka. Ejemplo: inspeccionar mensajes y el consumer lag —atraso del consumidor— para investigar un procesamiento lento.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

Cómo funciona

Kafbat se conecta a los brokers y presenta topics, particiones, offsets y grupos de consumidores. El lag compara el progreso confirmado por un consumidor con los mensajes disponibles; ayuda a distinguir un consumidor lento de uno detenido.

Ejemplo: investigar un atraso

  1. Selecciona el clúster y localiza el grupo de consumidores.
  2. Compara el lag por partición para detectar desequilibrios.
  3. Inspecciona el topic y una muestra de mensajes: formato, claves y marcas de tiempo.
  4. Contrasta los resultados con errores y tiempos de procesamiento del servicio.

Origen

Kafbat UI es la continuación comunitaria de UI for Apache Kafka (Provectus), mantenida por parte de sus autores originales. Es open source, se distribuye como imagen Docker y permite gestionar varios clústeres desde una sola interfaz.

Funciones

Área Capacidades
Topics Crear, configurar, ver particiones, réplicas y retención
Mensajes Buscar por offset, tiempo, clave o contenido; producir mensajes
Consumer groups Lag por partición, miembros, reinicio de offsets
Schema Registry Esquemas Avro, JSON Schema y Protobuf, compatibilidad y versiones
Kafka Connect Estado de conectores y tareas, reinicio, configuración
Serdes Deserializar mensajes Avro, Protobuf o formatos propios

Despliegue

# docker-compose.yml
services:
  kafbat-ui:
    image: ghcr.io/kafbat/kafka-ui:latest # fija una versión concreta en producción
    ports: ['8080:8080']
    environment:
      KAFKA_CLUSTERS_0_NAME: produccion
      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka-1:9092,kafka-2:9092
      KAFKA_CLUSTERS_0_SCHEMAREGISTRY: http://schema-registry:8081
      KAFKA_CLUSTERS_0_READONLY: 'true'
      DYNAMIC_CONFIG_ENABLED: 'false'

READONLY impide crear, borrar o producir en ese clúster: una buena opción por defecto para producción.

Seguridad

  • Autenticación con OAuth2/OIDC (Google, GitHub, Keycloak), LDAP o login básico.
  • RBAC: roles por clúster y por recurso (ver mensajes, editar topics, resetear offsets), asignados a grupos del proveedor de identidad.
  • Enmascaramiento: reglas por topic y campo para ocultar o sustituir datos personales en la vista de mensajes.
  • Conexión a los brokers con SASL/SSL y un usuario de Kafka con ACL mínimas.

Diagnóstico de lag

Patrón observado Causa probable
Lag creciente en todas las particiones El consumidor no da abasto: escalar o optimizar
Lag en una sola partición Clave caliente o mensaje que falla repetidamente
Lag estable y offsets que no avanzan Consumidor detenido o bloqueado
Lag a cero pero sin efectos en el servicio Errores ignorados tras confirmar el offset

Para alertas continuas, exporta el lag a Prometheus (por ejemplo con un exporter de Kafka) en lugar de depender de la interfaz. Ver Apache Kafka.

Criterios de implementación

Configura autenticación, permisos por rol y acceso al clúster. Utiliza enmascaramiento si los mensajes contienen datos sensibles. Cambiar offsets o publicar mensajes altera el comportamiento del sistema: diferencia el diagnóstico de las operaciones de recuperación.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.