ZABBIX API自动检查主机
#-*-coding:utf-8-*-importjsonimporturllib2fromurllib2importURLError#importsys#importxlrdclassZabbixTools:def__init__(self):self.url='http://10.11.0.215/zabbix/api_jsonrpc.php']self.header={"Content-Type":"application/json"}#登陆验证defuser_login(self):data=json.dumps({"jsonrpc":"2.0","method":"user.login","params":{"user":'admin',"password":'zabbix'},"id":0})request=urllib2.Request(self.url,data)forkeyinself.header:request.add_header(key,self.header[key])try:result=urllib2.urlopen(request)exceptURLErrorase:print"AuthFailed,pleaseCheckyournameandpassword:",e.codeelse:response=json.loads(result.read())result.close()self.authID=response['result']returnself.authID#获取主机defhost_get(self):data=json.dumps({"jsonrpc":"2.0","method":"host.get","params":{"output":["hostid","host"],"selectInterfaces":["interfaceid","ip"]},"auth":self.user_login(),"id":1,})request=urllib2.Request(self.url,data)forkeyinself.header:request.add_header(key,self.header[key])try:result=urllib2.urlopen(request)exceptURLErrorase:ifhasattr(e,'reason'):print'Wefailedtoreachaserver.'print'Reason:',e.reasonelifhasattr(e,'code'):print'Theservercouldnotfulfilltherequest.'print'Errorcode:',e.codeelse:response=json.loads(result.read())result.close()lens=len(response['result'])iflens>0:returnresponse['result']else:return""#####################################################################################-*-coding:utf-8-*-importxlrdimportxlwt#xlutils结合xlrd可以达到修改excel文件目的fromxlutils.copyimportcopyfromopenpyxlimportWorkbookfromopenpyxlimportload_workbookfromopenpyxl.writer.excelimportExcelWriter'''1.类的内部调用:self.<方法名>(参数列表)。2.在类的外部调用:<实例名>.<方法名>(参数列表)。注意:以上两种调用方法中,提供的参数列表中都不用包括self。'''classExcelOperation(object):'''设置默认参数:rowsizecolsize,创建对象时可以写、可不写默认参数'''def__init__(self,filename,rowsize=0,colsize=0):self.filename=filenameself.rowsize=rowsizeself.colsize=colsizedefopen_excel(self):returnxlrd.open_workbook(self.filename)'''table=data.sheets()[0]#通过索引顺序获取table=data.sheet_by_index(0)#通过索引顺序获取table=data.sheet_by_name(u'Sheet1')#通过名称获取'''defread_excel(self):workbook=self.open_excel()sheet=workbook.sheet_by_index(0)nrows=sheet.nrowsncols=sheet.ncolsdata=[]forloopinrange(0,nrows):data.append(sheet.row_values(loop))returndatadefwrite_excel(self):wbk=xlwt.Workbook()sheet=wbk.add_sheet('sheet1')#第0行第一列写入内容sheet.write(0,1,'test')wbk.save('test.xls')defread_write_excel(self):'''4.openpyxl可以对excel文件进行读写操作fromopenpyxlimportWorkbookfromopenpyxlimportload_workbookfromopenpyxl.writer.excelimportExcelWriterworkbook_=load_workbook(u"新歌检索失败1477881109469.xlsx")sheetnames=workbook_.get_sheet_names()#获得表单名字printsheetnamessheet=workbook_.get_sheet_by_name(sheetnames[0])printsheet.cell(row=3,column=3).valuesheet['A1']='47'workbook_.save(u"新歌检索失败1477881109469_new.xlsx")wb=Workbook()ws=wb.activews['A1']=4wb.save("新歌检索失败.xlsx"):return:'''workbook_=load_workbook(u'test.xlsx')sheetnames=workbook_.get_sheet_names()sheet=workbook_.get_sheet_by_name(sheetnames[0])printsheet.cell(row=3,column=3).value###################################################################################-*-coding:utf-8-*-fromtestZabbixApiimportZabbixToolsfrompyExcelimportExcelOperation#程序的入口if__name__=="__main__":#实例化excel对象tab=ExcelOperation('主机列表.xlsx')data=tab.read_excel()dirc={'item{}'.format(i):xfori,xinenumerate(data)}#printdirc['item45'][6]#实例化ZabbixTools对象test=ZabbixTools()result=test.host_get()forkeyindirc:flag='F'foriinrange(len(result)):ifdirc[key][6].strip()==result[i]["interfaces"][0]["ip"]:flag='T'ifflag=='T':#print(dirc[key][6]+"zabbix")passelse:print(dirc[key][6]+"notaddzabbix")
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。