码迷,mamicode.com
首页 > 微信 > 详细

(九)Zabbix_监控报警无法通过微信发送信息

时间:2017-12-06 13:09:35      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:zabbix监控报警无法通过微信发送信息

(九)Zabbix监控报警无法通过微信发送信息

 

背景:通过脚本测试脚本正常发送信息,zabbix服务器web端也能够正常报警并执行动作。

思路:查看日志

一、通过动作日志查看错误信息,分3中情况

技术分享图片

1、第一种情况脚本无参数

(1)下图是web端的动作日志报警

技术分享图片

(2)下图是脚本测试报警

技术分享图片

根据上2图发现报错的信息一样,这样不难发现是脚本没有添加参数造成的(此脚本也是从网上下载未做相应的更改)

如下脚本内容,供参考:

#!/usr/bin/python

#_*_coding:utf-8 _*_

import urllib,urllib2

import json

import sys

import simplejson

reload(sys)

sys.setdefaultencoding('utf-8')

def gettoken(corpid,corpsecret):

    gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret

    print  gettoken_url

    try:

        token_file = urllib2.urlopen(gettoken_url)

    except urllib2.HTTPError as e:

        print e.code

        print e.read().decode("utf8")

        sys.exit()

    token_data = token_file.read().decode('utf-8')

    token_json = json.loads(token_data)

    token_json.keys()

    token = token_json['access_token']

    return token

def senddata(access_token,user,subject,content):

    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token

    send_values = {

        "touser":"名称",

        "toparty":"1",

        "msgtype":"text",

        "agentid":"1000002",

        "text":{

            "content":subject + '\n' + content

           },

        "safe":"0"

        }

#    send_data = json.dumps(send_values, ensure_ascii=False)

    send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')

    send_request = urllib2.Request(send_url, send_data)

    response = json.loads(urllib2.urlopen(send_request).read())

    print str(response)

if __name__ == '__main__':

    user = str(sys.argv[1])

    subject = str(sys.argv[2])

    content = str(sys.argv[3])

    corpid =  'ww917369a0329fb487'

    corpsecret = 'jf5EqJGlQQTQvkdynDrz24vbhlsvQXfVJp9B2vImQKA'

    accesstoken = gettoken(corpid,corpsecret)

    senddata(accesstoken,user,subject,content)

 

2、第二种情况脚本只有一个参数

(1)脚本测试如下:

[root@localhost alertscripts]# ./bjhweixin.py test

Traceback (most recent call last):

  File "./bjhweixin.py", line 51, in <module>

    subject = str(sys.argv[2])

IndexError: list index out of range

3、第三种情况脚本只有二个参数

(1)脚本测试如下:

[root@localhost alertscripts]# ./bjhweixin.py test test

Traceback (most recent call last):

  File "./bjhweixin.py", line 52, in <module>

    content = str(sys.argv[3])

IndexError: list index out of range

二、操作

1、为报警媒介类型添加脚本参数

技术分享图片

三、总结

虽然最后发现解决此问题很简单就是忘了添加脚本参数,但是对初学者还是比较生疏,特别对python语言不是很了解的同学。仅供参考。

 


(九)Zabbix_监控报警无法通过微信发送信息

标签:zabbix监控报警无法通过微信发送信息

原文地址:http://blog.51cto.com/zhangshuai2010/2047830

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!