【问题标题】:pyzabbix get hostid from hostnamepyzabbix从主机名获取hostid
【发布时间】:2018-08-02 13:51:54
【问题描述】:

我刚刚开始使用 pyzabbix。我想从其名称中找到特定主机的 ID。我读到的所有示例都是这样的,其中所需的 host_id 是过滤的(按主机)主机列表中的第一个元素 [0]:

host_name = 'ci-dev'
host_id = zapi.host.get({"filter":{"host":host_name}})[0]["hostid"]

但是,当我使用host_id = zapi.host.get({"filter":{"host":host_name}}) 查看主机列表时,第一个元素不是我要查找的主机。无论我要过滤哪个主机,主机列表中的第一个主机始终是我们的 Zabbix 服务器。我要过滤的主机通常在列表的最后。

我怎么了?

【问题讨论】:

    标签: python zabbix


    【解决方案1】:

    看看py-zabbix,语法类似,但我更喜欢它。

    一个小样本:

    from zabbix.api import ZabbixAPI
    
    zabbixServer    = 'http://localhost/zabbix/'
    zabbixUser      = 'admin'
    zabbixPass      = 'somepass'
    
    zapi = ZabbixAPI(url=zabbixServer, user=zabbixUser, password=zabbixPass)
    
    f  = {  'host' : 'yourhost'  }
    hosts = zapi.host.get(filter=f, output=['hostids', 'host'] );
    
    for host in hosts:
        print "ID: {} - Host: {}".format(host['hostid'], host['host'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 2011-09-21
      • 2013-11-20
      • 2010-12-26
      • 2012-05-31
      • 2012-03-26
      • 1970-01-01
      相关资源
      最近更新 更多