企业微信机器人告警
企业微信群聊里面增加机器人,机器人会提供发送信息的URL
python 脚本进行实现的
1、创建企业微信机器人
没有企业微信的可以自己在企业微信官网申请注册个企业,创建企业微信群至少 3 个人以上
这个 webhook 后面需要使用到
2、配置 zabbix server
2.1:配置脚本执行目录
定义脚本目录,我这里就选择了默认的目录
1
2
|
[root@zabbix-master ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep ^A
AlertScriptsPath=/usr/lib/zabbix/alertscripts
|
2.2:创建脚本
进入该定义的脚本存放路径下创建用来推送告警消息的脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@zabbix-master ~]#
[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix-master alertscripts]# vim wechat.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=36d51b45-162f6c9d13909" #这就是先前的webhook地址
def msg(text):
json_text= {
"msgtype": "text",
"text": {
"content": text
},
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
~
|
2.3:赋予脚本执行权限
1
2
3
4
|
[root@zabbix-master alertscripts]# chmod +x wechat.py
[root@zabbix-master alertscripts]# python wechat.py 你好
{"errcode":0,"errmsg":"ok"}
[root@zabbix-master alertscripts]#
|
3、zabbix Web 页面配置
3.1:创建报警媒介
管理–> 报警媒介类型–> 创建媒介类型
新建一个企业微信的报警,脚本名称就是我们脚本名 wechat.py
3.2:创建动作
默认标题:
1
2
3
4
5
6
7
8
9
10
11
12
|
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
|
恢复操作
1
2
3
4
5
6
7
8
9
10
11
12
13
|
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
|
4、测试发送告警