1、申请微信企业号
微信申请企业号(点击申请)
1.1.通讯录添加企业成员
我们要提前把成员信息添加进组织部门,必填项+手机号或者微信号,这样别人扫描二维码的时候才能成功关注企业号。
注意:这里有两个我们要用到信息,一个组织部门的ID,一个部门成员的账号(账号是自己手动指定的,不同于微信号,最好是字母加数字)
部门ID
部门成员账号
2.1.应用中心创建应用
我们要在这里创建应用,因为要通过应用发送消息给部门成员.
注意:这里要记住一个值,应用ID
新建应用.jpg
选择应用类型.jpg
创建应用.jpg
应用ID.jpg
2.2.给部门设置管理员
设置--->功能设置---->权限管理---->新建管理组
管理员必须事先已经关注了企业号
注意:管理组权限设置很重要,不设置后面会出问题!
新建管理组.jpg
管理组基本信息.jpg
管理组权限.jpg
确定管理员可以读取通讯录,可以使用应用发消息。
注意:我们需要管理员的CorpID和Secret
CorpID和Secret.jpg
2.3微信企业号信息统计
我们要准备这些东西:
- 一个微信企业号
- 企业号已经被部门成员关注
- 企业号里有一个可以发消息的应用
- 一个授权管理员,可以使用该应用给成员发消息
我们要取到这些信息:
- 成员账号
- 组织部门ID
- 应用ID
- CropID
- Secret
3. 微信接口调用测试
如何调用微信接口?
调用微信接口需要一个调用接口的凭证:access_token
通过 :CropID 、Secret 才能获取到access_token,但是获取到的token有效期为两分钟
微信企业号接口调试工具( http://qydev.weixin.qq.com/debug)
4.调用微信接口的shell脚本
设置脚本执行路径,编辑zabbix_server.conf文件,添加一行 (路径根据自己情况定)
AlertScriptsPath=/opt/zabbix/share/zabbix/alertscripts
#重启zabbix-server服务
使用: -s -G url 获取 AccessToken
使用: curl --data url 传送凭证调用企业号接口
zabbix会传递三个参数给脚本,$1是消息接收账号,$2报警标题,$3报警内容
4.1 shell脚本
#!/bin/bash 必须要写 否则zabbix action不会调用脚本
#!/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 "[email protected]" | 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
mv weixin.sh /usr/local/zabbix/share/zabbix/alertscripts
chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh
#测试:执行./wechat.sh 1 1 test看自己微信是否能收到东西。($1是消息接收账号,$2报警标题,$3报警内容)
5、zabbix-web前端设置
5.1设置通知媒介
5.2创建用户
5.3、创建触发动作及发送内容
6、测试微信告警发送(zabbix-agent stop 即可)
#############
问题:
1、{"errcode":82001,"errmsg":"All touser & toparty & totag invalid”} (权限问题)
在微信后台配置:设置 -> 权限管理 -> 应用权限, 添加要主动发消息的应用到 应用权限中
或 应用中心->zabbix报警->看见范围、应用管理组
7、zabbix触发格式 Default subject:{TRIGGER.STATUS}: {TRIGGER.NAME}:q
服务异常警报\n
/::@/::@/::@/::@/::@/::@/::@/::@ #微信标识符
服务异常警报\n
告警信息:{TRIGGER.NAME}\n
告警主机:{HOSTNAME1}\n
告警时间:{EVENT.DATE} {EVENT.TIME}\n
告警项目:{TRIGGER.KEY1}\n
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}\n
事件ID:{EVENT.ID}\n
服务恢复通知\n
/::B/::B/::B/::B/::B/::B/::B/::B
服务恢复通知\n
恢复信息:{TRIGGER.NAME}\n
恢复主机:{HOSTNAME1}\n
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}\n
恢复项目:{TRIGGER.KEY1}\n
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}\n
事件ID:{EVENT.ID}\n