1. 程式人生 > >(九)Zabbix_監控報警無法通過微信發送信息

(九)Zabbix_監控報警無法通過微信發送信息

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_監控報警無法通過微信發送信息