专栏首页python3Grafana微信报警

Grafana微信报警

一、概述

由于grafana的多数据源特性,结合alertmanager实现微信报警。

二、注册企业微信

访问链接:

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

这里直接使用自己的微信,即可完成注册。不需要进行企业认证,也可以使用。

添加应用

点击应用管理-->创建应用

 添加成功后,就可以看到 Agentld和Secret

点击右上角我的企业,就会看到企业id

点击通信录,查看成员详情

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

二、alertmanager

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

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界面。

三、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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python中的单元测试和数据库测试

    py3study
  • Python随笔(四)、python基础

    05 python s12 day4 迭代器原理及使用 什么是迭代: 可以直接作用于for循环的对象统称为可迭代对象(Iterable)。* 可以被next(...

    py3study
  • python中的复数

    py3study
  • 基于 Serverless 架构的编程学习小工具

    之前我做过一个在线编程的软件,目前用户量大概有几十万,通过这个 App 不仅仅可以进行代码的编写、运行还可以进行编程的学习。自己一直对 Serverless ...

    腾讯云serverless团队
  • 腾讯围棋AI“绝艺”在日本UEC大赛一举夺魁,人工智能公司Geek+完成亿元融资 | 大数据24小时

    数据猿导读 AlphaGo之后,腾讯推出围棋AI“绝艺”;机器人公司Geek+获1亿元融资,利用AI实现自动化仓储运营;万达科技宣布与IBM合作,将正式进入中国...

    数据猿
  • 交叉编译学习笔记(一)——交叉编译和交叉工具链

    交叉编译学习笔记(一)——交叉编译和交叉工具链 最近看论文看的烦,又重新拾起之前没有完全完成的交叉编译,准备在网上找资料,好好研究一下。 参考链接: htt...

    剑影啸清寒
  • IDC发布2018年第三季度全球智能手机市场报告,华为表现抢眼

    今年第三季度,全球智能手机总出货量为3.552亿台,这已是全球智能手机出货量连续第六个季度同比下滑。

    镁客网
  • C语言指针一些常见的错误用法

    指针用的好犹如神助,用不好会让你叫苦连连,但大多数人是用不好指针的,所以后来的很多语言都把指针封装,屏蔽。比如JAVA,java是没有指针的,但是很多地方都用到...

    诸葛青云
  • 为什么边缘计算对工业物联网至关重要

    20世纪50年代印刷电路板(PCB)的发明改变了自动化的世界。在PCB之前,电子电路板是手工组装的,这是一个生产力极其有限的生产过程。今天,随着制造过程中各种仪...

    CloudBest
  • 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据

    比如我创建了一个Sales Order(销售订单)后,如何用代码的方式取出这些通过SAP Partner determination自动填充的Involved ...

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券