Sobre el proyecto
Este proyecto proporciona una solución simple y autoalojada para monitorear alertas activas de Prometheus Alertmanager. Consta de dos binarios independientes de Go, cada uno empaquetado como una imagen de contenedor separada, lo que permite una implementación flexible.
**Componentes:**
1. **Receptor:** Este binario actúa como un punto final de webhook para Alertmanager. Escucha solicitudes POST en `/webhook`, procesa los datos de alerta entrantes y almacena el estado actual en una base de datos Valkey (compatible con Redis). Maneja específicamente las alertas `Watchdog` actualizando una marca de tiempo de última visualización sin tratarlas como problemas activos.
2. **Panel de control:** Este binario lee el estado de Valkey y sirve un panel de control HTML basado en web. También expone un punto final `GET /api/state` para acceso programático al estado actual de alerta. El panel de control se puede configurar para resaltar actualizaciones obsoletas si no se han recibido nuevos webhook dentro de un umbral especificado.
**Gestión de estado:**
Las alertas activas se almacenan en una clave hash de Valkey indexada por su huella digital única. Las alertas resueltas se eliminan automáticamente. Si falta una huella digital, se deriva de etiquetas ordenadas para garantizar la coherencia.
**Configuración:**
Ambos binarios se configuran mediante variables de entorno, incluyendo:
- `LISTEN_ADDR`: dirección HTTP de escucha (predeterminada `:8080`).
- `VALKEY_ADDR`: dirección de la instancia Valkey/Redis.
- `VALKEY_USERNAME` / `VALKEY_PASSWORD`: credenciales de autenticación.
- `STALE_AFTER`: umbral para marcar actualizaciones como obsoletas (predeterminado `90m`).
**Implementación:**
El proyecto admite Docker Compose para desarrollo y pruebas locales. Las imágenes de contenedor publicadas están disponibles en GitHub Container Registry (`ghcr.io`). Las imágenes finales están optimizadas para seguridad y tamaño, utilizando `scratch` como base, ejecutándose como no root (UID/GID 1000) e incluyendo comprobaciones de estado respaldadas por binarios.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.