我正在尝试通过Prometheus设置Alertmanager。我已经写了我的alert-rules和alertmanager.yaml文件。我可以通过alertmanager将警报发送到松弛状态。
问题
我无法美化我的警报。我想发送警报的描述,警报名称,摘要。
我尝试使用CommonAnnotations来发送警报的描述,名称和摘要。但不幸的是,它仅适用于“DeadMansSwitch”。对于所有其他警报,我在空闲 channel 上看不到任何内容。
#PrometheusRules
- alert: esWorkerACKSPM
annotations:
description: Buzzsaw esworkers acknowledgment per minute.
summary: Prometheus' alert notification :- Buzzsaw average esworker acknowledgment per minute is lower than 10.
expr: avg(bz_ackspm{broker=~"ldbb-.*", group="esworkers"}) < 10
for: 5m
labels:
severity: urgent
#alertmanager.yaml
global:
templates:
- 'https://github.com/prometheus/alertmanager/blob/master/template/default.tmpl'
route:
group_by: ['severity']
group_wait: 3s
group_interval: 5s
repeat_interval: 20s
receiver: mail-receiver
routes:
- match:
severity: urgent
receiver: critical-mail-receiver
routes:
receivers:
- name: 'mail-receiver'
slack_configs:
- api_url: https://hooks.slack.com/services/XXXXXX/XXXXX1/e7AXXXXXXopzmHNTJmL
channel: '#alertmanager-testing'
text: '{{ .CommonAnnotations.summary }}'
- name: 'critical-mail-receiver'
slack_configs:
- api_url: https://hooks.slack.com/services/T0XXXXCL/XXX6G4/VUVKZ8CnXXXXXXXzZguoXq
channel: '#place'
text: '{{ .CommonAnnotations.summary }} '
预期结果:-闲置通道上的警报摘要。
实际结果:-只能在松弛状态下查看DeadMansSwitch(警报)的摘要。对于其他警报,它只是显示
[FIRING:2] urgent (monitoring/kube-prometheus-prometheus-prometheus)
最佳答案
这实际上是期望的行为。您指定了分组,并且您作为示例发布的邮件是分组邮件([FIRING:2]
表示两个相同的规则匹配)。因此,省略了其他信息字段(在您的情况下为文本,但也包括footer等),因为没有(简便)方法以编程方式判断应显示哪些分组警报。
要显示哪一个?它们中的第一个还是全部(添加冗长性和大量文本/混乱,尤其是如果对两个以上的警报进行了分组)?
因此,如果您想始终显示其他文本,则可以删除分组配置。
关于kubernetes - CommonAnnotations对AlertManager不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55426634/