【手把手】Grafana集成企业微信机器人

在K8S圈子里,Prometheus + grafana的报警圈子已经相当成熟了,开箱即用。不管是通过原生deployment部署,还是通过PrometheusOperator基本做到一键部署。而Grafana不仅监控展示,监控数据收集能力出众,连日志都可以展示(https://github.com/grafana/loki),在消费不起elasticsearch的场景下,这也是不错的planB。当然我们今天手把手系列要介绍的是如何扩展grafana的报警频道。

手把手系列

旨在让有编程基础的同学能够1基础使用,即使刚接触编程,也可以理解文章内容,部分或者全部在工作中使用。

首先我们了解下官方目前支持的channel有多少,官网地址:https://grafana.com/docs/grafana/latest/alerting/notifications/

图片

支持的channel非常丰富,不管是国内的Dingding还是国外的Slack OpsGenie等等主流的企业内部交流平台都支持,甚至还集成了kafka这样的中间件方便自定义报警平台的集成。但是在国内,越来越多的公司使用企业微信作为内部工具,自然想把grafana的报警信息在企业微信上展示,毕竟一个内部交流工具的消息流通性是最高的,那么该如何集成的?我们接着往下看。

下面展示下目前我司用到的企业微信通知格式。

报警格式:

图片

恢复格式:

图片

如何实现?

1. 创建企业微信机器人

首先要确认,企业微信机器人只存在于群组中。

右击群组,选择添加机器人

图片

添加机器人名字及头像

图片

记录下Webhook地址,到此机器人便成功添加了。

图片

注意添加机器人后这里有一个webhook地址非常重要,里面有个key字段,是一个调用企业微信的api token,如果泄露,那该群组又有可能会被攻击者利用,请妥善保管!

2. 添加报警消息体转化服务

该服务本质上是通过接受grafana发送的字段,转换成企业微信机器人能识别的的字段,然后机器人就会把收到的消息发送到设置好的群组。

目前我是用goland实现,主要实现思路如下:

一 定义两个结构体

企业微信参数结构体

图片

grafana消息字段结构体

图片

附上grafana自定义告警中所有字段。

图片

二 解析grafana消息格式并生成企业微信字段

图片

企业微信机器人官方文档:https://work.weixin.qq.com/api/doc/90000/90136/91770 

三 组装企业微信格式并发送

图片

由于是手把手系列,本文涉及到的代码我会同步到GitHub上,方便大家0基础使用。GitHub地址:https://github.com/liozzazhang/message-transfer

3. 添加grafana webHook

在第二步中,服务起来后,假设地址为http://127.0.0.1:12345

grafana添加webHook地址为:

http://127.0.0.1:12345/cloopy/grafana?webhook=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx-token

设置完后,大家可以在grafana中设置一条测试告警触发验证。

唯一微信公众号: Seveninfos.

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值