Prometheus 自定义告警模板 搭建监控系统八(入门篇)

Eric_tonyIP属地: 内蒙古自治区
字数 81阅读 1,629

自定义告警模板

  • 创建模板文件
[root@prometheus ~]# mkdir -p /usr/local/Prometheus_alertmanager/template
[root@prometheus ~]# vim /usr/local/Prometheus_alertmanager/template/email.tmpl
{{ define "email.html" }}
    {{ range .Alerts }}
<pre>
    ========start==========
    告警程序: prometheus_alert 
    告警级别: {{ .Labels.severity }} 
    告警类型: {{ .Labels.alertname }} 
    故障主机: {{ .Labels.instance }} 
    告警主题: {{ .Annotations.summary }}
    告警详情: {{ .Annotations.description }}
    触发时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
    ========end==========
</pre>
    {{ end }}
{{ end }}

注释:.StartsAt.Format "2006-01-02 15:04:05"的参数一定不能乱填,这里定义的时间为go 语言的诞生时间!!!如果填错时间会乱码。

  • 修改alertmanager.yml配置
root@prometheus ~]# vim /usr/local/Prometheus_alertmanager/alertmanager.yml
global:
  resolve_timeout: 5m
  smtp_smarthost: 'smtp.163.com:25'      # smtp地址
  smtp_from: 'xxx@163.com'               # 谁发邮件
  smtp_auth_username: 'xxx@163.com'      # 邮箱用户
  smtp_auth_password: 'xxxxx'            # 邮箱客户端授权密码
  smtp_require_tls: false

templates:                               # 指定邮件模板的路径,可以使用相对路径,template/*.tmpl的方式
  - '/usr/local/Prometheus/alertmanager/template/*.tmpl'

route:                                   # route用来设置报警的分发策略
  group_by: ["alertname"]                # 分组名
  group_wait: 30s                        # 当收到告警的时候,等待三十秒看是否还有告警,如果有就一起发出去
  group_interval: 30s                    # 发送警告间隔时间
  repeat_interval: 30s                   # 重复报警的间隔时间
  receiver: Node_warning                 # 设置默认接收人,如果想分组接收,把下面这段的注释去掉
#  routes:                                # 可以指定哪些组接收哪些消息 
#  - receiver: 'Node_warning'
#    continue: true
#    group_wait: 10s
#    match_re:
#      service: mysql|cassandra           # 所有service=mysql或者service=cassandra的告警分配到数据库接收端
#  - receiver: 'MySQL_warning'  
#    group_wait: 10s
#    match_re:                            # 根据标签分组,匹配标签dest=szjf的为fping-receiver组
#      serverity: warning

receivers:                               # 定义接收者,将告警发送给谁
- name: 'Node_warning'
  email_configs:
  - send_resolved: true
    to: 'xxx@163.com'
    html: '{{ template "email.html" . }}'    # 指定使用模板,如果不指定,还是会加载默认的模板的
    headers: { Subject: "[WARN]CPU告警" }    # 配置邮件主题
  • 重启alertmanager
[root@prometheus ~]# systemctl restart alertmanager
  • 重新加载prometheus配置
[root@prometheus Prometheus]# curl -XPOST http://localhost:9090/-/reload
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
更多精彩内容,就在简书APP
"小礼物走一走,来简书关注我"
还没有人赞赏,支持一下
总资产0.609共写了2598字获得14个赞共41个粉丝

推荐阅读更多精彩内容