官方文档:https://developer.work.weixin.qq.com/document/path/99110
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 在终端某个群组添加机器人之后,创建者可以在机器人详情页看到该机器人特有的webhookurl。开发者可以按以下说明向这个地址发起HTTP POST 请求,即可实现给该群组发送消息 curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa' \ -H 'Content-Type: application/json' \ -d ' { "msgtype": "text", "text": { "content": "hello world" } }'
文本类型
1 2 3 4 5 6 7 8 { "msgtype" : "text" , "text" : { "content" : "广州今日天气:29度,大部分多云,降雨概率:60%" , "mentioned_list" : [ "wangqing" , "@all" ] , "mentioned_mobile_list" : [ "13800001111" , "@all" ] } }
参数
是否必填
说明
msgtype
是
消息类型,此时固定为text
content
是
文本内容,最长不超过2048个字节,必须是utf8编码
mentioned_list
否
userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list
mentioned_mobile_list
否
手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人
使用python调用接口
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 28 29 30 31 32 33 34 [root@zabbix5-server alertscripts]# yum install -y python36-devel [root@zabbix5-server alertscripts]# pip3 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple [root@web01 ~]# vim wechat.py import requests import json import sys import os headers = {'Content-Type' : 'application/json;charset=utf-8' } api_url = "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) [root@zabbix5-server ~]# vim /usr/lib/zabbix/alertscripts/wechat.py [root@zabbix5-server ~]# chmod +x /usr/lib/zabbix/alertscripts/wechat.py
添加报警媒介
1 2 3 4 管理>报警媒介类型>创建媒体类型 脚本参数:{ALERT.MESSAGE}
添加动作
添加收件人
使用shell脚本调用接口
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 28 29 30 31 32 33 34 35 36 [root@zabbix5-server alertscripts]# vim /usr/lib/zabbix/alertscripts/wechat.sh [root@zabbix5-server alertscripts]# cat wechat.sh web_hook="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=96462ac7-122d-4f51-946e-694a4c11d2ed" headers="Content-Type: application/json" json_file="/usr/lib/zabbix/alertscripts/msg.json" /bin/cat > ${json_file} <<EOF { "msgtype": "text", "text": { "content": "$1" } } EOF /usr/bin/curl "${web_hook} " \ -H "${headers} " \ -d "$(cat ${json_file}) " [root@zabbix5 ~]#vim /usr/lib/zabbix/alertscripts/msg.json { "msgtype" : "text" , "text" : { "content" : "$1 " } } chmod +x /usr/lib/zabbix/alertscripts/wechat.shchown zabbix.zabbix /usr/lib/zabbix/alertscripts/wechat.shchown zabbix.zabbix /usr/lib/zabbix/alertscripts/msg.json
web界面添加报警类型
1 2 3 管理>报警媒介类型>创建媒介类型 脚本参数:{ALERT.MESSAGE}
添加动作
添加保存
添加接收人
添加完记得点更新