Alertmanager
Alertmanager ist ein Bestandteil von NKE, der Ihnen die Überwachung Ihrer 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 schauen Sie sich 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. Sie müssen selbst die gesamte Alertmanager-Konfiguration erstellen und uns diese zusenden. Am besten erstellen Sie dazu ein Secret in Ihrem Cluster und füllen es mit der gewünschten Konfiguration. Wir fügen die Alertmanager-Konfiguration dann der Instanz zu. Bitte beachten Sie, dass dies nur ein vorübergehender Prozess ist. Bald werden Sie Alertmanager selbst im Cockpit konfigurieren können.
Beispiele Alertmanager-Konfiguration
1. Alle Warnungen werden per E-Mail versendet
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 stellen Sie sicher, dass Sie Ihren Warnungen einen Schweregrad (Severity
) zuweisen.
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 stellen Sie sicher, dass Sie das Label 'Environment' (Umgebung) in Ihren Meldungen definieren.
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'.
Dateiname: 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" . }}'
Dateiname: 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 -}}
Dokumentation und Links
Videoanleitungen
Sehen Sie sich unsere Videoanleitungen für die GKE Applikations-Überwachung an. Die Videos basieren zwar auf unserem GKE-Produkt, die Konzepte sind allerdings die gleichen.