Grafana 企业微信告警配置

2021.01.14

Grafana 支持的告警方式非常多,对于即时通讯类软件不支持微信和企业微信。

如何让 Grafana 支持企业微信告警,网上有不少开源的解决方案。

  • 基于 Grafana 支持企业微信的分支源码重新编译

参考:Add a new notifier : WeChat Work

  • 使用 Grafana Alerting webhook 功能

参考:g2ww wechat-work-message-push-go

webhook

重新编译太麻烦,也不便于后期升级。开源的解决方案原理都差不多,就是做了一层代理转发。将 Grafana Post的内容转发到企业微信接口。代码结构、部署及配置过程比较简单。

  1. 申请企业微信群机器人并获取到Key
  2. 代码部署
  3. Grafana Alerting webhook 配置

基于 g2ww 项目进行了改进和完善,获取最新代码 g2ww 进行部署。

$ git pull https://github.com/abnerzhao/g2ww.git
$ sudo make docker
$ sudo docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
abnerzhao/g2ww              0.1                 ebd29f4cb023        34 minutes ago      18.6MB
$ sudo docker run -d --name webhook -p 2408:2408 abnerzhao/g2ww:0.1

Alerting 配置

image-20210114121206966

URL 配置可以是 http://ip:port/key 或者使用 nginx 代理 http://domain/key

点击 Test 即可收到如下消息:

企业微信截图_9fc96f81-9331-42f5-8d47-2e129d8fbd16

支持图文和 Markdown 格式,消息内容可自定义。

企业微信截图_838db84d-5184-400c-a2ba-4a214958cc7f

问题

  • 通过 Docker 启动的 Grafana 消息链接如果无法打开,则需要设置环境变量 GF_SERVER_ROOT_URL=http://ip:3000或者修改配置文件 root_url参数。

  • 发送图文消息,图片是无法显示的,需要配置第三方存储如 S3 等。

参考:external-image-store