zabbix微信报警脚本
Shell脚本原理
使用:
curl -s -G url 获取 AccessToken
使用:
curl --data url 传送凭证调用企业号接口
zabbix会传递三个参数给脚本,$1是消息接收账号,$2报警标题,$3报警内容
#!/bin/bash
###SCRIPT_NAME:weixin.sh###
###send message from weixin for zabbix monitor###
###wuhf###
###V1-2015-08-25###
CropID='xxxxxx'
Secret='xxxxxx'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int AppID=3 企业号中的应用id
local UserID=$1 部门成员id,zabbix中定义的微信接收者
local PartyID=1 部门id,定义了范围,组内成员都可接收到消息
local Msg=$(echo "$@" | cut -d" " -f3-) 过滤出zabbix传递的第三个参数
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'" $AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
curl -d "hid=3702021&aid=1002&msg=123987" "http://sdkt.????.net/r/zabbix/alarm.json"
http://sdkt.????.net/r/zabbix/alarm.json?hid=3702021&aid=1002&msg=666
http://sdkt.????.net/r/zabbix/alarm.json
hid 3702021
aid 1002
msg test
#!/bin/bash
# SCRIPT_NAME:weixin.sh
# send message from weixin for zabbix monitor
#V1-2017-06-21 by sl
hid=$1
aid=1002
title=$2
msg=$3
data=$title-$msg
# PURL="http://sdkt.????.net/r/zabbix/alarm.json"
curl -d "hid=$hid&aid=$aid&msg=$data" http://sdkt.????.net/r/zabbix/alarm.json
Shell脚本原理
使用:
curl -s -G url 获取 AccessToken
使用:
curl --data url 传送凭证调用企业号接口
zabbix会传递三个参数给脚本,$1是消息接收账号,$2报警标题,$3报警内容
#!/bin/bash
###SCRIPT_NAME:weixin.sh###
###send message from weixin for zabbix monitor###
###wuhf###
###V1-2015-08-25###
CropID='xxxxxx'
Secret='xxxxxx'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int AppID=3 企业号中的应用id
local UserID=$1 部门成员id,zabbix中定义的微信接收者
local PartyID=1 部门id,定义了范围,组内成员都可接收到消息
local Msg=$(echo "$@" | cut -d" " -f3-) 过滤出zabbix传递的第三个参数
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'" $AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
curl -d "hid=3702021&aid=1002&msg=123987" "http://sdkt.????.net/r/zabbix/alarm.json"
http://sdkt.????.net/r/zabbix/alarm.json?hid=3702021&aid=1002&msg=666
http://sdkt.????.net/r/zabbix/alarm.json
hid 3702021
aid 1002
msg test
#!/bin/bash
# SCRIPT_NAME:weixin.sh
# send message from weixin for zabbix monitor
#V1-2017-06-21 by sl
hid=$1
aid=1002
title=$2
msg=$3
data=$title-$msg
# PURL="http://sdkt.????.net/r/zabbix/alarm.json"
curl -d "hid=$hid&aid=$aid&msg=$data" http://sdkt.????.net/r/zabbix/alarm.json