Zabbix API在使用host.get(groupids)时返回错误值
我正在尝试使用Zabbix的API来获取某个主机组下的所有主机。看了下文档,发现groupids这个参数应该正好能帮我完成这个任务。文档上说:“只返回属于给定组的主机。”
问题是,不管我指定哪个组,这个功能总是返回所有主机组中的每一台主机。我有一个解决办法,但这需要我费劲地配置每台主机的可见名称。
这里有一个我创建的小例子来重现这个问题。为了说明,我使用的是Zabbix 2.2.3和PyZabbix 0.6。
from pyzabbix import ZabbixAPI
zapi = ZabbixAPI("http://zabbix_URL/zabbix")
zapi.login("username", "password")
for host in zapi.host.get(filter={'groupids': '9'}):
print host
我不认为这是我语法上的错误(虽然也可能是),因为如果我把参数改成下面这样,它就能返回我请求的确切主机。
for host in zapi.host.get(filter={'hostid': '10084'}):
有没有人知道这是API的一个bug,还是我对groupids这个参数理解错了?
1 个回答
1
看起来“groupids”应该放在“filter”之外。
确实,如果我把下面的内容放在“params”里面,它会像你说的那样返回所有主机:
{
"output": "extend",
"filter" : { "groupids": [ "14" ] }
}
但是如果我直接指定“groupids”,Zabbix API只会返回指定组的主机:
{
"output": "extend",
"groupids": [ "14" ]
}