Integrazione Prometheus Alertmanager - avvisi mobili
Instrada gli avvisi di Prometheus Alertmanager verso Echobell e ricevi notifiche push o chiamate per gli incidenti su server e infrastruttura.
Prometheus con Alertmanager è uno stack open source di monitoraggio e alerting molto diffuso. Integrando Alertmanager con Echobell ricevi notifiche immediate sul telefono (anche urgenti o con chiamata) ogni volta che le tue regole di avviso scattano.
Prerequisiti
- Un account Echobell con almeno un canale creato
- Un'installazione funzionante di Prometheus + Alertmanager
- I permessi per modificare la configurazione di Alertmanager (alertmanager.yml)
Panoramica della configurazione
- Crea un canale Echobell
- Configura i modelli di notifica (e, se vuoi, il modello di link)
- Scegli un metodo di integrazione:
- Webhook tramite il receiver webhook di Alertmanager (consigliato)
- Email tramite il receiver email di Alertmanager (alternativa)
- Crea o aggiorna le regole di avviso
- Prova e affina
Guida passo passo
Crea un canale Echobell
- Apri l'app Echobell
- Crea un nuovo canale (ad esempio "Prometheus Alerts")
- Scegli un colore per riconoscerlo a colpo d'occhio
Configura i modelli di notifica
Il payload webhook di Alertmanager contiene campi strutturati come status, commonLabels, commonAnnotations, externalURL e un array alerts. Puoi richiamare questi campi direttamente nei modelli di Echobell.
Modelli consigliati:
Modello del titolo:
{{commonLabels.alertname}} - {{status}}
Modello del corpo:
🔔 Alert: {{commonLabels.alertname}}
📊 Severity: {{commonLabels.severity}}
🖥️ Instance: {{alerts[0].labels["instance"]}}
⏰ Starts: {{alerts[0].startsAt}}
ℹ️ Summary: {{commonAnnotations.summary}}
🧾 Description: {{commonAnnotations.description}}
Modello di link opzionale (Impostazioni avanzate):
{{alerts[0].generatorURL || externalURL}}
In questo modo, dentro il record dell'avviso trovi un link diretto al grafico o alla dashboard che ha fatto scattare la regola. Se generatorURL non è presente, viene usato externalURL come ripiego.
Metodo di integrazione A — Webhook (consigliato)
- Nel tuo canale Echobell, copia l'URL del webhook dalla sezione Triggers
- In Alertmanager, aggiungi un receiver webhook che invii i dati a quell'URL
Esempio minimo di alertmanager.yml:
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: trueNote:
- con send_resolved: true ricevi una notifica anche quando gli avvisi rientrano (lo status diventa resolved)
- Echobell legge il corpo JSON così com'è, quindi i modelli qui sopra vengono resi correttamente
Metodo di integrazione B — Email (alternativa)
Se preferisci o devi usare l'email, ricorri al receiver email di Alertmanager e invia i messaggi all'indirizzo email associato al canale.
- In Echobell, copia l'indirizzo email del canale dalla sezione Triggers
- Configura un receiver email in Alertmanager usando modelli semplici
Esempio:
receivers:
- name: echobell-email
email_configs:
- to: "PASTE_CHANNEL_EMAIL_ADDRESS"
send_resolved: true
subject: "{{ .CommonLabels.alertname }} - {{ .Status }}"
html: |
<p><strong>Summary:</strong> {{ .CommonAnnotations.summary }}</p>
<p>{{ .CommonAnnotations.description }}</p>
<p>
<a href='{{ (index .Alerts 0).GeneratorURL }}' target='_blank' rel='noopener'>Open in Prometheus</a>
</p>Nei modelli Echobell per i trigger via email puoi usare variabili come subject, text e html, che Echobell mette a disposizione automaticamente.
Crea una regola di avviso di esempio
Ecco una piccola regola di esempio per provare il flusso:
groups:
- name: example
rules:
- alert: HighCPU
expr: avg(rate(process_cpu_seconds_total[5m])) > 0.8
for: 2m
labels:
severity: critical
annotations:
summary: "High CPU usage"
description: "CPU has been over 80% for 2 minutes"Quando questo avviso scatta, Alertmanager invia l'evento al receiver configurato ed Echobell avvisa chi è iscritto al canale.
Prova dell'integrazione
- Abbassa temporaneamente le soglie oppure crea un avviso di prova che scatti subito
- Controlla di ricevere la notifica Echobell quando scatta
- Se usi il modello di link, apri il record e tocca il link
- Risolvi l'avviso e verifica di ricevere la notifica di rientro (se l'hai attivata)
Come scegliere il tipo di notifica
- Urgente: interruzioni critiche in produzione, incidenti da reperibilità
- Chiamata: guasti gravi che devono svegliarti o superare le modalità Full Immersion
- Normale: avvisi di routine, warning o comunicazioni informative
Buone pratiche
- Mantieni i modelli concisi ma informativi (nome dell'avviso, gravità, istanza, riepilogo)
- Usa il modello di link per arrivare subito al grafico o alla dashboard che ti serve
- Raggruppa e instrada gli avvisi in Alertmanager per evitare rumore e assuefazione
- Aggiungi le label di gravità e abbina i tipi di notifica di Echobell all'urgenza reale
- Tratta l'URL del webhook Echobell come un segreto e rigeneralo se viene esposto
Risoluzione dei problemi
Se gli avvisi non arrivano su Echobell:
- Controlla di aver usato l'URL del webhook o l'indirizzo email del canale corretti
- Assicurati che il canale Echobell sia attivo e abbia iscritti
- Cerca eventuali errori di consegna nei log di Alertmanager
- Verifica che la route in alertmanager.yml punti davvero al receiver previsto
- Fai una prova con una singola regola di avviso semplice
- Se usi l'email, controlla che le impostazioni SMTP funzionino e che i messaggi vengano consegnati
Privacy e trattamento dei dati
Echobell mette la privacy al primo posto:
- Il contenuto delle notifiche resta sui tuoi dispositivi
- Sui server vengono conservati solo i dati di configurazione essenziali
- Gli URL dei webhook e gli indirizzi email dei canali vanno trattati come segreti
- Echobell non conserva sui propri server i payload dei tuoi avvisi