欢迎来到李先生的博客

深山的鹿,不知归处;万般皆苦,只可自渡。
扩大
缩小

zabbix使用微信报警(四)

https://qy.weixin.qq.com/  企业号注册
http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5    微信调用接口说明
http://qydev.weixin.qq.com/debug 微信企业号接口调试地址
 
一、首先申请企业公众号
 
二、获取AccessToken
 
使用微信,应该最重要的就是这个了,下面是如何获取他,在他的接口文档中,有说明:
 
 

 

首先测试一下,看通过接口调试工具,如何获取Access_Token: 根据自己的corpid和corpsecret获取AccessToken

 
会返回一个结果:

 

那么如何通过命令行获取呢,那就是根据上面文档的get请求的地址: 执行这条命令就可以获得

/usr/bin/curl -s -G https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxx&corpsecret=xxxx |awk -F\":'{print $4}'|awk -F\" '{print $2}'

获得这个值,然后就可以通过他发送消息了,发送接口说明:把刚刚上面获得的AccessToken传给下面这个红色框框的ACCESS_TOKEN地方
 

 

 三、编写脚本,实现微信的发送

 部门ID,应用ID,CorpID,Secret,然后根据CorpID和Secret获得access_token,然后根据微信提供的接口文档进行获取就可以了
 
    #!/bin/bash
    #set -x
    CorpID="xxxxx"
    Secret="xxxxx"
    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"
    Token=$(/usr/bin/curl -s -G $GURL |awk -F\":'{print $4}'|awk -F\" '{print $2}')
    echo $Token
    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"
    UserID=$1
    PartyID=2
    agentid=1
    Msg=$(echo "$@"|cut -d" "-f1-)
    
message(){ printf '{\n' printf '\t"touser": "'"$UserID"\"",\n" printf '\t"toparty": "'"$PartyID"\"",\n" printf '\t"msgtype": "text",\n' printf '\t"agentid": "'"$agentid"\"",\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 "$(message $1 $2 $3)" $PURL

 

这个脚本可以先sh webcat.sh 001 aa bb 先测试一下,看是否成功

 

这里的message是有格式说明的:

 

他的发送消息格式一定要按照他的文档要求来
touser:成员ID列表,多个用|分开
toparty:部门ID列表
msgtype:消息的类型text(支持消息型应用跟主页型应用)
agentid:企业应用ID号
content:消息内容
safe:是否保密消息,0表示否,1表示是,默认为0
 
通俗的话理解:
           1)通过get请求地址,根据自己的corid和secret获取Access Token
           2)把获取的Access Token传递给post地址的ACCESS_TOKEN参数
           3)然后使用规定的文本格式通过curl 发送出去
         
 
四:zabbix设置,和添加邮件一样,有几点注意事项
 
1:添加报警媒介类型,这里的参数是要传递到脚本里去的
 

 

 
2:用户添加微信报警  收件人写
 
 
3:添加动作,在操作细节的时候选择微信报警
 
 
 
获得的结果:

 

若发送不成功,首先可以通过zabbix的动作日志看他是否成功

 

若这里显示的是发送成功,然后又没有收到微信消息,那么很有可能是微信的Access Token的问题,我的办法是重新获取secret

 

posted on 2017-07-19 11:46  Captain_Li  阅读(7104)  评论(0编辑  收藏  举报

导航