Grafana微信報警


一、概述

由於grafana的多數據源特性,結合alertmanager實現微信報警。

 

二、注冊企業微信

訪問鏈接:

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

這里直接使用自己的微信,即可完成注冊。不需要進行企業認證,也可以使用。

 

添加應用

點擊應用管理-->創建應用

 

 添加成功后,就可以看到 AgentldSecret

 

 

點擊右上角我的企業,就會看到企業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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM