Python 使用host.get(groupId)时,Zabbix API返回不正确的值

Python 使用host.get(groupId)时,Zabbix API返回不正确的值,python,zabbix,Python,Zabbix,我试图使用Zabbix的API返回属于特定主机组的所有主机。在阅读上的文档时,我认为groupids参数正是执行此任务所需的参数。它声明:“只返回属于给定组的主机” 问题是,无论我指定哪个组,该函数都返回所有主机组中的每个主机。我有一个解决方法,但这需要对每个主机的可见名称进行精心配置 这里只是一个小例子,我创造了重现这个问题。作为参考,我使用的是Zabbix 2.2.3和PyZabbix 0.6 from pyzabbix import ZabbixAPI zapi = ZabbixAPI(

我试图使用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中的错误还是我不理解groupids参数?

似乎应该在“过滤器”之外指定“groupids”

实际上,如果我将以下内容放入“params”中,它将返回您描述的所有主机:

{
    "output": "extend",
    "filter" : { "groupids": [ "14" ] }
}
但是如果我直接指定“groupids”,Zabbix API只返回指定组的主机:

{
    "output": "extend",
    "groupids": [ "14" ]
}

这就成功了。对于那些使用Pyzabix遇到相同问题的人,格式如下:
zapi.host.get(output='extend',groupid='9'])