Ruby on rails 如何通过Ruby脚本获取主机组下的主机

Ruby on rails 如何通过Ruby脚本获取主机组下的主机,ruby-on-rails,ruby,zabbix,Ruby On Rails,Ruby,Zabbix,我可以通过以下方式获取主机组id: puts zbx.hostgroups.get(:name => "Dev" ) 给这个订单 {"groupid"=>"13", "name"=>"Dev", "internal"=>"0", "flags"=>"0"} 但是我想得到这个主机组下的所有节点。虽然我试着用其他方式 获取此主机组下的所有主机,但我在主机中未找到groupid属性。请参阅下面的o/p puts zbx.hosts.get(:host => "i

我可以通过以下方式获取主机组id:

puts zbx.hostgroups.get(:name => "Dev" )
给这个订单

{"groupid"=>"13", "name"=>"Dev", "internal"=>"0", "flags"=>"0"}
但是我想得到这个主机组下的所有节点。虽然我试着用其他方式 获取此主机组下的所有主机,但我在主机中未找到groupid属性。请参阅下面的o/p

puts zbx.hosts.get(:host => "ip-10-10-111-11.ec2.internal")
{“maintenances”=>[],“hostid”=>“10251”,“proxy_hostid”=>“10109”, “主机”=>“ip-10-10-111-11.ec2.内部”,“状态”=>“0”, “禁用_直到”=>“0”、“错误”=>“、“可用”=>“1”, “来自”=>“0”、“lastaccess”=>“0”、“ipmi\u authtype”=>“0”的错误”, “ipmi_特权”=>“2”、“ipmi_用户名”=>”、“ipmi_密码”=>”, “ipmi_禁用_直到”=>“0”,“ipmi_可用”=>“0”, “snmp_禁用_直到”=>“0”,“snmp_可用”=>“0”, “维护ID”=>“0”,“维护状态”=>“0”, “维护类型”=>“0”,“维护来自”=>“0”, “ipmi_错误来自”=>“0”,“snmp_错误来自”=>“0”,“ipmi_错误”=>”, “snmp_错误”=>,“jmx_禁用_直到”=>“0”,“jmx_可用”=>“0”, “jmx_错误来自”=>“0”,“jmx_错误”=>“”, “名称”=>“ip-10-10-111-11.ec2.内部”,“标志”=>“0”,“模板ID”=>“0”}


我没有找到主机和主机组之间的任何关系。

对方法
host.get的简单JSON请求以及以下参数为我提供了属于指定组的所有主机的信息:

{ "output" : "extend", "groupids": [ "4", "12" ] }

请查阅更多信息。

我以以下方式使其工作

host_grps =  zbx.query(
    :method => "host.get",
    :params => {
        "output" => "extend",
        "groupids" => [14]
    }
)
puts host_grps

Its在hashmap列表中提供主机组。

对不起@asaveljevs。我试着运行这个
puts zbx.hosts.get({:output=>“extend”,:groupids=>[“1”]})
,但是它给出了所有主机的列表,而不管具体的groupid=1,如果您看到上面的o/p of host.get,您可以看到没有groupids属性,我们可以通过它来关联它们。您使用的是哪个Zabbix版本?谢谢@asaveljevs。我让它工作了。顺便说一下,我使用的是>zabbixapi-2.2.1.gem>zabbix服务器版本Zabbix2.2.5