以下是警報(bào)和相應(yīng)的Alertmanager配置文件設(shè)置(alertmanager.yml)的所有不同示例蟆炊。 每個(gè)都使用Go模板系統(tǒng)信殊。
一责掏、自定義Slack通知
在這個(gè)例子中荠雕,我們定制了Slack通知,以便向我們組織的wiki發(fā)送一個(gè)URL扩氢,告知如何處理已發(fā)送的特定警報(bào)耕驰。
global:
slack_api_url: '<slack_webhook_url>'
route:
receiver: 'slack-notifications'
group_by: [alertname, datacenter, app]
receivers:
- name: 'slack-notifications'
slack_configs:
- channel: '#alerts'
text: 'https://internal.myorg.net/wiki/alerts/{{ .GroupLabels.app }}/{{ .GroupLabels.alertname }}'
二、訪問CommonAnnotations中的注釋
在這個(gè)例子中类茂,我們再次定制發(fā)送給Slack接收器的文本耍属,訪問存儲在Alertmanager發(fā)送的數(shù)據(jù)的CommonAnnotations
中的摘要和描述。
警報(bào)
groups:
- name: Instances
rules:
- alert: InstanceDown
expr: up == 0
for: 5m
labels:
severity: page
# Prometheus templates apply here in the annotation and label fields of the alert.
annotations:
description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.'
summary: 'Instance {{ $labels.instance }} down'
接收器
- name: 'team-x'
slack_configs:
- channel: '#alerts'
# Alertmanager templates apply here.
text: "<!channel> \nsummary: {{ .CommonAnnotations.summary }}\ndescription: {{ .CommonAnnotations.description }}"
三巩检、范圍內(nèi)所有收到的警報(bào)
最后厚骗,假設(shè)與前一個(gè)示例相同的警報(bào),我們定制我們的接收器以覆蓋從Alertmanager接收的所有警報(bào)兢哭,在新線路上打印它們各自的注釋摘要和描述领舰。
接收器
- name: 'default-receiver'
slack_configs:
- channel: '#alerts'
title: "{{ range .Alerts }}{{ .Annotations.summary }}\n{{ end }}"
text: "{{ range .Alerts }}{{ .Annotations.description }}\n{{ end }}"
四、定義可重用模板
回到我們的第一個(gè)例子,我們還可以提供一個(gè)包含命名模板的文件冲秽,然后由Alertmanager加載舍咖,以避免跨越多行的復(fù)雜模板。 在/alertmanager/template/myorg.tmpl
下創(chuàng)建一個(gè)文件锉桑,并在其中創(chuàng)建一個(gè)名為“slack.myorg.txt”的模板:
{{ define "slack.myorg.text" }}https://internal.myorg.net/wiki/alerts/{{ .GroupLabels.app }}/{{ .GroupLabels.alertname }}{{ end}}
配置現(xiàn)在加載具有“text”字段的給定名稱的模板排霉,并提供自定義模板文件的路徑:
global:
slack_api_url: '<slack_webhook_url>'
route:
receiver: 'slack-notifications'
group_by: [alertname, datacenter, app]
receivers:
- name: 'slack-notifications'
slack_configs:
- channel: '#alerts'
text: '{{ template "slack.myorg.text" . }}'
templates:
- '/etc/alertmanager/templates/myorg.tmpl'
此博客文章中進(jìn)一步詳細(xì)說明了此示例。
五民轴、鏈接
Prometheus官網(wǎng)地址:https://prometheus.io/
我的Github:https://github.com/Alrights/prometheus