获取

描述

integer/array host.get(object parameters)

此方法允许根据指定的参数检索主机。

任何用户类型均可使用此方法。可以在用户角色设置中撤销调用方法的权限。详情参考用户角色获取更多信息。

参数

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

该方法支持以下参数。

参数类型描述
groupidsID/array仅返回指定主机组的主机。
dserviceidsID/array仅返回与指定发现的服务相关的主机。
graphidsID/array仅返回具有指定图表ID的主机。
hostidsID/array仅返回指定主机ID的主机。
httptestidsID/array仅返回具有指定web检查的主机。
interfaceidsID/array仅返回具有指定接口的主机。
itemidsID/array仅返回具有指定监控项的主机。
maintenanceidsID/array仅返回指定维护计划中的主机。
monitored_hostsflag仅返回开启监控的主机。
proxyidsID/array仅返回被指定proxy监控的主机。
proxy_groupidsID/array仅返回被指定proxy组监控的主机。
templated_hostsflag返回主机和模板。
templateidsID/array仅返回链接指定模板的主机。
triggeridsID/array仅返回具有指定触发器的主机。
with_itemsflag仅返回有监控项的主机,

with_monitored_itemswith_simple_graph_items 参数将被覆盖。
with_item_prototypesflag仅返回有监控项原型的主机,

with_simple_graph_item_prototypes 参数将被覆盖。
with_simple_graph_item_prototypesflag仅返回有监控项原型的主机,该监控项原型可以创建数字类型的监控项。
with_graphsflag仅返回有图表的主机。
with_graph_prototypesflag仅返回有图表原型的主机。
with_httptestsflag仅返回有web检查的主机。

with_monitored_httptests 参数将被覆盖。
with_monitored_httptestsflag仅返回开启web检查的主机。
with_monitored_itemsflag仅返回开启监控项的主机。

with_simple_graph_items 参数将被覆盖。
with_monitored_triggersflag仅返回开启触发器的主机。触发器中使用的所有监控项也必须启用。
with_simple_graph_itemsflag仅返回有数字类型监控项的主机。
with_triggersflag仅返回有触发器的主机。

with_monitored_triggers 参数将被覆盖。
withProblemsSuppressedboolean仅返回已抑制问题的主机。

可能的值:
null - (默认) 所有主机;
true - 仅已抑制问题的主机;
false - 仅未抑制问题的主机。
evaltypeinteger标签搜索规则。

可能的值:
0 - (默认) And/Or;
2 - Or.
severitiesinteger/array仅返回指定严重性问题的主机。仅当问题对象为触发器时适用。
tagsobject/array仅返回指定标签的主机。根据标签精确匹配,根据标签值进行大小写敏感或不区分大小写的搜索,具体取决于操作符值。
格式: [{“tag”: “<tag>”, “value”: “<value>”, “operator”: “<operator>”}, …]
空数组将返回所有主机。

可能的操作符值:
0 - (默认) 包含;
1 - 等于;
2 - 不匹配;
3 - 不等于;
4 - 存在;
5 - 不存在。
inheritedTagsboolean返回在其所有链接模板中也指定了 标签 的主机。默认:

可能的值:
true - 链接的模板中存在指定的 标签 ;
false - (默认) 忽略链接模板中的标签
selectDiscoveriesquery返回包含主机低级别自动发现规则的发现规则的属性。

支持 count
selectDiscoveryRulequery返回创建主机(来自于VMware监控中的主机原型)的低级别自动发现规则的发现规则的属性。
selectGraphsquery返回主机图表的属性。

支持 count
selectHostDiscoveryquery返回带有主机发现对象数据的主机发现规则 属性。

主机发现对象将发现的主机链接到主机原型,或将主机原型链接到LLD规则,并具有以下属性:
host - (string) 主机的主机原型;
hostid - (string) 主机发现ID或者主机原型;
parent_hostid - (string) 创建主机的主机原型ID;
parent_itemid - (string) 创建发现主机的LLD规则ID;
lastcheck - (timestamp) 主机最后一次发现时间;
status - (int) 主机发现状态:
0 - (默认) 主机被发现,
1 - 主机没有被发现;
ts_delete - (timestamp) 不再被发现的主机将被删除的时间;
ts_disable - (timestamp) 不再被发现的主机将被禁用的时间;
disable_source - (int) 显示主机是由LLD规则禁用还是手动禁用的:
0 - (默认) 手动禁用,
1 - LLD规则禁用。
selectHostGroupsquery返回主机所属的主机组的属性。
selectHttpTestsquery返回主机web场景httpTests的属性。

支持 count
selectInterfacesquery返回主机接口的属性。

支持 count
selectInventoryquery返回主机资产清单的属性。
selectItemsquery返回主机监控项的属性。

