Integración Prometheus Alertmanager - Alertas Móviles
Guía completa para integrar Prometheus Alertmanager con Echobell para alertas móviles instantáneas. Recibe notificaciones push para monitoreo de servidores, alertas de infraestructura, avisos de uso de CPU/memoria y eventos críticos del sistema vía webhook o email.
Prometheus con Alertmanager es un stack de monitoreo y alertas de código abierto ampliamente utilizado. Al integrar Alertmanager con Echobell, puedes recibir notificaciones móviles instantáneas (incluyendo alertas sensibles al tiempo o tipo llamada) cada vez que se activen tus reglas de alerta.
Requisitos Previos
- Una cuenta de Echobell con al menos un canal creado
- Una instalación de Prometheus + Alertmanager en funcionamiento
- Acceso para editar tu configuración de Alertmanager (alertmanager.yml)
Descripción General
- Crear un canal de Echobell
- Configurar plantillas de notificación
- Elegir método de integración (Webhook o Email)
- Crear o actualizar reglas de alerta
- Probar y refinar
Guía Paso a Paso
Crear un Canal de Echobell
- Abrir la aplicación Echobell
- Crear un nuevo canal (ej. "Alertas Prometheus")
- Elegir un color para fácil identificación
Configurar Plantillas de Notificación
El payload del webhook de Alertmanager contiene campos estructurados como status, commonLabels, commonAnnotations, externalURL y un array alerts.
Plantilla de Título:
{{commonLabels.alertname}} - {{status}}
Plantilla de Cuerpo:
🔔 Alerta: {{commonLabels.alertname}}
📊 Severidad: {{commonLabels.severity}}
🖥️ Instancia: {{alerts[0].labels["instance"]}}
⏰ Inicio: {{alerts[0].startsAt}}
ℹ️ Resumen: {{commonAnnotations.summary}}
Plantilla de Enlace Opcional (Configuración Avanzada):
{{alerts[0].generatorURL || externalURL}}
Método A — Webhook (Recomendado)
- En tu canal de Echobell, copia la URL del Webhook desde Triggers
- En Alertmanager, configura un receptor webhook:
route:
receiver: echobell-webhook
receivers:
- name: echobell-webhook
webhook_configs:
- url: "https://hook.echobell.one/t/<channel-token>"
send_resolved: true
http_config:
follow_redirects: trueNota: send_resolved: true también notificará cuando las alertas se resuelvan.
Método B — Email (Alternativo)
Si prefieres email, usa el receptor de email de Alertmanager:
- En Echobell, copia la dirección de email del canal desde Triggers
- Configura un receptor de email en Alertmanager:
receivers:
- name: echobell-email
email_configs:
- to: "PASTE_CHANNEL_EMAIL_ADDRESS"
send_resolved: true
subject: "{{ .CommonLabels.alertname }} - {{ .Status }}"
html: |
<p><strong>Resumen:</strong> {{ .CommonAnnotations.summary }}</p>
<p>{{ .CommonAnnotations.description }}</p>Crear una Regla de Alerta de Ejemplo
groups:
- name: example
rules:
- alert: HighCPU
expr: avg(rate(process_cpu_seconds_total[5m])) > 0.8
for: 2m
labels:
severity: critical
annotations:
summary: "Alto uso de CPU"
description: "CPU ha estado sobre 80% por 2 minutos"Una vez que esta alerta se active, Alertmanager enviará el evento a Echobell.
Tipos de Notificación
- Sensible al tiempo: Interrupciones críticas de producción, incidentes de paginación
- Llamada: Cortes severos donde debes interrumpir modos de enfoque
- Normal: Alertas rutinarias, advertencias o avisos informativos
Mejores Prácticas
- Mantener las plantillas concisas pero informativas
- Usar la plantilla de enlace para ir directamente al gráfico/dashboard
- Agrupar y enrutar alertas en Alertmanager
- Proteger la URL del webhook como un secreto
Solución de Problemas
Si las alertas no aparecen en Echobell:
- Verificar la URL del webhook o email del canal
- Asegurar que el canal está activo y tiene suscriptores
- Revisar logs de Alertmanager para errores de entrega
- Verificar la ruta en alertmanager.yml