一、环境介绍
主机名 |
IP地址 |
系统 |
说明 |
localhost |
192.168.224.11 |
Centos7.6 |
docker方式安装的prometheus |
二、使用企业微信报警
1、注册企业微信
浏览器打开https://work.weixin.qq.com/
点击注册
如下填写资料:

2、webhook告警(和微信应用告警二选一)
添加群机器人
注册成功后,手机下载企业微信,登陆企业微信。
在手机上,如下图操作:
注:因为我这个是测试企业微信,所以就在”企业全员群“,新建群机器人了。真实一般都是新创建个部门,然后把需要接受报警的人拉到这个部门里面,然后在这个部门群里面新建机器人。

复制机器人的webhook地址
我在上图复制的到webhook地址如下:
1
| https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=6b892c28-c0cf-4962-b45d-3c1f75242O3w
|
真实只需要用到key后面的
1
| 6b892c28-c0cf-4962-b45d-3c1f75242O3ws
|
docker安装webhook-wechat
创建存放webhook-wechat的数据目录
1 2
| mkdir /data/docker-prometheus/webhook-wechat -p cd /data/docker-prometheus/webhook-wechat
|
使用cat创建新文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| cat > docker-compose.yaml <<"EOF" version: "2" services: prometheus-webhook-webchat: image: linge365/webhook-wechat:latest container_name: prometheus-webhook-webchat restart: always volumes: - /etc/localtime:/etc/localtime ports: - "5000:5000" environment: ROBOT_TOKEN: "填入之前复制的token" EOF
|
启动
检查
1 2 3
| docker ps 或: docker logs -f prometheus-webhook-webchat
|
修改alertmanager配置
1 2 3 4 5 6 7 8 9 10
| vim alertmanager/config.yml #增加如下配置 route: receiver: wechat
receivers: - name: 'wechat' webhook_configs: - url: 'http://192.168.224.11:5000' send_resolved: true
|

检查配置
1 2 3 4 5
| #docker安装方式,检查 docker exec -it alertmanager amtool check-config /etc/alertmanager/config.yml
#二进制安装方式,检查 /usr/local/Prometheus/alertmanager/alertmanager amtool check-config /etc/alertmanager/config.yml
|
重载alertmanager配置
1
| curl -X POST http://localhost:9093/-/reload
|
3、微信应用告警(和webhook告警二选一)
浏览器打开企业微信
企业微信官网

手机下载“企业微信”,使用注册的手机登录。扫描二维码登录企业微信官网

短信验证

创建应用
登录成功后,选择应用管理–创建应用

上传logo,填写应用名称,选择可见范围

获取AgentID
创建应用成功后,复制AgentId,和查看Secret–会发送Secret到手机企业微信中。
1000002

设置ip白名单

设置可信域名

iad3dc.png
设置ip白名单
获取Secret
手机下载“企业微信”app,并登录成功。”企业微信团队“发来一条新消息,点击查看Secret,复制Secret
-rg8Xtzchefy6w94O6G_qT5gOMhDZt7MsZmHSELAOZw

获取部门id
1
注:获取用户名或者创建标签都可以
点击通讯录–选择企业名–点右边–查看部门id,如下图:

获取corp_id
点击“我的企业”–复制企业id.ww75c7ff0bc812538c

修改alertmanager配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| vim alertmanager/config.yml
route: receiver: wechat
receivers: - name: 'wechat' wechat_configs: - send_resolved: true #to_user: '@all' #发送给企业微信用户的ID,@all是所有人 #to_tag: '1' #企业微信中创建的接收告警的标签 to_party: '1' #部门id agent_id: '1000002' # 企业微信中创建的应用的ID corp_id: 'ww75c7ff0bc812538c' # 企业微信中企业ID api_secret: '-rg8Xtzchefy6w94O6G_qT5gOMhDZt7MsZmHSELAOZw' # 企业微信中,应用的Secret
|
检查配置
1 2 3 4 5
| #docker安装方式,检查 docker exec -it alertmanager amtool check-config /etc/alertmanager/config.yml
#二进制安装方式,检查 /usr/local/Prometheus/alertmanager/alertmanager amtool check-config /etc/alertmanager/config.yml
|
重载alertmanager配置
1
| curl -X POST http://localhost:9093/-/reload
|
4、测试
关闭node-exporter
1 2 3 4 5
| #docker环境 docker stop node-exporter
#二进制安装环境 systemctl stop node_exporter
|
查看prometheus的alerts: http://192.168.224.11:9090/alerts
查看alertmanager的alerts:http://192.168.224.11:9093/#/alerts
如果没收到消息,排查
1
| docker logs -f alertmanager
|
微信正常收到报警信息如下图:

四、使用模版(非必需,仅限微信应用告警)
- 看需求–不使用模版默认也行,不适用webhook方式告警。
1、创建模版文件(prometheus服务器操作)
1 2 3 4
| cd /data/docker-prometheus #创建存放模版的目录 mkdir alertmanager/template
|
通过cat创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| cat > alertmanager/template/wechat.tmpl <<"EOF" {{ define "wechat.html" }} {{- if gt (len .Alerts.Firing) 0 -}}{{ range .Alerts }} @告警通知 告警程序: prometheus_alert 告警级别: {{ .Labels.severity }}级别 告警类型: {{ .Labels.alertname }} 故障主机: {{ .Labels.instance }} 告警主题: {{ .Annotations.summary }} 告警详情: {{ .Annotations.description }} 触发时间: {{ .StartsAt.Local.Format "2006-01-02 15:04:05" }} {{ end }}{{ end -}} {{- if gt (len .Alerts.Resolved) 0 -}}{{ range .Alerts }} @告警恢复 告警程序: prometheus_alert 故障主机: {{ .Labels.instance }} 故障主题: {{ .Annotations.summary }} 告警详情: {{ .Annotations.description }} 告警时间: {{ .StartsAt.Local.Format "2006-01-02 15:04:05" }} 恢复时间: {{ .EndsAt.Local.Format "2006-01-02 15:04:05" }} {{ end }}{{ end -}} {{- end }} EOF
|
检查
1
| vim alertmanager/template/wechat.tmpl
|
2、修改alertmanager配置
1
| vim alertmanager/config.yml
|
增加message这行
1 2 3 4 5 6 7 8 9 10 11 12
| #模版配置 templates: - '/etc/alertmanager/template/*.tmpl'
....
receivers: - name: 'wechat' wechat_configs: - send_resolved: true #只增加这行配置 message: '{{ template "wechat.html" . }}'
|
重载配置
1
| curl -X POST http://localhost:9093/-/reload
|
检查
1
| http://192.168.224.11:9093/#/status
|
3、测试
企业微信应用报警,修改前和修改后的区别
Gitalk 加载中 ...