文章目录
申请企业微信(略)
创建企业微信群(略)
添加群机器人(企业微信手机端)
企业微信官网关于群机器人的配置说明请点击此处跳转查看
-
机器人创建完成后会生成一个webhook,请保存好,且不要对外泄漏,如下是官网的解释:
- 在终端某个群组添加机器人之后,可以获取到webhook地址,然后开发者用户按以下说明构造post data向这个地址发起HTTP POST 请求,即可实现给该群组发送消息。
特别特别要注意:一定要保护好机器人的webhook地址,避免泄漏!不要分享到github、博客等可被公开查阅的地方,否则坏人就可以用你的机器人来发垃圾消息了。
复制以下代码到zabbix报警脚本存放路径
进入到zabbix报警脚本存放路径
[root@whzabbix alertscripts]# cat /etc/zabbix/zabbix_server.conf | grep alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@whzabbix alertscripts]# pwd
/usr/lib/zabbix/alertscripts
创建python脚本文件
[root@whzabbix alertscripts]# vim zabbix-python-robot.py
按“i”键进入vim编辑器的插入模式,并粘贴以下代码(需要修改机器人的webhook的地址)
脚本可正常使用,但是后续可能会再继续优化
#!/usr/bin/python3.6
#_*_coding:utf-8 _*_
#author:Fei Huang
import requests,sys,json,time
import urllib3
urllib3.disable_warnings()
def SendMessageURL(User,Subject,Messages):
# 以下URL 引号内的内容替换为你的机器人的webhook的地址
URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxxxxxxxxx"
HEADERS = {"Content-Type": "application/json"}
Data = {
"msgtype": "text",
"text": {
"content": Subject + "\n" + Messages,
#下方代码在群里@相应的人员,注意需要使用userid,就是用户名,不是中文名称,是企业微信通讯录中的“帐号”,这里不用修改,只需要知道账号就可以了。
"mentioned_list" :[User],
#"mentioned_list" :[User,"@all"],
#下方代码可使用手机号进行提示,本示例中并未示例
#"mentioned_mobile_list" : ["13800000000","@all"]
}
}
r = requests.post(url=URL, headers=HEADERS, json=Data, verify=False)
print(r.json())
if __name__ == "__main__":
SENDTO = str(sys.argv[1])
SUBJECT = str(sys.argv[2])
MESSAGE = str(sys.argv[3])
Status = str(SendMessageURL(SENDTO,SUBJECT,MESSAGE))
print (Status)
修改脚本的执行权限
[root@whzabbix alertscripts]# chmod +x zabbix-python-robot.py
测试发送消息
脚本执行的格式
[root@whzabbix alertscripts]# ./zabbix-python-robot.py userid object message
如上所示,脚本执行需要携带3个参数:
参数1:需要提醒的用户名的“账号”
参数2:发送消息的主题
参数3:发送消息的内容
开始测试(测试过程可省略)
[root@whzabbix alertscripts]# ./zabbix-python-robot.py 1 2 3
{'errcode': 0, 'errmsg': 'ok'}
None
结果如下
提醒某人查看(本例中需要提醒用户的账号为:test)
[root@whzabbix alertscripts]# ./zabbix-python-robot.py test 告警测试 这是一条比较简短的告警发送测试
{'errcode': 0, 'errmsg': 'ok'}
None
结果如下
被提示的人员的企业微信会红色特别提示,其它人不会有特别的提示,在将群消息设置成免打扰的时候会特别醒眼
账号:test,中文名字叫:测试账号,这里会直接显示中文账号。
zabbix 添加告警源(本示例中为zabbix-5.0.2的版本)
三个参数如下:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
zabbix的测试