我刚刚开始使用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服务器。我要过滤的主机通常位于列表的下方。
我怎么了?
答案 0 :(得分:0)
看看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'])