Echobell

Integración Prometheus Alertmanager - Notificaciones de Monitoreo de Servidores e Infraestructura

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.

Integración con Prometheus

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

  1. Crear un canal de Echobell
  2. Configurar plantillas de notificación
  3. Elegir método de integración (Webhook o Email)
  4. Crear o actualizar reglas de alerta
  5. Probar y refinar

Guía Paso a Paso

Crear un Canal de Echobell

  1. Abrir la aplicación Echobell
  2. Crear un nuevo canal (ej. "Alertas Prometheus")
  3. 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)

  1. En tu canal de Echobell, copia la URL del Webhook desde Triggers
  2. En Alertmanager, configura un receptor webhook:
route:
  receiver: echobell-webhook

receivers:
  - name: echobell-webhook
    webhook_configs:
      - url: "https://hook.echobell.one/t/REPLACE_WITH_YOUR_TOKEN"
        send_resolved: true
        http_config:
          follow_redirects: true

Nota: 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:

  1. En Echobell, copia la dirección de email del canal desde Triggers
  2. 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

  1. Mantener las plantillas concisas pero informativas
  2. Usar la plantilla de enlace para ir directamente al gráfico/dashboard
  3. Agrupar y enrutar alertas en Alertmanager
  4. 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

Recursos Adicionales

Índice