代码之家  ›  专栏  ›  技术社区  ›  Nikolay Baranenko

API请求项。按列表获取主机名

  •  2
  • Nikolay Baranenko  · 技术社区  · 8 年前

    要按列表主机名返回值itemsid

    找到hostid列表的变体

    zabbix_get=\
        {
            "jsonrpc": "2.0",
            "method": "item.get",
            "params": {
                "output": "extend",
                "hostids": [123, 234],
                "search": {
                    "key_": "vfs.fs.size"
                },
                "sortfield": "name"
            },
            "auth": authToken.get("result"),
            "id": authToken.get("id")
        }
    

    尝试通过一个主机名请求-良好

    zabbix_get=\
        {
            "jsonrpc": "2.0",
            "method": "item.get",
            "params": {
                "output": "extend",
                "host": "server01"
                "search": {
                    "key_": "vfs.fs.size"
                },
                "sortfield": "name"
            },
            "auth": authToken.get("result"),
            "id": authToken.get("id")
        }
    

    试图通过列出主机名请求

    zabbix_get=\
        {
            "jsonrpc": "2.0",
            "method": "item.get",
            "params": {
                "output": "extend",
                "hosts": ["server01","server02"]
                "search": {
                    "key_": "vfs.fs.size"
                },
                "sortfield": "name"
            },
            "auth": authToken.get("result"),
            "id": authToken.get("id")
        }
    

    扎比克斯被冻住了。

    如何解决这个问题?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Richlv    8 年前

    这个 item.get 方法不支持名为 hosts ,所以它现在正试图为您获取所有主机(和模板)的数据。

    如果要按多个主机筛选,请使用 hostids 而不是参数。