1.配置文件alertmanager.yml增加邮箱告警(分组告警:匹配关键字通知不同联系人)
cat /usr/local/alertmanager-0.27.0.linux-amd64/alertmanager.yml
global:
resolve_timeout: 5m
smtp_smarthost: 'smtp.qq.com:25'
smtp_from: '******@qq.com'
smtp_auth_username: '*******@qq.com'
smtp_auth_password: '*********'
smtp_require_tls: false
templates:
- "/usr/local/alertmanager-0.27.0.linux-amd64/email.tmpl"
route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 3m
receiver: 'yy03'
routes:
- receiver: 'yy01'
match:
job: k8s_10.10.10.110_node-exporter
- receiver: 'yy02'
match:
namespace: ns03
receivers:
- name: 'yy01'
email_configs:
- to: '******@qq.com'
html: '{{ template "email.to.html". }}'
send_resolved: true
- name: 'yy02'
email_configs:
- to: '******@qq.com'
html: '{{ template "email02.to.html". }}'
send_resolved: true
- name: 'yy03'
email_configs:
- to: '********@qq.com'
html: '{{ template "email02.to.html". }}'
send_resolved: true
inhibit_rules:
- source_match:
severity: 'test'
target_match:
severity: 'test'
equal: ['alertname', 'dev', 'instance']
2.邮箱告警中文模板(邮箱两套中文模板,可分组告警联系人使用不同模板)
cat /usr/local/alertmanager-0.27.0.linux-amd64/email.tmpl
email.tmpl:
{{ define "email.to.html" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{ range .Alerts }}
========= 监控报警 =========<br>
告警级别: {{ .Labels.severity }} <br>
告警类型: {{ .Labels.alertname }} <br>
告警详情: {{ .Annotations.description }} <br>
触发时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} <br>
告警程序: prometheus_alert <br>
告警主机: {{ .Labels.hostIP }} <br>
告警联系人: {{ .Annotations.summary }} <br>
========= = end = =========<br>
{{ end }}{{ end -}}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{ range .Alerts }}
========= 告警恢复 =========<br>
告警级别: {{ .Labels.severity }} <br>
告警类型: {{ .Labels.alertname }} <br>
告警详情: {{ .Annotations.description }} <br>
触发时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} <br>
恢复时间: {{ (.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} <br>
告警程序: prometheus_alert <br>
告警主机: {{ .Labels.hostIP }} <br>
告警联系人: {{ .Annotations.summary }} <br>
========= = end = =========<br>
{{ end }}{{ end -}}
{{- end }}
email02.tmpl:
{{ define "email02.to.html" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{ range .Alerts }}
========= 监控报警 =========<br>
告警级别: {{ .Labels.severity }} <br>
告警类型: {{ .Labels.alertname }} <br>
告警详情: {{ .Annotations.description }} <br>
触发时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} <br>
告警程序: prometheus_alert <br>
告警主机: {{ .Labels.container }} <br>
告警联系人: {{ .Annotations.summary }} <br>
========= = end = =========<br>
{{ end }}{{ end -}}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{ range .Alerts }}
========= 告警恢复 =========<br>
告警级别: {{ .Labels.severity }} <br>
告警类型: {{ .Labels.alertname }} <br>
告警详情: {{ .Annotations.description }} <br>
触发时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} <br>
恢复时间: {{ (.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} <br>
告警程序: prometheus_alert <br>
告警主机: {{ .Labels.container }} <br>
告警联系人: {{ .Annotations.summary }} <br>
========= = end = =========<br>
{{ end }}{{ end -}}
{{- end }}