python通过zabbix api获取主机

时间:2021-05-22

zabbix强大地方在于有强大的api,zabbix 的api可以拿到zabbix大部分数据,目前我所需的数据基本可以通过api获取,以下是通过zabbix api获取的主机信息python代码,其他数据也如此类推,api使用方法可参见官网文档:

#!/usr/bin/env python#-*- coding: utf-8 -*-import jsonimport urllib2from urllib2 import URLErrorfrom login import zabbix_logint=zabbix_login()def hostid_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) for key in t.header: request.add_header(key, t.header[key]) try: result = urllib2.urlopen(request) except URLError as e: if hasattr(e, 'reason'): print 'zabbix server is faile' print 'Reason: ', e.reason elif hasattr(e, 'code'): print 'zabbix server not request.' print 'Error code: ', e.code else: response = json.loads(result.read()) result.close() hostid=[] hostname=[] for host in response['result']: hostid.append(host['hostid']) hostname.append(host['name']) return hostid,hostname if __name__ == "__main__": a,b=hostid_get() i=0 n=len(b) for i in range(n): print a[i],b[i]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章