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.
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
- Selecciona el clúster y localiza el grupo de consumidores.
- Compara el lag por partición para detectar desequilibrios.
- Inspecciona el topic y una muestra de mensajes: formato, claves y marcas de tiempo.
- 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.