Grafana微信报警

1、概述

因为grafana的多数据源特性,结合alertmanager实现微信报警。linux

 

2、注册企业微信

访问连接:git

https://work.weixin.qq.com/wework_admin/register_wxgithub

这里直接使用本身的微信,便可完成注册。不须要进行企业认证,也可使用。web

 

添加应用

点击应用管理-->建立应用vim

 

 添加成功后,就能够看到 AgentldSecretapi

 

 

点击右上角个人企业,就会看到企业id服务器

 

 

点击通讯录,查当作员详情微信

 

 

那么这4个信息,就是接下来要使用的了。学习

 

2、alertmanager

alertmanager为prometheus一个单独的报警模块,具备分组、抑制、静默等功能。ui

github地址:

https://github.com/prometheus/alertmanager

 

安装

登陆到prometheus服务器

tar zxvf alertmanager-0.19.0.linux-amd64.tar.gz -C /data mv /data/alertmanager-0.19.0.linux-amd64 /data/alertmanager

 

配置

cd /data/alertmanager/ vim grafana.yml

内容以下:

global: resolve_timeout: 5m templates: - '/usr/local/alertmanager/wechat.tmpl' route: group_by: ['alertname'] group_wait: 5s #同一组内警报,等待group_interval时间后,再继续等待repeat_interval时间 group_interval: 1m #当group_interval时间到后,再等待repeat_interval时间后,才进行报警 repeat_interval: 10m receiver: 'wechat' receivers: - name: 'wechat' wechat_configs: - corp_id: 'wwbba17dd372e' agent_id: '1000005' api_secret: '-CJ9QLEFxLzx7wPgoK9Dt-NWYOLuy-RuX3I' to_user: 'yangguangda' send_resolved: true

 

corp_id:企业id

agent_id:应用Agentld

api_secret:应用Secret

to_user:通信录人员

 

报警再次发送时间为group_interval+repeat_interval,也就是先等待group_interval,再等待repeat_interval。

注意:企业号新建应用的须设置相应的可见范围及人员,不然没法发送信息。

报警模板

cd /data/alertmanager vim wechat.tmpl

内容以下:

{{ define "grafana.default.message" }}{{ range .Alerts }} {{ .StartsAt.Format "2006-01-02 15:03:04" }} {{ range .Annotations.SortedPairs }}{{ .Name }} = {{ .Value }} {{ end }}{{ end }}{{ end }} {{ define "wechat.default.message" }} {{ if eq .Status "firing"}}[Warning]:{{ template "grafana.default.message" . }}{{ end }} {{ if eq .Status "resolved" }}[Resolved]:{{ template "grafana.default.message" . }}{{ end }} {{ end }}

其中:
Status 只有两个状态firing、resolved,经过这个参数是否发送warning和resolved报警信息。

模板的语法还需查官网进行深刻学习。

注意: prometheus 默认时区为UTC且没法改变时区,官方建议在用户的web ui 中从新设置时区,所以咱们的报警时间应该+8:00

启动

cd /data/alertmanager nohup /data/alertmanager/alertmanager --config.file=/data/alertmanager/grafana.yml --storage.path=/data/alertmanager/data/ --log.level=debug &

 

启动后,可经过ip:9093 访问alertmanager界面。

 

3、grafana设置

添加报警渠道

 

 

其中include image 没有做用;
Disable Resolve Message 没有勾选,但不发送报警取消信息;

我是在alertmanager 模板中判断若Status没有firing(则为resolved),则发送报警解决信息。

 

在dashboard中设置alert

 

 当报警时会发送给alertmanager。

 

微信报警以下

时间为UTC时区,而不是CST时区,所以咱们须要自行+8:00

 

 

注意:只有企业微信才能收到报警信息,普通微信是收不到的。

这个是腾讯故意设置的,为了工做和生活分开。

因此,你须要其余人接收报警信息,那么他们也须要下载企业微信才能够。

 

本文参考连接:

https://blog.csdn.net/yanggd1987/article/details/95204976

相关文章
相关标签/搜索