[3] Prometheus – Ustawienie alarmu/powiadomienia (email)
9 lutego 2022To są ustawienia powiadomień alarmowych w Prometheusie. Istnieje wiele sposobów otrzymywania alertów, takich jak Slack, HipChat, WeChat i inne, jednak w tym przykładzie skonfigurujemy alerty z powiadamianiem na e-mail.
Więcej informacji na temat alertów można znaleźć w oficjalnych dokumentach: https://prometheus.io/docs/alerting/configuration.
[1] Do powiadamiania e-mailem potrzebny jest serwer SMTP. W tym przykładzie opiera się na środowisku, w którym serwer SMTP działa na hoście lokalnym.
[2] Zainstaluj Alertmanager na hoście serwera Prometheus.
[root@vlsr01 ~]# dnf install alertmanager
[3] Skonfiguruj Prometeusa do wysyłania powiadomień na email.
[root@vlsr01 ~]# mv /etc/prometheus/alertmanager.yml /etc/prometheus/alertmanager.yml.org [root@vlsr01 ~]# mcedit /etc/prometheus/alertmanager.yml # stwórz nowy global: # serwer SMTP smtp_smarthost: 'localhost:25' # Wymagaj lub nie TLS smtp_require_tls: false # adres email nadawcy powiadomienia smtp_from: 'Alertmanager <user01@zicher.lab>' # jeżeli wymagane jest uwierzytelnienie SMTP na serwerze SMTP, ustaw jak poniżej # smtp_auth_username: 'alertmanager' # smtp_auth_password: 'TajneHasło' route: # nazwa odbiorcy wiadomości receiver: 'email-notice' # definicja grup group_by: ['alertname', 'Service', 'Stage', 'Role'] group_wait: 30s group_interval: 5m repeat_interval: 4h receivers: - name: 'email-notice' email_configs: # adres email odbiorcy - to: user01@zicher.lab # skonfiguruj reguły alertu [root@vlsr01 ~]# mcedit /etc/prometheus/alert_rules.yml #stwórz nowy #przykładowo dla Pracy/Wyłączenia node-exporter'a groups: - name: Instances rules: - alert: InstanceDown expr: up == 0 for: 5m labels: severity: critical annotations: description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.' summary: 'Instance {{ $labels.instance }} down' [root@vlsr01 ~]# mcedit /etc/prometheus/prometheus.yml alerting: alertmanagers: - static_configs: - targets: # linia 12: zmień na (Alertmanager Host):(Port) - 'localhost:9093' # linia 18: dodaj reguły alerty utworzone powyżej rule_files: # - "first_rules.yml" # - "second_rules.yml" - "alert_rules.yml" [root@vlsr01 ~]# systemctl restart prometheus alertmanager [root@vlsr01 ~]# systemctl enable alertmanager
[4] Jeżeli [node-exporter], nie odpowiada – poniższy email zostanie wysłany (mail jest w formacie HTML).
[user01@vlsr01 ~]$ mail >U 12 Alertmanager Tue Feb 8 20:35 233/13173 "[FIRING:2] InstanceDown (vlsr" & 12 Message 12: From alertmanager@zicher.lab Tue Feb 8 20:35:12 2022 Return-Path: <alertmanager@zicher.lab> X-Original-To: user01@zicher.lab Delivered-To: user01@zicher.lab X-Virus-Scanned: amavisd-new at zicher.lab From: Alertmanager <alertmanager@zicher.lab> Subject: [FIRING:2] InstanceDown (vlsr02.zicher.lab:9100 critical) To: user01@zicher.lab Date: Tue, 08 Feb 2022 20:34:55 +0100 Content-Type: multipart/alternative; boundary=8977c8a7a83812efe3f1e3f7353544bddb4fbed48 aee194f1c70a9e8cfc6 Status: RO Part 1: Content-Type: text/html; charset=UTF-8