title: Alertmanager告警模板配置 #标题tags: 告警模板 #标签
date: 2020-10-31
categories: 监控 # 分类
由于alertmanager默认告警信息比较散乱,故记录下如何使用模板规范化告警信息。此博文是基于 部署Prometheus监控k8s集群 进行配置的。
配置邮箱告警模板
修改alertmanager配置文件
$ cat >alertmanager-cm.yaml <<EOFkind: ConfigMapapiVersion: v1metadata:name: alertmanagernamespace: promdata:alertmanager.yml: |-global:resolve_timeout: 1msmtp_smarthost: 'smtp.163.com:25'smtp_from: 'lv916551516@163.com'smtp_auth_username: 'lv916551516@163.com'smtp_auth_password: 'ZIUWMNWQOPOETO'smtp_require_tls: falsetemplates: # 增加templates配置,指定模板文件- '/etc/alertmanager/template_email.tmpl'route:group_by: [alertname]group_wait: 10sgroup_interval: 10srepeat_interval: 10mreceiver: default-receiverreceivers:- name: 'default-receiver'email_configs:- to: '916551516@qq.com'send_resolved: true#message: '{{ template "email.html" . }}'html: '{{ template "email.html" . }}' # 此处通过html指定模板文件中定义的email.html模板template_email.tmpl: |-{{ define "email.html" }} # 此处的email.html 必须和上面指定的一致(此行注释不可以写进template模板文件中){{- if gt (len .Alerts.Firing) 0 -}}{{ range .Alerts }}@警报<br>实例: {{ .Labels.instance }}<br>信息: {{ .Annotations.summary }}<br>详情: {{ .Annotations.description }}<br>时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}<br>{{ end }}{{ end -}}<br>{{- if gt (len .Alerts.Resolved) 0 -}}{{ range .Alerts }}<br>@恢复<br>实例: {{ .Labels.instance }}<br>信息: {{ .Annotations.summary }}<br>时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}<br>恢复: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}<br>{{ end }}{{ end -}}{{- end }}EOF
配置好后,自行重启相关服务,然后待告警发出,即可看到如下信息:

配置企业微信告警模板
设置企业微信告警模板,必须先配置微信告警,可以参考 Prometheus配置微信告警。
$ cat >alertmanager-cm.yaml <<EOFkind: ConfigMapapiVersion: v1metadata:name: alertmanagernamespace: promdata:alertmanager.yml: |-global:resolve_timeout: 1msmtp_smarthost: 'smtp.163.com:25'smtp_from: 'lv916551516@163.com'smtp_auth_username: 'lv916551516@163.com'smtp_auth_password: 'QKRIUAMMLHGGYEGB'smtp_require_tls: falsetemplates:- '/etc/alertmanager/template_wechat.tmpl' # 指定模板文件route:group_by: [alertname]group_wait: 10sgroup_interval: 10srepeat_interval: 10mreceiver: default-receiverreceivers:- name: 'default-receiver'wechat_configs:- corp_id: ww829ec5c69739bbeeto_user: '@all'agent_id: 100005api_secret: RP8MLvcsVW6A0ynfjtVo4LgZJRTa8Umy49hkVJoMoEsend_resolved: truemessage: '{{ template "wechat.html" . }}' # 此处通过message指定模板文件中定义的wechat.html模板template_wechat.tmpl: |-{{ define "wechat.html" }} # 此处的wechat.html 必须和上面指定的一致{{- if gt (len .Alerts.Firing) 0 -}}{{ range .Alerts }}@警报实例: {{ .Labels.instance }}信息: {{ .Annotations.summary }}详情: {{ .Annotations.description }}时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}{{ end }}{{ end -}}{{- if gt (len .Alerts.Resolved) 0 -}}{{ range .Alerts }}@恢复实例: {{ .Labels.instance }}信息: {{ .Annotations.summary }}时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}恢复: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}{{ end }}{{ end -}}{{- end }}
配置好后,自行重启相关服务,然后待告警发出,即可看到如下信息:

告警恢复信息如下:

