host.get

描述

integer/array host.get(object parameters)

该方法允许根据给定的参数检索主机。

此方法可供任何类型的用户使用。调用该方法的权限 可以在用户角色设置中撤销。更多信息请参见User roles

参数

(object) 定义所需输出的参数。

该方法支持以下参数。

Parameter Type Description
groupids ID/array 仅返回属于指定组的主机。
dserviceids ID/array 仅返回与指定发现服务相关的主机。
graphids ID/array 仅返回具有指定图形的主机。
hostids ID/array 仅返回具有指定主机 ID 的主机。
httptestids ID/array 仅返回具有指定 web 检查的主机。
interfaceids ID/array 仅返回使用指定接口的主机。
itemids ID/array 仅返回具有指定监控项的主机。
maintenanceids ID/array 仅返回受指定维护影响的主机。
monitored_hosts flag 仅返回受监控的主机。
proxyids ID/array 仅返回由指定 proxy 监控的主机。
proxy_groupids ID/array 仅返回由指定 proxy 组监控的主机。
templated_hosts flag 同时返回主机和模板。
templateids ID/array 仅返回链接到指定模板的主机。
triggerids ID/array 仅返回具有指定触发器的主机。
with_items flag 仅返回具有监控项的主机。

覆盖 with_monitored_itemswith_simple_graph_items 参数。
with_item_prototypes flag 仅返回具有监控项原型的主机。

覆盖 with_simple_graph_item_prototypes 参数。
with_simple_graph_item_prototypes flag 仅返回具有监控项原型的主机,这些原型已启用创建且信息类型为数值。
with_graphs flag 仅返回具有图形的主机。
with_graph_prototypes flag 仅返回具有图形原型的主机。
with_httptests flag 仅返回具有 web 检查的主机。

覆盖 with_monitored_httptests 参数。
with_monitored_httptests flag 仅返回具有已启用 web 检查的主机。
with_monitored_items flag 仅返回具有已启用监控项的主机。

覆盖 with_simple_graph_items 参数。
with_monitored_triggers flag 仅返回具有已启用触发器的主机。触发器中使用的所有监控项也必须已启用。
with_simple_graph_items flag 仅返回具有信息类型为数值的监控项的主机。
with_triggers flag 仅返回具有触发器的主机。

覆盖 with_monitored_triggers 参数。
withProblemsSuppressed boolean 如果设置为 true,则仅返回存在已抑制问题的主机。
evaltype integer 标签评估方式

可能的值:
0 - (默认) And/Or;
2 - Or。
severities integer/array 仅返回具有指定严重性的主机问题。仅当问题对象为触发器时适用。
tags object/array 仅返回具有指定标签的主机。
格式:[{"tag": "<tag>", "value": "<value>", "operator": "<operator>"}, ...]
空数组返回所有主机。

可能的 operator 值:
0 - (默认) 包含;
1 - 等于;
2 - 不包含;
3 - 不等于;
4 - 存在;
5 - 不存在。
inheritedTags boolean 返回其所有关联模板中也具有给定 tags 的主机。

可能的值:
true - 关联模板也必须具有给定 tags
false - (默认) 忽略关联模板标签。
selectDiscoveries query 返回一个 discoveries 属性,其中包含主机低级别发现规则。

支持 count
selectDiscoveryRule query 返回一个 discoveryRule 属性,其中包含创建该主机的低级别发现规则(来自 VMware 监控中的主机原型)。
selectGraphs query 返回一个 graphs 属性,其中包含主机图形。

支持 count
selectHostDiscovery query 返回一个 hostDiscovery 属性,其中包含主机发现对象数据。

