alertmanager.yml配置如下:
global:
resolve_timeout: 5m
smtp_smarthost: 'smtp.exmail.qq.com:465'
smtp_from: '**********'
smtp_auth_username: '************'
smtp_auth_password: '************'
smtp_require_tls: falsetemplates:
- '/usr/local/alertmanager/template/*.tmpl'receivers:
- name: 'email'
email_configs:
- to: '***********'
smtp_smarthost:是用于发送邮件的邮箱的 SMTP 服务器地址+端口;
smtp_auth_password:是发送邮箱的授权码而不是登录密码;
smtp_require_tls:不设置的话默认为 true,当为 true 时会有 starttls 错误,为了简单这里设置为 false;
templates:指出邮件的模板路径;
html 指出邮件内容模板名,也可以默认读取模板路径中的文件。
headers:邮件主题信息 如果不写headers也可以再模板中自定义默认加载email.default.subject这个模板
to:发邮件给谁,多个地址可以用,隔开
配置告警主题:
{{ define "__subject" }}
{{ if gt (len .Alerts.Firing) 0 -}}
{{ range .Alerts }}
{{ .Labels.alertname }}{{ .Annotations.description }}{{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
{{- end }}
{{- end }}
{{- end }}
这里使用到的是go template,可以结合告警输出的json来自定义内容。
效果如图所示:
因为没有在alertmanager中指定告警模板,所以使用的是默认的告警模板。