Zabbix api脚本

import json, urllib2, sys, time

zabbix认证登录
class zabbixtools:
   def __init__(self):
       self.url = "http://127.0.0.1/zabbix/api_jsonrpc.php"
       self.header = {"Content-Type": "application/json"}
       self.authID = self.user_login()
   def user_login(self):
       data = json.dumps(
               {
                   "jsonrpc": "2.0",
                   "method": "user.login",
                   "params": {
                       "user": "admin",
                       "password": "zabbix"
                       },
                   "id": 0
                   })
       request = urllib2.Request(self.url,data)
       for key in self.header:
           request.add_header(key,self.header[key])
       try:
           result = urllib2.urlopen(request)
       except URLError as e:
           print "Auth Failed, Please Check Your Name And Password:",e.code
       else:
           response = json.loads(result.read())
           result.close()
           authID = response['result']
           print 'Auth Successed!   AuthID is:',authID
           return authID
           
zabbix获取组列表
   def hostgroup_get(self):
       data = json.dumps(
       {
           "jsonrpc":"2.0",
           "method":"hostgroup.get",
           "params":{
               "output":["groupid","name"],
               },
           "auth":self.authID, 
           "id":1,
       })
       # create request object
       request = urllib2.Request(self.url,data)
       for key in self.header:
           request.add_header(key,self.header[key])
       # get host list
       try:
           result = urllib2.urlopen(request)
           #print result
       except URLError as e:
           if hasattr(e, 'reason'):
               print 'We failed to reach a server.'
               print 'Reason: ', e.reason
           elif hasattr(e, 'code'):
               print 'The server could not fulfill the request.'
               print 'Error code: ', e.code
       else:
           #print "heh"
           response = json.loads(result.read())
           #print response
           result.close()
           print "Number Of HostGroup: ", len(response['result'])
           #print response
           for group in response['result']:
               print "Group ID:",group['groupid'],"\tGroupName:",group['name']
               
zabbix获取主机列表
   def host_get(self):
       data = json.dumps(
       {
           "jsonrpc":"2.0",
           "method":"host.get",
           "params":{
               "output":["hostid","name"],
               #"output":["extend"],
               "filter":{"host":""}
               #"groupids":groupid
               },
           "auth":self.authID,
           "id":1,
       })
       # create request object
       request = urllib2.Request(self.url,data)
       for key in self.header:
           request.add_header(key,self.header[key])
       # get host list
       try:
           result = urllib2.urlopen(request)
       except URLError as e:
           if hasattr(e, 'reason'):
               print 'We failed to reach a server.'
               print 'Reason: ', e.reason
           elif hasattr(e, 'code'):
               print 'The server could not fulfill the request.'
               print 'Error code: ', e.code
       else:
           response = json.loads(result.read())
           result.close()
           print "Number Of Hosts: ", len(response['result'])
           for host in response['result']:
               print host
               #print "Host ID:",host['hostid'],"Host Name:",host['name']
zabbix获取监控项列表
   def itemsid_get(self, hostid):
       data = json.dumps(
       {
       "jsonrpc":"2.0",
       "method":"item.get",
       "params":{
           "output":["itemids","key_"],
           #"output":"extend",
           "hostids":hostid,
       },
       "auth":self.authID,
       "id":1,
       })
       # create request object
       request = urllib2.Request(self.url,data)
       for key in self.header:
           request.add_header(key,self.header[key])
           # get host list
       try:
           result = urllib2.urlopen(request)
       except URLError as e:
           if hasattr(e, 'reason'):
               print 'We failed to reach a server.'
               print 'Reason: ', e.reason
           elif hasattr(e, 'code'):
               print 'The server could not fulfill the request.'
               print 'Error code: ', e.code
       else:
           response = json.loads(result.read())
           result.close()
           print "Number Of Item: ", len(response['result'])
           for item in response['result']:
               print item
               #print "Host ID:",host['hostid'],"HostName:",host['name']
zabbix获取监控项例示数据列表
   def history_item_get(self, itemid):
       data = json.dumps(
       {
           "jsonrpc":"2.0",
           "method":"history.get",
           "params":{
               "output":"extend",
               "history":3,
               "itemids":itemid,
               "limit":5
           },
           "auth":self.authID,
           "id":1,
       })
       # create request object
       request = urllib2.Request(self.url,data)
       for key in self.header:
           request.add_header(key,self.header[key])
       # get host list
       try:
           result = urllib2.urlopen(request)
       except URLError as e:
           if hasattr(e, 'reason'):
               print 'We failed to reach a server.'
               print 'Reason: ', e.reason
           elif hasattr(e, 'code'):
               print 'The server could not fulfill the request.'
               print 'Error code: ', e.code
       else:
           response = json.loads(result.read())
           print response['result']
           print type(response['result'])
           result.close()
           print "Number Of history_data: ", len(response['result'])
           data1={}
           data2=[]
           for host in response['result']:                
               value=int(host['value'])/1024/1024
               time1=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(int(host['clock'])))
               data1['time']=time1
               data1['value']=value
               data2.append(data1)
               print "value:",value,"\t","time:",time1
               #print "Host ID:",host['hostid'],"HostName:",host['name']
           print data2
           
           
def main():
   test = zabbixtools()
   test.hostgroup_get()
   test.host_get()
   test.itemsid_get("10084")
   test.history_item_get("23699")
   
   
if __name__ == "__main__":
   main()

转载于:https://my.oschina.net/jlan/blog/505103

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值