主机发现对象将已发现主机与主机原型关联,或将主机原型与 LLD 规则关联,并具有以下属性:
host - (string) 主机原型的主机;
hostid - (string) 已发现主机或主机原型的 ID;
parent_hostid - (string) 创建该主机的主机原型 ID;
parent_itemid - (string) 创建已发现主机的 LLD 规则 ID;
lastcheck - (timestamp) 上次发现主机的时间;
status - (int) 主机发现状态:
0 - (default) 主机已发现,
1 - 主机不再被发现;
ts_delete - (timestamp) 不再被发现的主机将被删除的时间;
ts_disable - (timestamp) 不再被发现的主机将被禁用的时间;
disable_source - (int) 指示主机是由 LLD 规则还是手动禁用:
0 - (default) 自动禁用,
1 - 由 LLD 规则禁用。
selectHostGroups query 返回一个 hostgroups 属性,其中包含主机所属的主机组数据。
selectHttpTests query 返回一个 httpTests 属性,其中包含主机 web 场景。

支持 count
selectInterfaces query 返回一个 interfaces 属性,其中包含主机接口。

支持 count
selectInventory query 返回一个 inventory 属性,其中包含主机清单数据。
selectItems query 返回一个 items 属性,其中包含主机监控项。

支持 count
selectMacros query 返回一个 macros 属性,其中包含主机宏。
selectParentTemplates query 返回一个 parentTemplates 属性,其中包含主机关联的 模板

除 Template 对象字段外,还包含 link_type - (integer) 模板与主机关联的方式。
可能的值:
0 - (default) 手动关联;
1 - 由 LLD 自动关联。

支持 count
selectDashboards query 返回一个 dashboards 属性。

支持 count
selectTags query 返回一个 tags 属性,其中包含主机标签。
selectInheritedTags query 返回一个 inheritedTags 属性,其中包含主机关联的所有模板上的标签。
selectTriggers query 返回一个 triggers 属性,其中包含主机触发器。

支持 count
selectValueMaps query 返回一个 valuemaps 属性,其中包含主机值映射。
filter object 仅返回与给定过滤器完全匹配的结果。

接受一个对象,其中键为属性名,值为要匹配的单个值或值数组。

不支持 text 数据类型 的属性。

支持附加属性:Host interface 属性。
limitSelects integer 限制子选择返回的记录数。

适用于以下子选择:
selectParentTemplates - 结果将按 host 排序;
selectInterfaces
selectItems - 按 name 排序;
selectDiscoveries - 按 name 排序;
selectTriggers - 按 description 排序;
selectGraphs - 按 name 排序;
selectDashboards - 按 name 排序。
search object 返回与给定模式匹配的结果(不区分大小写)。

接受一个对象,其中键为属性名,值为要搜索的字符串。如果未提供其他选项,将执行 LIKE "%…%" 搜索。

仅支持 stringtext 数据类型 的属性。

支持附加属性:Host interface 属性。
searchInventory object 返回其清单数据与给定模式匹配的主机(不区分大小写)。

接受一个对象,其中键为属性名,值为要搜索的字符串。如果未提供其他选项,将执行 LIKE "%…%" 搜索。

仅支持 stringtext 数据类型 的属性。
sortfield string/array 按给定属性对结果排序。

可能的值:hostidhostnamestatus
countOutput boolean 这些参数在参考说明中有描述。
editable boolean
excludeSearch boolean
limit integer
output query
preservekeys boolean
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean
selectGroups
(deprecated)
query 此参数已弃用,请改用 selectHostGroups
返回一个 groups 属性,其中包含主机所属的主机组数据。

返回值

(integer/array) 返回以下之一:

  • array 的 objects;
  • 如果使用了 countOutput 参数,则为检索到的 objects 的数量。

示例

按名称检索数据

检索有关两个名为“Zabbix server”和“Linux server”的主机的所有数据。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "filter": {
            "host": [
                "Zabbix server",
                "Linux server"
            ]
        }
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10160",
            "proxyid": "0",
            "host": "Zabbix server",
            "status": "0",
            "ipmi_authtype": "-1",
            "ipmi_privilege": "2",
            "ipmi_username": "",
            "ipmi_password": "",
            "maintenanceid": "0",
            "maintenance_status": "0",
            "maintenance_type": "0",
            "maintenance_from": "0",
            "name": "Zabbix server",
            "flags": "0",
            "description": "The Zabbix monitoring server.",
            "tls_connect": "1",
            "tls_accept": "1",
            "tls_issuer": "",
            "tls_subject": "",
            "proxy_groupid": "0",
            "monitored_by": "0",
            "inventory_mode": "1",
            "active_available": "1",
            "assigned_proxyid": "0"
        },
        {
            "hostid": "10167",
            "proxyid": "0",
            "host": "Linux server",
            "status": "0",
            "ipmi_authtype": "-1",
            "ipmi_privilege": "2",
            "ipmi_username": "",
            "ipmi_password": "",
            "maintenanceid": "0",
            "maintenance_status": "0",
            "maintenance_type": "0",
            "maintenance_from": "0",
            "name": "Linux server",
            "flags": "0",
            "description": "",
            "tls_connect": "1",
            "tls_accept": "1",
            "tls_issuer": "",
            "tls_subject": "",
            "proxy_groupid": "0",
            "monitored_by": "0",
            "inventory_mode": "1",
            "active_available": "1",
            "assigned_proxyid": "0"
        }
    ],
    "id": 1
}

检索主机组

检索主机组,其中主机 "Zabbix server" 是成员。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid"],
        "selectHostGroups": "extend",
        "filter": {
            "host": [
                "Zabbix server"
            ]
        }
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10085",
            "hostgroups": [
                {
                    "groupid": "2",
                    "name": "Linux servers",
                    "flags": "0",
                    "uuid": "dc579cd7a1a34222933f24f52a68bcd8"
                },
                {
                    "groupid": "4",
                    "name": "Zabbix servers",
                    "flags": "0",
                    "uuid": "6f6799aa69e844b4b3918f779f2abf08"
                }
            ]
        }
    ],
    "id": 1
}

检索关联模板

检索链接到 主机 "10084" 的模板的 ID 和名称。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid"],
        "selectParentTemplates": [
            "templateid",
            "name"
        ],
        "hostids": "10084"
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10084",
            "parentTemplates": [
                {
                    "name": "Linux",
                    "templateid": "10001"
                },
                {
                    "name": "Zabbix Server",
                    "templateid": "10047"
                }
            ]
        }
    ],
    "id": 1
}

通过模板检索主机

检索那些链接了 "10001"(Linux by Zabbix agent)模板的 主机。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid", "name"],
        "templateids": "10001"
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "templateid": "10001",
            "hosts": [
                {
                    "hostid": "10084",
                    "name": "Zabbix server"
                },
                {
                    "hostid": "10603",
                    "name": "Host 1"
                },
                {
                    "hostid": "10604",
                    "name": "Host 2"
                }
            ]
        }
    ],
    "id": 1
}

按主机资产数据搜索

检索在 主机 资产清单的 "OS" 字段中包含 "Linux" 的 主机。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "host"
        ],
        "selectInventory": [
            "os"
        ],
        "searchInventory": {
            "os": "Linux"
        }
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10084",
            "host": "Zabbix server",
            "inventory": {
                "os": "Linux Ubuntu"
            }
        },
        {
            "hostid": "10107",
            "host": "Linux server",
            "inventory": {
                "os": "Linux Mint"
            }
        }
    ],
    "id": 1
}

按主机标签搜索

检索标签 "host-name" 等于 "linux-server" 的主机。

请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid"],
        "selectTags": "extend",
        "evaltype": 0,
        "tags": [
            {
                "tag": "host-name",
                "value": "linux-server",
                "operator": 1
            }
        ]
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10085",
            "tags": [
                {
                    "tag": "host-name",
                    "value": "linux-server",
                    "automatic": "0"
                },
                {
                    "tag": "os",
                    "value": "rhel-7",
                    "automatic": "0"
                }
            ]
        }
    ],
    "id": 1
}

检索这些标签不仅存在于主机级别,而且也存在于其关联的父模板中的主机。

请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["name"],
        "tags": [
            {
                "tag": "os",
                "value": "rhel-7",
                "operator": 1
            }
        ],
        "inheritedTags": true
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10623",
            "name": "PC room 1"
        },
        {
            "hostid": "10601",
            "name": "Office"
        }
    ],
    "id": 1
}

检索主机,但排除带有标签 "component" 的主机。

