# Configurazione dell'alertmanager
alertmanager:
image: prom/alertmanager:v0.17.0
container_name: alertmanager
restart: unless-stopped
command: "--config.file=/alertmanager.yml"
volumes:
- "$PWD/promconf/alertmanager.yml:/alertmanager.yml"
ports:
- "9093:9093"
- "9094:9094"
- "9094:9094/udp"
Prometheus Tutorial: 4 - Alert Manager
Tutorial sull’utilizzo del Prometheus - parte 4. Funzionalita’ di alerting con l’AlertManager e sua configurazione ed utilizzo.
Prometheus + Alertmanager
La funzionalità di alerting con Prometheus è separata in due parti distinte. Le regole di alerting nei Prometheus server inviano gli alert agli Alertmanager. Gli Alertmanager si occupano di gestire questi alert incluso l’aggregazione, l’inibizione, il silenziamento, la deduplica e l’invio delle notifiche relative agli allarmi tramite metodi come email, PageDuty, Slack, etc.
Aggregazione / grouping
Raggruppare alert in categorie può servire all’invio di allarmi correlati con una singola notifica. Questo è utile specialmente quando ci sono problemi importanti ai nostri sistemi che coinvolgono molto sotto-sistemi e che potrebbero generare in una volta centinaia o migliaia di allarmi simultaneamente.
Inibizione / inhibition
Inhibition è uno strumento per sopprimere le notifiche per un certo periodo di tempo per alcuni allarmi se altri allarmi sono già nello stato di firing.
Silienziamento / silences
Il silenziamento è un modo semplice per rendere muti gli alermi per un certo periodo di tempo. Un silence è configurato in funzione di un match.
Deduplica / deduplication
La deduplica è utile quando più alertmanager configurati in modalità cluster ricevono lo stesso allarme. Tramite un meccanismo di Gossip l’Alertmanager è in grado di fare in modo che solo uno degli Alertmanager che partecipano al cluster invii la notifica per un determinato allarme.
Avvio e configurazione Alertmanager
AlertManager può essere installato tramite i binari precompilati nella sezione download del sito Prometheus, oppure tramite le immagini [Docker] presenti sul Docker hub.
Potete inserire la configurazione docker compose nel file docker-compose.yml già utilizzata per l’avvio del Prometheus, aggiungendo la parte che segue:
Per poter funzionare la configurazione precedente ha bisogno del file alertmanager.yml da inserire nella directory promconf, create questo file inserendo la configurazione di esempio che segue:
global:
smtp_from: prometheus@example.org
smtp_smarthost: smtp.example.org:25
smtp_require_tls: false
route:
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
group_by: [alertname, app]
routes:
- match:
severity: warning
receiver: my_email
continue: true
receivers:
- name: my_email
email_configs:
- to: 'alerts@example.org'
headers:
subject: "You have {{ .Alerts.Firing | len }} firing alerts"
html: |
Hi
<p>You have the following firing alerts:</p>
<dl>
{{ range .Alerts }}
<dt>{{ .Labels.alertname }} on {{ .Labels.instance }}</dt>
<dd>{{ .Annotations.description }}</dd>
{{ end }}
</dl>
<em>Sincerely your alert-bot</em>
Dopo aver cambiato la configurazione è necessario riavviare i servizi docker in modo che sia avviato anche l’AlertManager.
$ docker-compose up -d
TOBECONTINUED
Segui la quinta parte del tutorial per imparare ad utilizzare le RecordingRule e la federazione Prometheus >> Prometheus Tutorial parte 5.