要解决AlertManager中的CommonAnnotations不起作用的问题,可以按照以下步骤进行操作:
global:
...
templates:
- '/etc/alertmanager/template/*.tmpl'
...
route:
...
receiver: 'default-receiver'
group_by:
- ...
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
...
receivers:
- name: 'default-receiver'
email_configs:
...
webhook_configs:
...
slack_configs:
...
...
确保正确配置了templates路径并确保已指定要使用的模板文件。
{{ define "__alertmanager_common_annotations" }}
{{ range .Alerts }}
{{ range .Annotations }}
{{ .Key }}={{ .Value }}
{{ end }}
{{ end }}
{{ end }}
该模板定义了一个名为__alertmanager_common_annotations的模板函数,它将遍历所有警报的注释,并将注释的键值对格式化为Key=Value的形式。
global:
...
templates:
- '/etc/alertmanager/template/common.tmpl'
- '/etc/alertmanager/template/*.tmpl'
...
确保common.tmpl位于templates文件夹中,并且在其他模板文件之前。
receivers:
- name: 'default-receiver'
email_configs:
...
webhook_configs:
- url: 'http://example.com'
send_resolved: false
http_config: {}
template: '{{ template "__alertmanager_common_annotations" . }}'
slack_configs:
...
...
在template字段中使用{{ template "__alertmanager_common_annotations" . }}来使用刚刚定义的模板函数。
重新启动AlertManager后,应该可以看到CommonAnnotations在通知消息中正确地显示出来了。