请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid"],
        "selectTags": "extend",
        "evaltype": 0,
        "tags": [
            {
                "tag": "component",
                "value": "",
                "operator": 5
            }
        ]
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10084",
            "tags": [
                {
                    "tag": "class",
                    "value": "os",
                    "automatic": "0"
                },
                {
                    "tag": "target",
                    "value": "linux",
                    "automatic": "0"
                }
            ]
        },
        {
            "hostid": "10629",
            "tags": [
                {
                    "tag": "class",
                    "value": "application",
                    "automatic": "0"
                },
                {
                    "tag": "target",
                    "value": "browser",
                    "automatic": "0"
                }
            ]
        }
    ],
    "id": 1
}

使用主机标签和模板标签搜索主机

检索带有标签的 一个主机 以及链接到父模板的所有标签。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["name"],
        "hostids": 10502,
        "selectTags": ["tag", "value"],
        "selectInheritedTags": ["tag", "value"]
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10502",
            "name": "Desktop",
            "tags": [
                {
                    "tag": "host-name",
                    "value": "linux-server"
                },
                {
                    "tag": "os",
                    "value": "rhel-7"
                }
            ],
            "inheritedTags": [
                {
                    "tag": "class",
                    "value": "os"
                },
                {
                    "tag": "target",
                    "value": "linux"
                },
                {
                    "tag": "os",
                    "value": "rhel-7"
                }
            ]
        }
    ],
    "id": 1
}

按问题严重性搜索主机

检索具有“Disaster(灾难)”问题的主机。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["name"],
        "severities": 5
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10160",
            "name": "Zabbix server"
        }
    ],
    "id": 1
}

检索具有“Average(一般)”和“High(严重)”问题的主机。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["name"],
        "severities": [3, 4]
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "20170",
            "name": "Database"
        },
        {
            "hostid": "20183",
            "name": "workstation"
        }
    ],
    "id": 1
}

获取主机监控项

获取 "Zabbix server" 主机的监控项。该请求仅限于监控项属性 itemidnamestatus。由于响应内容较大,示例中仅显示了部分监控项。

请求:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid"],
        "selectItems": ["itemid","name","status"],
        "filter": {
            "host": [
                "Zabbix server"
            ]
        }
    },
    "id": 1
}

响应:

{
  "jsonrpc": "2.0",
  "result": [
    {
      "hostid": "10084",
      "items": [
        {
          "itemid": "42227",
          "name": "运行中的 Zabbix agent 的主机名",
          "status": "0"
        },
        {
          "itemid": "42237",
          "name": "Zabbix agent ping",
          "status": "0"
        },
        {
          "itemid": "42250",
          "name": "运行中的 Zabbix agent 版本",
          "status": "0"
        },
        {
          "itemid": "42251",
          "name": "打开的文件描述符最大数量",
          "status": "0"
        },
        {
          "itemid": "42252",
          "name": "进程最大数量",
          "status": "0"
        },
        {
          "itemid": "69869",
          "name": "接口 enp0s3: 入站丢弃的数据包",
          "status": "0"
        },
        {
          "itemid": "69870",
          "name": "接口 enp0s3: 入站错误的数据包",
          "status": "0"
        },
        {
          "itemid": "69871",
          "name": "接口 enp0s3: 接收的比特数",
          "status": "0"
        },
        {
          "itemid": "69872",
          "name": "接口 enp0s3: 出站丢弃的数据包",
          "status": "0"
        },
        {
          "itemid": "69873",
          "name": "接口 enp0s3: 出站错误的数据包",
          "status": "0"
        },
        {
          "itemid": "69874",
          "name": "接口 enp0s3: 发送的比特数",
          "status": "0"
        },
        {
          "itemid": "42253",
          "name": "进程数量",
          "status": "0"
        },
        {
          "itemid": "42254",
          "name": "运行中的进程数量",
          "status": "0"
        },
        {
          "itemid": "42255",
          "name": "系统启动时间",
          "status": "0"
        }
      ]
    }
  ],
  "id": 1
}

另请参阅

来源

CHost::get() 在 ui/include/classes/api/services/CHost.php 中。