官方文档: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 请求,即可实现给该群组发送消息
#假设webhook是 https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa


#使用curl命令发消息
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
# 1.安装python环境
[root@zabbix5-server alertscripts]# yum install -y python36-devel

# 2.安装Python的requests模块
[root@zabbix5-server alertscripts]# pip3 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

# 3.编写python脚本
[root@web01 ~]# vim wechat.py
#!/usr/bin/python3
#-*- coding: utf-8 -*-
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)

# 4.将脚本放在/usr/lib/zabbix/alertscripts
[root@zabbix5-server ~]# vim /usr/lib/zabbix/alertscripts/wechat.py

# 5.授权执行权限
[root@zabbix5-server ~]# chmod +x /usr/lib/zabbix/alertscripts/wechat.py

添加报警媒介

1
2
3
4
#web端配置
管理>报警媒介类型>创建媒体类型

脚本参数:{ALERT.MESSAGE}

QQ_1722843581583

QQ_1722843667085

添加动作

QQ_1722843783104

QQ_1722843908351

QQ_1722844043228

QQ_1722844217316

添加收件人

QQ_1722844455876

使用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
# 1.编写shell脚本在指定目录下
[root@zabbix5-server alertscripts]# vim /usr/lib/zabbix/alertscripts/wechat.sh
[root@zabbix5-server alertscripts]# cat wechat.sh
#!/bin/bash
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})"


#2.创建一个json文件
[root@zabbix5 ~]#vim /usr/lib/zabbix/alertscripts/msg.json
{
"msgtype": "text",
"text": {
"content": "$1"
}
}

# 2.授权执行权限
chmod +x /usr/lib/zabbix/alertscripts/wechat.sh

#3.更改属主属组(zabbix启动用户是zabbix,不改则没有权限调用)
chown zabbix.zabbix /usr/lib/zabbix/alertscripts/wechat.sh
chown zabbix.zabbix /usr/lib/zabbix/alertscripts/msg.json

web界面添加报警类型

1
2
3
管理>报警媒介类型>创建媒介类型

脚本参数:{ALERT.MESSAGE}

QQ_1722845658579

QQ_1722845826346

添加动作

1
配置>动作>创建动作

QQ_1722845872056

QQ_1722846012723

添加保存

QQ_1722846086534

添加接收人

添加完记得点更新

QQ_1722846168458