支持 count
selectMacrosquery返回主机的属性。
selectParentTemplatesquery返回主机链接模板父模板 属性。

除了Template对象字段外,它还包含link_type - (integer) 模板链接到主机的方式。
可能的值:
0 - (default) 手动链接;
1 - LLD自动链接.

支持 count
selectDashboardsquery返回仪表盘的属性。

支持 count
selectTagsquery返回主机的标签的属性。
selectInheritedTagsquery返回通过模板链接继承标签的属性。
selectTriggersquery返回主机的触发器的属性。

支持 count
selectValueMapsquery返回主机值映射的属性。
filterobject仅返回与指定过滤器精确匹配的结果。

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

不支持文本数据类型的属性。

支持其它属性: 主机接口的属性。
limitSelectsinteger限制子查询返回的记录数量。

适用于以下子查询:
selectParentTemplates - 结果将根据 主机 排序;
selectInterfaces;
selectItems - 根据名称排序;
selectDiscoveries - 根据名称排序
selectTriggers - 根据描述排序;
selectGraphs - 根据名称排序;
selectDashboards - 根据名称排序。
searchobject返回与指定模式匹配的结果 (不区分大小写)。

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

仅支持字符串文本数据类型的属性。

支持其它属性: 主机接口的属性。
searchInventoryobject返回与指定资产清单数据匹配的主机 (不区分大小写).

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

仅支持字符串文本数据类型的属性。
sortfieldstring/array根据指定的属性对结果进行排序。

可能的值: hostid, host, name, status
countOutputboolean这些对所有 get 方法通用的参数在 参考说明中有详细描述。
editableboolean
excludeSearchboolean
limitinteger
outputquery
preservekeysboolean
searchByAnyboolean
searchWildcardsEnabledboolean
sortorderstring/array
startSearchboolean
selectGroups
(deprecated)
query此参数已弃用,请改用 selectHostGroups
返回主机组数据的主机组 的属性。

返回值

(integer/array) 返回其中之一:

  • 一个对象的数组;
  • 如果使用了 countOutput 参数, 则返回检索到的对象数量。

示例

按名称检索数据

获取主机名为”Zabbix server”和”Linux server”的所有数据。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "filter": {
  6. "host": [
  7. "Zabbix server",
  8. "Linux server"
  9. ]
  10. }
  11. },
  12. "id": 1
  13. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "hostid": "10160",
  6. "proxyid": "0",
  7. "host": "Zabbix server",
  8. "status": "0",
  9. "ipmi_authtype": "-1",
  10. "ipmi_privilege": "2",
  11. "ipmi_username": "",
  12. "ipmi_password": "",
  13. "maintenanceid": "0",
  14. "maintenance_status": "0",
  15. "maintenance_type": "0",
  16. "maintenance_from": "0",
  17. "name": "Zabbix server",
  18. "flags": "0",
  19. "description": "The Zabbix monitoring server.",
  20. "tls_connect": "1",
  21. "tls_accept": "1",
  22. "tls_issuer": "",
  23. "tls_subject": "",
  24. "proxy_groupid": "0",
  25. "monitored_by": "0",
  26. "inventory_mode": "1",
  27. "active_available": "1",
  28. "assigned_proxyid": "0"
  29. },
  30. {
  31. "hostid": "10167",
  32. "proxyid": "0",
  33. "host": "Linux server",
  34. "status": "0",
  35. "ipmi_authtype": "-1",
  36. "ipmi_privilege": "2",
  37. "ipmi_username": "",
  38. "ipmi_password": "",
  39. "maintenanceid": "0",
  40. "maintenance_status": "0",
  41. "maintenance_type": "0",
  42. "maintenance_from": "0",
  43. "name": "Linux server",
  44. "flags": "0",
  45. "description": "",
  46. "tls_connect": "1",
  47. "tls_accept": "1",
  48. "tls_issuer": "",
  49. "tls_subject": "",
  50. "proxy_groupid": "0",
  51. "monitored_by": "0",
  52. "inventory_mode": "1",
  53. "active_available": "1",
  54. "assigned_proxyid": "0"
  55. }
  56. ],
  57. "id": 1
  58. }

获取主机组

获取主机”Zabbix server”所属的主机组。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "output": ["hostid"],
  6. "selectHostGroups": "extend",
  7. "filter": {
  8. "host": [
  9. "Zabbix server"
  10. ]
  11. }
  12. },
  13. "id": 1
  14. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "hostid": "10085",
  6. "hostgroups": [
  7. {
  8. "groupid": "2",
  9. "name": "Linux servers",
  10. "flags": "0",
  11. "uuid": "dc579cd7a1a34222933f24f52a68bcd8"
  12. },
  13. {
  14. "groupid": "4",
  15. "name": "Zabbix servers",
  16. "flags": "0",
  17. "uuid": "6f6799aa69e844b4b3918f779f2abf08"
  18. }
  19. ]
  20. }
  21. ],
  22. "id": 1
  23. }

