怎么获取zabbix上所有主机的IP和主机名

  • 来源:网络
  • 更新日期:2022-03-08

摘要:服务器 这篇文章给大家分享的是有关怎么获取zabbix上所有主机的IP和主机名的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编

服务器

这篇文章给大家分享的是有关怎么获取zabbix上所有主机的IP和主机名的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

zabbix

zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

下面通过代码给大家介绍获取zabbix上所有主机的IP和主机名,代码如下所示:

#coding:utf-8#获取zabbix上所有主机的IP和主机名import requestsimport jsonimport csvimport timedef get_token():  data = {    "jsonrpc": "2.0",    "method": "user.login",    "params": {      "user": username,      "password": password    },    "id": 0  }  r = requests.get(zaurl, headers=header, data=json.dumps(data))  auth = json.loads(r.text)  return auth["result"]def getHosts(token):  data = {    "jsonrpc": "2.0",    "method": "host.get",    "params": {      "output": [        "hostid",        "host"      ],      "selectInterfaces": [        "interfaceid",        "ip"      ]    },    "id": 2,    "auth": token,  }  request = requests.post(zaurl, headers=header, data=json.dumps(data))  dict = json.loads(request.content)#  print (dict['result'])  return dict['result']if __name__ == "__main__":  zaurl="http://xx.xx.xx.xx/zabbix/api_jsonrpc.php"  header = {"Content-Type": "application/json"}  username = "xx"  password = "xx"  token = get_token()  hostlist = getHosts(token)  datafile = "zabbix.txt"  fdata = open(datafile,'w')  for i in hostlist:    hostid = i['hostid']    hostip = i['host']    fdata.write(hostip + ' ' + hostid + '\\n')  fdata.close()

感谢各位的阅读!关于“怎么获取zabbix上所有主机的IP和主机名”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


"新网虚拟主机"