美文网首页自动化监控Zabbix运维驿站IT在线课程
zabbix企业微信发送告警脚本,解决企业号升级后告警发送失败问

zabbix企业微信发送告警脚本,解决企业号升级后告警发送失败问

作者: Zero___ | 来源:发表于2017-06-07 17:49 被阅读290次

    最近企业微信企业号升级为企业微信,导致了原先使用微信企业号发送告警的用户无法正常发送告警。这里提供已经测试通过的脚本以供参考。

    微信告警配置可以参考:http://www.jianshu.com/p/9ae2900f4029

    微信企业号API:https://work.weixin.qq.com/api/doc#10167

    企业微信告警脚本:
    调整这一行Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" '{print $10}'),升级后字段位置调整,把原来的$4改为$10即可。
    还有printf '\t"agentid": '"$AppID"",\n" ,这里要求是整形,不能有空格

    #!/bin/bash
    ###SCRIPT_NAME:weixin.sh###
    ###send message from weixin for zabbix monitor###
    
    CropID='xxxxxxxxxxxxxxxxxxxxxxxx'
    Secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
    Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')   ###升级后字段位置调整,$4改为$10即可
    
    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
    
    function body() {
            local int AppID=1                       ###APP ID
            local UserID=$1                         ###USER ID
            local PartyID=2                         ###PARTY ID
            local Msg=$(echo "$@" | cut -d" " -f3-)
            printf '{\n'
            printf '\t"touser": "'"$User"\"",\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
    

    升级前的微信企业号告警脚本:

    #!/bin/bash
    ###SCRIPT_NAME:weixin.sh###
    ###send message from weixin for zabbix monitor###
    
    CropID='xxxxxxxxxxxxxxxxxxxxxxxx'
    Secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    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=1                       ###APP ID
            local UserID=$1                         ###USER ID
            local PartyID=2                         ###PARTY ID
            local Msg=$(echo "$@" | cut -d" " -f3-)
            printf '{\n'
            printf '\t"touser": "'"$User"\"",\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
    
    

    相关文章

      网友评论

      • WFF_FFW:CropID='##########'
        Secret='########'
        GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
        Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')

        PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

        function body() {
        local intAppID=0 # 企业号中的应用id
        local UserID=$1 # 部门成员id,zabbix中定义的微信接收者
        local PartyID=2 # 部门id,定义了范围,组内成员都可接收到消息
        local Msg=$(echo "$@" | cut -d" " -f3-) # 过滤出zabbix中传递的第三个参数
        printf '{\n'
        printf '\t"touser": "'"$User"\"",\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
        TIME=`date "+%Y.%m.%d_%H%M%S"`
        echo "action $TIME" >> /usr/local/zabbix/share/zabbix/alertscripts/weixin.log 2>&1


        这个脚本没升级前确实是可用的,但升级后不能用,照你的改了下还是不可以,
        这个脚本有什么不同吗?我并没有接收到报警啊,能帮忙看下脚本有什么问题吗

      本文标题:zabbix企业微信发送告警脚本,解决企业号升级后告警发送失败问

      本文链接:https://www.haomeiwen.com/subject/csjafxtx.html