获取

描述

host.get(对象参数)整数/数组

此方法允许根据指定的参数获取主机。

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

参数

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

该方法支持以下参数。

参数 类型 描述
groupids string/array 只返回属于给定组的主机。
dserviceids string/array 只返回与给定发现服务相关的主机。
graphids string/array 只返回具有给定图表的主机。
hostids string/array 只返回具有给定主机ID的主机。
httptestids string/array 只返回具有给定网页测试的主机。
interfaceids string/array 只返回使用给定接口的主机。
itemids string/array 只返回具有给定监控项的主机。
maintenanceids string/array 只返回受给定维护影响的主机。
monitored_hosts flag 只返回被监控的主机。
proxy_hosts flag 只返回proxy。
proxyids string/array 只返回由给定proxy监控的主机。
templated_hosts flag 同时返回主机和模板。
templateids string/array 只返回链接到给定模板的主机。
triggerids string/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 只返回具有网页检查的主机。

覆盖with_monitored_httptests参数。
with_monitored_httptests flag 只返回具有启用网页测试的主机。
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 返回存在被抑制问题的主机。

可能的值:
null - (默认) 所有主机;
true - 只有存在被抑制问题的主机;
false - 只有存在未被抑制问题的主机。
evaltype integer 标签搜索的规则。

可能的值:
0 - (默认) And/Or;
2 - Or。
severities integer/array 只返回具有给定严重性问题的主机。仅当问题对象是触发器时适用。
tags object/array 只返回具有给定标签的主机。根据运算符的值,对标签进行精确匹配或对标签值进行大小写敏感或不敏感的搜索。
格式:[{"tag": "<tag>", "value": "<value>", "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
selectGroups query 返回主机所属的groups属性的主机组数据。
selectHostDiscovery query 返回一个hostDiscovery属性,其中包含主机发现对象数据。

主机发现对象将发现的主机链接到主机原型或将主机原型链接到LLD规则,并具有以下属性:
host - (字符串) 主机原型的主机;
hostid - (字符串) 发现的主机或主机原型的ID;
parent_hostid - (字符串) 从创建主机的主机原型的ID;
parent_itemid - (字符串) 创建发现主机的LLD规则的ID;
lastcheck - (时间戳) 最后发现主机的时间;
ts_delete - (时间戳) 将删除不再发现的主机的时间。
selectHttpTests query 返回具有主机Web场景的httpTests属性。

支持count
selectInterfaces query 返回具有主机接口的interfaces属性。

支持count
selectInventory query 返回具有主机清单数据的inventory属性。
selectItems query 返回具有主机监控项的items属性。

支持count
selectMacros query 返回具有主机宏的macros属性。
selectParentTemplates query 返回具有主机链接的模板的parentTemplates属性。

支持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排序;
selectDiscoveries - 按name排序;
selectTriggers - 按description排序;
selectGraphs - 按name排序;
selectDashboards - 按name排序。
search object 返回与给定模式匹配的结果(不区分大小写)。

接受一个数组,其中键是属性名称,值是要搜索的字符串。如果没有给定其他选项,这将执行LIKE "%…%"搜索。

允许按接口属性搜索。仅适用于stringtext字段。
searchInventory object 只返回清单数据与给定通配符搜索匹配的主机。

此参数受search的相同附加参数影响。
sortfield string/array 根据给定属性对结果进行排序。

可能的值有:hostid, host, name, status
countOutput boolean 这些参数对所有get方法都是通用的,详细描述在参考注释中。
editable boolean
excludeSearch boolean
limit integer
output query
preservekeys boolean
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

返回值

(整数/数组) 返回其中之一:

  • 一组对象;
  • 如果使用了 countOutput 参数,则返回获取的对象数量。

示例

按名称检索数据

获取所有关于"Zabbix server"和"Linux server"两个主机的数据。

请求:

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

响应:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "maintenances": [],
                   "hostid": "10160",
                   "proxy_hostid": "0",
                   "host": "Zabbix server",
                   "status": "0",
                   "lastaccess": "0",
                   "ipmi_authtype": "-1",
                   "ipmi_privilege": "2",
                   "ipmi_username": "",
                   "ipmi_password": "",
                   "ipmi_disable_until": "0",
                   "snmp_disable_until": "0",
                   "maintenanceid": "0",
                   "maintenance_status": "0",
                   "maintenance_type": "0",
                   "maintenance_from": "0",
                   "name": "Zabbix server",
                   "description": "The Zabbix monitoring server.",
                   "tls_connect": "1",
                   "tls_accept": "1",
                   "tls_issuer": "",
                   "tls_subject": ""
               },
               {
                   "maintenances": [],
                   "hostid": "10167",
                   "proxy_hostid": "0",
                   "host": "Linux server",
                   "status": "0",
                   "lastaccess": "0",
                   "ipmi_authtype": "-1",
                   "ipmi_privilege": "2",
                   "ipmi_username": "",
                   "ipmi_password": "",
                   "ipmi_disable_until": "0",
                   "snmp_disable_until": "0",
                   "maintenanceid": "0",
                   "maintenance_status": "0",
                   "maintenance_type": "0",
                   "maintenance_from": "0",
                   "name": "Linux server",
                   "description": "",
                   "tls_connect": "1",
                   "tls_accept": "1",
                   "tls_issuer": "",
                   "tls_subject": ""
               }
           ],
           "id": 1
       }

