Prometheus监控报警及自定义邮件模板

alertmanager的配置文件

global:
  smtp_smarthost: 'localhost:25'
  smtp_from: 'alertmanager@example.org'         #用于邮件通知的P发件人
route:                                          #每个输入警报进入根路由
  receiver: 'team-X-mails'                      #根路由不得包含任何匹配项,因为它是所有警报的入口点
  group_by: ['alertname', 'cluster']            #将传入警报分组的标签。默认以告警名进行分组,就是rule文件的alert值进行分组
  group_wait: 30s                               #当传入的警报创建了一组新的警报时,请至少等待多少秒发送初始通知
  group_interval: 5m                            #发送第一个通知时,请等待多少分钟发送一批已开始为该组触发的新警报
  repeat_interval: 3h                           #如果警报已成功发送,请等待多少小时以重新发送警报
  routes:                                       #子路由,父路由的所有属性都会被子路由继承
    - match:
        severity: critical
      receiver: team-X-pager
#如果另一个警报正在触发,则禁止规则允许将一组警报静音,如果同一警报已经严重,我们将使用此选项禁用任何警告级别的通知 
inhibit_rules:
- source_match:
    severity: 'critical'
  target_match:
    severity: 'warning'
  equal: ['alertname']
#如果警报名称相同,则应用抑制,如果源警报和目标警报中均缺少“equal”中列出的所有标签名称,则将应用禁止规则!
receivers:
- name: 'team-X-mails'
  email_configs:
  - to: 'team-X+alerts@example.org, team-Y+alerts@example.org'
- name: 'team-X-pager'
  email_configs:
  - to: 'team-X+alerts-critical@example.org'
  pagerduty_configs:
  - routing_key: <team-X-key>

实际配置

global:
  smtp_smarthost: 'smtp.qq.com:465'  #发件人对应邮件提供商的smtp地址
  smtp_from: '327721596@qq.com'      #发件人邮箱地址
  smtp_auth_username: '327721596@qq.com' #发件人的登陆用户名,默认和发件人地址一致
  smtp_auth_password: 'fjvfdgmpcbbd' #发件人的授权码
  smtp_require_tls: false

templates:
  - '/usr/local/alertmanager/template/*.tmpl'

route:
  group_by: ['alertname','cluster','service']
  group_wait: 5s
  group_interval: 5s
  repeat_interval: 2m
  receiver: 'default-receiver'
  
receivers:
  - name: 'default-receiver'
    email_configs:
    - to: 'ylwang3@i163..com'
      html: '{{ template "email.to.html" . }}' # 设定邮箱的内容模板

邮件模板

{{ define "email.to.html" }}
{{ range .Alerts }}
=========start==========<br>
告警程序: prometheus_alert<br>
告警级别: {{ .Labels.severity }} 级<br>
告警类型: {{ .Labels.alertname }}<br>
故障主机: {{ .Labels.instance }}<br>
告警主题: {{ .Annotations.summary }}<br>
触发时间: {{ .StartsAt.Format "2020-01-02 15:04:05"}} <br>
=========end==========<br>
{{ end }}
{{ end }}

重启altermanager服务后,查看受到的信息如下所示:
在这里插入图片描述

{{ define "email2.to.html" }}
{{ range .Alerts }}
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </haed>
    <body style="margin: 0; padding: 0;">
         <div align="left">
           <table border="1" style="border:5px solid #F2F2F2;" cellspacing="4" cellpadding="3" width="650" style="table-layout:fixed">
         <tr> 
			<th align="left"><b>告警项</b></marquee></th> 
			<th align="left"><b>内容信息</b></marquee></th> 
		 </tr>  		
			<tr>
			<td align="left" style="font-family:微软雅黑; width: 15%" style="WORD-WRAP:break-word">告警标题</td>
			<td align="left" bgcolor="ff0000" style="font-family:微软雅黑; width: 60%" style="WORD-WRAP:break-word">{{ .Annotations.summary }}</td>
			</tr>
			<tr>
			<td align="left" style="font-family:微软雅黑; size=5;width: 20%" style="WORD-WRAP:break-word">告警描述</td>
			<td align="left" bgcolor="ff0000" style="font-family:微软雅黑;width: 80%" style="WORD-WRAP:break-word">{{ .Annotations.summary }}</td>
			</tr>
			<tr>
			<td align="left" style="font-family:微软雅黑;width: 20%" style="WORD-WRAP:break-word">告警等级</td>
			<td align="left" style="font-family:微软雅黑;width: 80%" style="padding-left: 15px;color: red;font-weight: bold;">{{ .Labels.severity }}</td>
			</tr>
			<tr>
			<td align="left" style="font-family:微软雅黑;width: 20%" style="WORD-WRAP:break-word">告警时间</td>
			<td align="left" style="font-family:微软雅黑;width: 80%" style="WORD-WRAP:break-word">{{ .StartsAt.Format "2006-01-02 15:04:05" }}</td>
			</tr>
			<tr>
			<td align="left" style="font-family:微软雅黑;width: 20%" style="WORD-WRAP:break-word">告警主机</td>
			<td align="left" style="font-family:微软雅黑;width: 80%" style="WORD-WRAP:break-word">{{ .Labels.instance }}</td>
			</tr>
             </table> 
     </body> 
</html> 
{{ end }}
{{ end }}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值