获取链接的模板

获取主机”10084”链接的模板ID和名称。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "output": ["hostid"],
  6. "selectParentTemplates": [
  7. "templateid",
  8. "name"
  9. ],
  10. "hostids": "10084"
  11. },
  12. "id": 1
  13. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "hostid": "10084",
  6. "parentTemplates": [
  7. {
  8. "name": "Linux",
  9. "templateid": "10001"
  10. },
  11. {
  12. "name": "Zabbix Server",
  13. "templateid": "10047"
  14. }
  15. ]
  16. }
  17. ],
  18. "id": 1
  19. }

按模板获取主机

获取链接模板”10001” (Linux by Zabbix agent) 的主机。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "output": ["hostid", "name"],
  6. "templateids": "10001"
  7. },
  8. "id": 1
  9. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "templateid": "10001",
  6. "hosts": [
  7. {
  8. "hostid": "10084",
  9. "name": "Zabbix server"
  10. },
  11. {
  12. "hostid": "10603",
  13. "name": "Host 1"
  14. },
  15. {
  16. "hostid": "10604",
  17. "name": "Host 2"
  18. }
  19. ]
  20. }
  21. ],
  22. "id": 1
  23. }

通过主机资产清单数据查询主机

查询主机资产清单中 “OS” 字段包含 “Linux” 的主机。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "output": [
  6. "host"
  7. ],
  8. "selectInventory": [
  9. "os"
  10. ],
  11. "searchInventory": {
  12. "os": "Linux"
  13. }
  14. },
  15. "id": 1
  16. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "hostid": "10084",
  6. "host": "Zabbix server",
  7. "inventory": {
  8. "os": "Linux Ubuntu"
  9. }
  10. },
  11. {
  12. "hostid": "10107",
  13. "host": "Linux server",
  14. "inventory": {
  15. "os": "Linux Mint"
  16. }
  17. }
  18. ],
  19. "id": 1
  20. }

通过主机标签搜索

获取主机标签 “Host name” 等于 “Linux server” 的主机

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "output": ["hostid"],
  6. "selectTags": "extend",
  7. "evaltype": 0,
  8. "tags": [
  9. {
  10. "tag": "Host name",
  11. "value": "Linux server",
  12. "operator": 1
  13. }
  14. ]
  15. },
  16. "id": 1
  17. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "hostid": "10085",
  6. "tags": [
  7. {
  8. "tag": "Host name",
  9. "value": "Linux server"
  10. },
  11. {
  12. "tag": "OS",
  13. "value": "RHEL 7"
  14. }
  15. ]
  16. }
  17. ],
  18. "id": 1
  19. }

检索在标签,且标签在主机级别以及链接的父模板中都存在。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "output": ["name"],
  6. "tags": [
  7. {
  8. "tag": "A",
  9. "value": "1",
  10. "operator": 1
  11. }
  12. ],
  13. "inheritedTags": true
  14. },
  15. "id": 1
  16. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "hostid": "10623",
  6. "name": "PC room 1"
  7. },
  8. {
  9. "hostid": "10601",
  10. "name": "Office"
  11. }
  12. ],
  13. "id": 1
  14. }

通过主机标签和模板标签搜索

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

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "output": ["name"],
  6. "hostids": 10502,
  7. "selectTags": ["tag", "value"],
  8. "selectInheritedTags": ["tag", "value"]
  9. },
  10. "id": 1
  11. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "hostid": "10502",
  6. "name": "Desktop",
  7. "tags": [
  8. {
  9. "tag": "A",
  10. "value": "1"
  11. }
  12. ],
  13. "inheritedTags": [
  14. {
  15. "tag": "B",
  16. "value": "2"
  17. }
  18. ]
  19. }
  20. ],
  21. "id": 1
  22. }

根据问题严重程度检索主机

检索所有 “灾难” 问题的主机。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "output": ["name"],
  6. "severities": 5
  7. },
  8. "id": 1
  9. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "hostid": "10160",
  6. "name": "Zabbix server"
  7. }
  8. ],
  9. "id": 1
  10. }

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

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "host.get",
  4. "params": {
  5. "output": ["name"],
  6. "severities": [3, 4]
  7. },
  8. "id": 1
  9. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "hostid": "20170",
  6. "name": "Database"
  7. },
  8. {
  9. "hostid": "20183",
  10. "name": "workstation"
  11. }
  12. ],
  13. "id": 1
  14. }

另见

源码

CHost::get() in ui/include/classes/api/services/CHost.php.