On this page
获取
描述
integer/array host.get(object parameters)
此方法允许根据指定的参数检索主机。
任何用户类型均可使用此方法。可以在用户角色设置中撤销调用方法的权限。详情参考用户角色获取更多信息。
参数
(object) 定义所需输出的参数。
该方法支持以下参数。
| 参数 | 类型 | 描述 |
|---|---|---|
| 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 | 仅返回由给定 proxies 监控的主机。 |
| proxy_groupids | ID/array | 仅返回由给定 proxy 组监控的主机。 |
| templated_hosts | flag | 同时返回主机和模板。 |
| templateids | ID/array | 仅返回链接到给定模板的主机。 |
| triggerids | ID/array | 仅返回具有给定触发器的主机。 |
| with_items | flag | 仅返回具有监控项的主机。 会覆盖 with_monitored_items 和 with_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 - (默认) 忽略已链接模板的标签。 |
| selectDiscoveryData | query | 返回带有主机发现对象数据的 discoveryData 属性。主机发现对象将已发现主机关联到发现该主机的主机原型。它具有以下属性: host - (string) 主机的 ID;parent_hostid - (string) 创建该主机所依据的主机原型 ID;status - (int) 主机发现状态:0 - (默认) 主机已发现, 1 - 主机不再被发现; ts_delete - (timestamp) 不再被发现的主机将被删除的时间;ts_disable - (timestamp) 不再被发现的主机将被禁用的时间;disable_source - (int) 指示主机是由 LLD 规则禁用还是手动禁用:0 - (默认) 自动禁用, 1 - 由 LLD 规则禁用。 |
| selectDiscoveryRule | query | 返回带有创建该主机的低级别发现规则的 discoveryRule 属性(来自 VMware 监控中的主机原型)。 |
| selectDiscoveryRules | query | 返回带有主机 LLD 规则的 discoveryRules 属性。支持 count。 |
| selectGraphs | query | 返回带有主机图形的 graphs 属性。支持 count。 |
| selectHostGroups | query | 返回带有主机所属主机组数据的 hostgroups 属性。 |
| selectHttpTests | query | 返回带有主机 Web 场景的 httpTests 属性。支持 count。 |
| selectInterfaces | query | 返回带有主机接口的 interfaces 属性。支持 count。 |
| selectInventory | query | 返回带有主机资产清单数据的 inventory 属性。 |
| selectItems | query | 返回带有主机监控项的 items 属性。支持 count。 |
| selectMacros | query | 返回带有主机宏的 macros 属性。 |
| selectParentTemplates | query | 返回带有主机所链接模板的 parentTemplates 属性。除 Template 对象字段外,还包含 link_type - (integer) 模板链接到主机的方式。可能的值: 0 - (默认) 手动链接; 1 - 由 LLD 自动链接。 支持 count。 |
| selectDashboards | query | 返回 dashboards 属性。支持 count。 |
| selectTags | query | 返回带有主机标签的 tags 属性。 |
| selectInheritedTags | query | 返回带有链接到主机的所有模板上标签的 inheritedTags 属性。 |
| selectTriggers | query | 返回带有主机触发器的 triggers 属性。支持 count。 |
| selectValueMaps | query | 返回带有主机值映射的 valuemaps 属性。 |
| filter | object | 仅返回与给定过滤条件完全匹配的结果。 接受一个对象,其中键为属性名称,值为单个值或用于匹配的值数组。 不支持 text 数据类型 的属性。支持附加属性:主机接口属性。 |
| limitSelects | integer | 限制子选择返回的记录数。 适用于以下子选择: selectParentTemplates - 结果将按 host 排序;selectInterfaces;selectItems - 按 name 排序;selectDiscoveryRules - 按 name 排序;selectTriggers - 按 description 排序;selectGraphs - 按 name 排序;selectDashboards - 按 name 排序。 |
| search | object | 返回与给定模式匹配的结果(不区分大小写)。 接受一个对象,其中键为属性名称,值为要搜索的字符串。如果未提供其他选项,将执行 LIKE "%…%" 搜索。仅支持 string 和 text 数据类型 的属性。支持附加属性:主机接口属性。 |
| searchInventory | object | 返回资产清单数据与给定模式匹配的主机(不区分大小写)。 接受一个对象,其中键为属性名称,值为要搜索的字符串。如果未提供其他选项,将执行 LIKE "%…%" 搜索。仅支持 string 和 text 数据类型 的属性。 |
| sortfield | string/array | 按给定属性对结果进行排序。 可能的值: hostid、host、name、status。 |
| countOutput | boolean | 这些参数在参考说明中描述。 |
| editable | boolean | |
| excludeSearch | boolean | |
| limit | integer | |
| output | query | |
| preservekeys | boolean | |
| searchByAny | boolean | |
| searchWildcardsEnabled | boolean | |
| sortorder | string/array | |
| startSearch | boolean | |
| selectDiscoveries | query | 返回带有主机低级别发现规则的 discoveries 属性。支持 count。此查询已弃用,请改用 selectDiscoveryRules。 |
| selectHostDiscovery | query | 返回带有主机发现对象数据的 hostDiscovery 属性。此查询已弃用,请改用 selectDiscoveryData。 |
返回值
(integer/array) 返回其中之一:
- 一个对象的数组;
- 如果使用了
countOutput参数, 则返回检索到的对象数量。
示例
按名称检索数据
获取主机名为"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
}
根据问题严重程度检索主机
检索所有 "灾难" 问题的主机。
请求:
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["name"],
"severities": 5
},
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": [
{
"hostid": "10160",
"name": "Zabbix server"
}
],
"id": 1
}
检索具有 "一般严重" 和 "严重" 问题的主机。
请求:
{
"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”主机的监控项。该请求仅限返回监控项属性 itemid、name 和 status。由于响应内容较大,示例中仅显示了部分监控项。
请求:
{
"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() in ui/include/classes/api/services/CHost.php.