如何在Zabbix API中搜索主机组

时间:2018-12-20 17:38:55

标签: api zabbix

我想列出所有符合某些搜索条件的主机组。

我尝试过:

data = '{"jsonrpc": "2.0",                
         "method": "hostgroup.get",       
         "params": {                      
             "output": "extend",          
              "search": {                 
                 "name": [                
                     "' + group_name + '"
                 ]                        
            },                            
         },                               
         "id":' + str(msg_id) + ',        
         "auth": "' + auth + '"           
       }'

但这不是正确的语法。

我也尝试过:

data = '{"jsonrpc": "2.0",                
     "method": "hostgroup.get",       
     "params": {                      
         "output": "extend",          
          "filter": {                 
             "name": [                
                 "' + group_name + '"
             ]                        
        },                            
     },                               
     "id":' + str(msg_id) + ',        
     "auth": "' + auth + '"           
   }'

此功能有效,但仅与组名完全匹配。因此,它总是返回1或0个匹配项。

我尝试在最后一个查询中添加"options":"searchWildcardsEnabled"选项,但结果没有任何不同(即,它不会产生多个组作为输出)。

1 个答案:

答案 0 :(得分:0)

我找到了正确的方法。我将其张贴在这里,以防日后其他人需要它。

data = '{"jsonrpc": "2.0",                
     "method": "hostgroup.get",       
     "params": {                      
         "output": "extend",          
          "search": {                 
             "name": [                
                 "' + group_name + '"
             ]                        
        }                             
     },                               
     "id":' + str(msg_id) + ',        
     "auth": "' + auth + '"           
   }'

您无需指定通配符,这是默认设置。另外,您无需将%放入查询中。