获取主机组

获取主机"Zabbix server"所属的主机组,并不检索主机本身的详细信息。

请求:

{
           "jsonrpc": "2.0",
           "method": "host.get",
           "params": {
               "output": ["hostid"],
               "selectGroups": "extend",
               "filter": {
                   "host": [
                       "Zabbix server"
                   ]
               }
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 2
       }

响应:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "hostid": "10085",
                   "groups": [
                       {
                           "groupid": "2",
                           "name": "Linux servers",
                           "internal": "0",
                           "flags": "0"
                       },
                       {
                           "groupid": "4",
                           "name": "Zabbix servers",
                           "internal": "0",
                           "flags": "0"
                       }
                   ]
               }
           ],
           "id": 2
       }

获取关联的模板

获取主机"10084"关联的模板的ID和名称。

请求:

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

响应:

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

根据模板检索主机

检索与 "10001" (Zabbix agent的Linux) 模板相关联的主机。

请求:

{
           "jsonrpc": "2.0",
           "method": "host.get",
           "params": {
               "output": ["hostid", "name"],
               "templateids": "10001"
           },
           "auth": "70785d2b494a7302309b48afcdb3a401",
           "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": 2,
           "auth": "7f9e00124c75e8f25facd5c093f3e9a0"
       }

响应:

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

按主机标记搜索

检索标记为“主机名”等于“Linux服务器”的主机。

请求:

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

响应:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "hostid": "10085",
                   "tags": [
                       {
                           "tag": "Host name",
                           "value": "Linux server"
                       },
                       {
                           "tag": "OS",
                           "value": "RHEL 7"
                       }
                   ]
               }
           ],
           "id": 1
       }

检索不仅在主机级而且在其链接的父模板中具有这些标记的主机。

请求:

{
           "jsonrpc": "2.0",
           "method": "host.get",
           "params": {
               "output": ["name"],
               "tags": [{"tag": "A", "value": "1", "operator": "0"}],
               "inheritedTags": true
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

响应:

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

搜索主机标签和模板标签

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

请求:

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

响应:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "hostid": "10502",
                   "name": "Desktop",
                   "tags": [
                       {
                           "tag": "A",
                           "value": "1"
                       }
                   ],
                   "inheritedTags": [
                       {
                           "tag": "B",
                           "value": "2"
                       }
                   ]
               }
           ],
           "id": 1
       }

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

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

请求:

{
           "jsonrpc": "2.0",
           "method": "host.get",
           "params": {
               "output": ["name"],
               "severities": 5
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "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]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

响应:

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

另请参阅

源代码

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