python通过zabbix api获取主机
zabbix强大地方在于有强大的api,zabbix的api可以拿到zabbix大部分数据,目前我所需的数据基本可以通过api获取,以下是通过zabbixapi获取的主机信息python代码,其他数据也如此类推,api使用方法可参见官网文档:
#!/usr/bin/envpython
#-*-coding:utf-8-*-
importjson
importurllib2
fromurllib2importURLError
fromloginimportzabbix_login
t=zabbix_login()
defhostid_get():
data=json.dumps(
{
"jsonrpc":"2.0",
"method":"host.get",
"params":{
"output":"extend",
"groupids":14,
"filter":{"flags":"4"},
},
"auth":t.user_login(),
"id":1,
})
request=urllib2.Request(t.url,data)
forkeyint.header:
request.add_header(key,t.header[key])
try:
result=urllib2.urlopen(request)
exceptURLErrorase:
ifhasattr(e,'reason'):
print'zabbixserverisfaile'
print'Reason:',e.reason
elifhasattr(e,'code'):
print'zabbixservernotrequest.'
print'Errorcode:',e.code
else:
response=json.loads(result.read())
result.close()
hostid=[]
hostname=[]
forhostinresponse['result']:
hostid.append(host['hostid'])
hostname.append(host['name'])
returnhostid,hostname
if__name__=="__main__":
a,b=hostid_get()
i=0
n=len(b)
foriinrange(n):
printa[i],b[i]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。