python监控ip地址Ping不通时通过企业微信通知
时间:2022-07-29 来源:未知 投稿:admin 点击:次
# -*- coding:utf-8 -*-
import os
import xlrd2
import json
import requests
class WeChatPub():
def __init__(self,corpid='wwdfae11037b',secret='UXI1ZwgSkNCTLICdjzobqd5CMyU'):
self.req = requests.session()
self.token = self.get_token(corpid, secret)
print("token is " + self.token)
def get_token(self, corpid, secret):
url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}".format(corpid, secret)
response = self.req.get(url)
if response.status_code == 200:
access_token=json.loads(response.content)['access_token']
return access_token
else:
print("request failed.")
return None
def send_msg(self, content):
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token
header = {
"Content-Type": "application/json"
}
form_data = {
"touser": "@all",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "textcard",
"agentid": 1000002,
"textcard": {
"title": "告警通知",
"description": content,
"url": "URL",
"btntxt": "更多"
},
"safe": 0
}
data=json.dumps(form_data).encode('utf-8')
rep = self.req.post(url, data=data, headers=header)
if rep.status_code == 200:
return json.loads(rep.content)
else:
print("request failed.")
return None
data = xlrd2.open_workbook(os.path.join('/data/monitor.xlsx'))
table = data.sheets()[0] #选取要读的sheet表单
nrows = table.nrows
if __name__ == '__main__':
for i in range(nrows):
if i == 0:
continue
print(table.row_values(i))
t = os.system('ping ' + table.row_values(i)[1] + ' -c 5')
if t == 0:
pass
else:
print(table.row_values(i)[1] + "网络中断")
wechat = WeChatPub()
msg='''<div class=\"normal\">IP地址:''' + table.row_values(i)[1] +'''</div>
<div class=\"normal\">数据中心:''' + table.row_values(i)[3] +'''</div>
<div class=\"normal\">用户名称:''' + table.row_values(i)[0] +'''</div>
<div class=\"normal\">检测方式:''' + table.row_values(i)[2] +'''</div>
<div class=\"highlight\">告警类型:IP地址网络中断</div>'''
wechat.send_msg(msg)
import os
import xlrd2
import json
import requests
class WeChatPub():
def __init__(self,corpid='wwdfae11037b',secret='UXI1ZwgSkNCTLICdjzobqd5CMyU'):
self.req = requests.session()
self.token = self.get_token(corpid, secret)
print("token is " + self.token)
def get_token(self, corpid, secret):
url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}".format(corpid, secret)
response = self.req.get(url)
if response.status_code == 200:
access_token=json.loads(response.content)['access_token']
return access_token
else:
print("request failed.")
return None
def send_msg(self, content):
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token
header = {
"Content-Type": "application/json"
}
form_data = {
"touser": "@all",
"toparty": " PartyID1 | PartyID2 ",
"totag": " TagID1 | TagID2 ",
"msgtype": "textcard",
"agentid": 1000002,
"textcard": {
"title": "告警通知",
"description": content,
"url": "URL",
"btntxt": "更多"
},
"safe": 0
}
data=json.dumps(form_data).encode('utf-8')
rep = self.req.post(url, data=data, headers=header)
if rep.status_code == 200:
return json.loads(rep.content)
else:
print("request failed.")
return None
data = xlrd2.open_workbook(os.path.join('/data/monitor.xlsx'))
table = data.sheets()[0] #选取要读的sheet表单
nrows = table.nrows
if __name__ == '__main__':
for i in range(nrows):
if i == 0:
continue
print(table.row_values(i))
t = os.system('ping ' + table.row_values(i)[1] + ' -c 5')
if t == 0:
pass
else:
print(table.row_values(i)[1] + "网络中断")
wechat = WeChatPub()
msg='''<div class=\"normal\">IP地址:''' + table.row_values(i)[1] +'''</div>
<div class=\"normal\">数据中心:''' + table.row_values(i)[3] +'''</div>
<div class=\"normal\">用户名称:''' + table.row_values(i)[0] +'''</div>
<div class=\"normal\">检测方式:''' + table.row_values(i)[2] +'''</div>
<div class=\"highlight\">告警类型:IP地址网络中断</div>'''
wechat.send_msg(msg)
如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。
相关内容