Zum Hauptinhalt springen
API-Referenz

Alertmanager

Alertmanager ist ein Bestandteil von NKE, der dir die Überwachung deiner Applikationen ermöglicht.

Verfügbarkeit​

Alertmanager ist als optionaler Service für NKE verfügbar und kann im Cockpit erstellt werden.

Nutzung​

Alertmanager konfigurieren​

Alertmanager ist die Komponente, die im Falle von Prometheus-Warnungen dafür zuständig ist, Benachrichtigungen zu versenden. Alertmanager unterstützt dabei eine Reihe an Benachrichtigungskanälen wie etwa Slack, E-Mail, Hipchat, PagerDuty, etc. Bitte schau dir die offizielle Dokumentation an, um detaillierte Informationen über die Konfiguration zu erhalten. Wir bieten auch Beispielkonfigurationen an.

Wenn eine Alertmanager-Instanz erstellt wird, sind standardmässig keine Benachrichtigungsempfänger konfiguriert. Du musst selbst die gesamte Alertmanager-Konfiguration erstellen und uns diese zusenden. Am besten erstelle dazu ein Secret in deinem Cluster und fülle es mit der gewünschten Konfiguration. Wir fügen die Alertmanager-Konfiguration dann der Instanz zu. Bitte beachte, dass dies nur ein vorübergehender Prozess ist. Bald wirst du Alertmanager selbst im Cockpit konfigurieren können.

Beispiele Alertmanager-Konfiguration​

1. Alle Warnungen werden per E-Mail versendet

alertmanager.yaml
global:
resolve_timeout: 5m
route:
receiver: "email"
group_by: ["alertname"]
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
routes: []
receivers:
- name: "email"
email_configs:
- to: "monitoring-alerts-list@your-domain.ch"
send_resolved: true
# when using STARTTLS (port 587) this needs to be 'true'
require_tls: false
from: "Alertmanager@your-domain.ch"
smarthost: smtp.your-domain.ch:465
auth_username: "Alertmanager@your-domain.ch"
auth_password: "verysecretsecret"
headers: { Subject: "[Alert] Prometheus Alert Email" }

2. Alle kritischen Warnungen werden über Slack versendet. Bei allen anderen Warnstufen werden die Meldungen per E-Mail versendet. Bitte stelle sicher, dass du deinen Warnungen einen Schweregrad (Severity) zuweist.

alertmanager.yaml
global:
resolve_timeout: 5m
route:
# this specifices the default receiver which will be used if no route matches
receiver: "email"
group_by: ["alertname"]
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
routes:
- receiver: "slack"
match_re:
severity: "[cC]ritical"
receivers:
- name: "email"
email_configs:
- to: "monitoring-alerts-list@your-domain.ch"
send_resolved: true
# when using STARTTLS (port 587) this needs to be 'true'
require_tls: false
from: "Alertmanager@your-domain.ch"
smarthost: smtp.your-domain.ch:465
auth_username: "Alertmanager@your-domain.ch"
auth_password: "verysecretsecret"
headers: { Subject: "[Alert] Prometheus Alert Email" }
- name: "slack"
slack_configs:
- send_resolved: true
api_url: https://hooks.slack.com/services/s8o3m2e0r8a8n2d/8snx2X983
channel: "#alerts"

3. Alle Warnungen der Produktionsumgebung werden über Slack versendet. Alle anderen Warnungen werden ignoriert. Bitte stelle sicher, dass du das Label 'Environment' (Umgebung) in deinen Meldungen definierst.

alertmanager.yaml
global:
resolve_timeout: 5m
route:
# this specifices the default receiver which will be used if no route matches
receiver: "devnull"
group_by: ["alertname"]
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
routes:
- receiver: "slack"
match:
environment: production
receivers:
- name: "slack"
slack_configs:
- send_resolved: true
api_url: https://hooks.slack.com/services/s8o3m2e0r8a8n2d/8snx2X983
channel: "#alerts"
- name: devnull

4. Benachrichtigungen werden über eine Vorlage angepasst und alle Warnungen werden über Slack versendet. Hier definieren wir einige Vorlagen in der Datei 'slack.tmpl'.

alertmanager.yaml
global:
resolve_timeout: 5m
# THIS LINE IS VERY IMPORTANT AS OTHERWISE YOUR TEMPLATES WILL NOT BE LOADED
templates:
- "/etc/alertmanager/config/*.tmpl"
route:
receiver: "slack"
group_by: ["alertname"]
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
routes: []
receivers:
- name: "slack"
slack_configs:
- send_resolved: true
api_url: https://hooks.slack.com/services/s8o3m2e0r8a8n2d/8snx2X983
channel: "#alerts"
pretext: "{{ .CommonAnnotations.description }}"
text: '{{ template "slack.myorg.text" . }}'
slack.tmpl
{{ define "slack.myorg.text" -}}
{{ range .Alerts -}}
*Alert:* {{ .Labels.alertname }} - `{{ .Labels.severity }}`
*Description:* {{ .Annotations.description }}
*Details:*
{{ range .Labels.SortedPairs -}}
• *{{ .Name }}:* `{{ .Value }}`
{{ end -}}
{{ template "slack.default.text" . }}
{{ end -}}
{{ end -}}

Videoanleitungen​

Sieh dir unsere Videoanleitungen für die GKE Applikations-Überwachung an. Die Videos basieren zwar auf unserem GKE-Produkt, die Konzepte sind allerdings die gleichen.