怎么获取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 requests
import json
import csv
import time
def 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和主机名”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网页标题:怎么获取zabbix上所有主机的IP和主机名-创新互联
链接URL:http://hbruida.cn/article/ejcds.html