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:

docker-compose.yml
  # 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"

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:

alertmanager.yml
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.


Pubblicato il
    Be Smart Be Open

    Business Software Solutions

    I nostri contatti

    Email: besmart@besmartbeopen.it
    Pec: besmartbeopen@pec.it
    Fax: +39 0507911289
    P.IVA e C.F.: 02137570509
    Top