template.get

描述

integer/array template.get(object parameters)

该方法允许根据给定的参数检索模板。

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

参数

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

该方法支持以下参数。

Parameter Type Description
templateids ID/array 仅返回具有给定模板 ID 的模板。
groupids ID/array 仅返回属于给定模板组的模板。
parentTemplateids ID/array 仅返回给定模板所关联的模板。
hostids ID/array 仅返回与给定主机/模板关联的模板。
graphids ID/array 仅返回包含给定图形的模板。
itemids ID/array 仅返回包含给定监控项的模板。
triggerids ID/array 仅返回包含给定触发器的模板。
with_items flag 仅返回具有监控项的模板。
with_triggers flag 仅返回具有触发器的模板。
with_graphs flag 仅返回具有图形的模板。
with_httptests flag 仅返回具有 web 场景的模板。
evaltype integer 标签评估方式

可能的值:
0 - (默认) 与/或;
2 - 或。
tags object/array 仅返回具有给定标签的模板。
格式:[{"tag": "<tag>", "value": "<value>", "operator": "<operator>"}, ...]
空数组返回所有模板。

可能的运算符值:
0 - (默认) 包含;
1 - 等于;
2 - 不包含;
3 - 不等于;
4 - 存在;
5 - 不存在。
selectTags query tags 属性中返回模板标签。
selectHosts query hosts 属性中返回与模板关联的主机。

支持 count
selectTemplateGroups query templategroups 属性中返回模板所属的模板组。
selectTemplates query templates 属性中返回给定模板所关联的模板。

支持 count
selectParentTemplates query parentTemplates 属性中返回与给定模板关联的模板。

支持 count
selectHttpTests query httpTests 属性中返回模板中的 web 场景。

支持 count
selectItems query items 属性中返回模板中的监控项。

支持 count
selectDiscoveries query discoveries 属性中返回模板中的低级别发现。

支持 count
selectTriggers query triggers 属性中返回模板中的触发器。

支持 count
selectGraphs query graphs 属性中返回模板中的图形。

支持 count
selectMacros query macros 属性中返回模板中的宏。
selectDashboards query dashboards 属性中返回模板中的仪表板。

支持 count
selectValueMaps query 返回包含模板值映射的 valuemaps 属性。
limitSelects integer 限制子选择返回的记录数量。

适用于以下子选择:
selectTemplates - 结果将按 name 排序;
selectHosts - 按 host 排序;
selectParentTemplates - 按 host 排序;
selectItems - 按 name 排序;
selectDiscoveries - 按 name 排序;
selectTriggers - 按 description 排序;
selectGraphs - 按 name 排序;
selectDashboards - 按 name 排序。
sortfield string/array 按给定属性对结果排序。

可能的值:hostidhostnamestatus
countOutput boolean 这些参数在参考说明中有描述。
editable boolean
excludeSearch boolean
filter object
limit integer
output query
preservekeys boolean
search object
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean
selectGroups
(deprecated)
query 此参数已弃用,请改用 selectTemplateGroups
groups 属性中返回模板所属的模板组。

返回值

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

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

示例

按名称检索模板

检索名为 "Linux" 和 "Windows" 的两个模板的所有数据。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "template.get",
    "params": {
        "output": "extend",
        "filter": {
            "host": [
                "Linux",
                "Windows"
            ]
        }
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "proxyid": "0",
            "host": "Linux",
            "status": "3",
            "disable_until": "0",
            "error": "",
            "available": "0",
            "errors_from": "0",
            "lastaccess": "0",
            "ipmi_authtype": "0",
            "ipmi_privilege": "2",
            "ipmi_username": "",
            "ipmi_password": "",
            "ipmi_disable_until": "0",
            "ipmi_available": "0",
            "snmp_disable_until": "0",
            "snmp_available": "0",
            "maintenanceid": "0",
            "maintenance_status": "0",
            "maintenance_type": "0",
            "maintenance_from": "0",
            "ipmi_errors_from": "0",
            "snmp_errors_from": "0",
            "ipmi_error": "",
            "snmp_error": "",
            "jmx_disable_until": "0",
            "jmx_available": "0",
            "jmx_errors_from": "0",
            "jmx_error": "",
            "name": "Linux",
            "flags": "0",
            "templateid": "10001",
            "description": "",
            "tls_connect": "1",
            "tls_accept": "1",
            "tls_issuer": "",
            "tls_subject": "",
            "tls_psk_identity": "",
            "tls_psk": "",
            "uuid": "282ffe33afc74cccaf1524d9aa9dc502"
        },
        {
            "proxyid": "0",
            "host": "Windows",
            "status": "3",
            "disable_until": "0",
            "error": "",
            "available": "0",
            "errors_from": "0",
            "lastaccess": "0",
            "ipmi_authtype": "0",
            "ipmi_privilege": "2",
            "ipmi_username": "",
            "ipmi_password": "",
            "ipmi_disable_until": "0",
            "ipmi_available": "0",
            "snmp_disable_until": "0",
            "snmp_available": "0",
            "maintenanceid": "0",
            "maintenance_status": "0",
            "maintenance_type": "0",
            "maintenance_from": "0",
            "ipmi_errors_from": "0",
            "snmp_errors_from": "0",
            "ipmi_error": "",
            "snmp_error": "",
            "jmx_disable_until": "0",
            "jmx_available": "0",
            "jmx_errors_from": "0",
            "jmx_error": "",
            "name": "Windows",
            "flags": "0",
            "templateid": "10081",
            "description": "",
            "tls_connect": "1",
            "tls_accept": "1",
            "tls_issuer": "",
            "tls_subject": "",
            "tls_psk_identity": "",
            "tls_psk": "",
            "uuid": "522d17e1834049be879287b7c0518e5d"
        }
    ],
    "id": 1
}

获取模板组

检索模板 "Linux by Zabbix agent" 所属的模板组。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "template.get",
    "params": {
        "output": ["hostid"],
        "selectTemplateGroups": "extend",
        "filter": {
            "host": [
                "Linux by Zabbix agent"
            ]
        }
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "templateid": "10001",
            "templategroups": [
                {
                    "groupid": "10",
                    "name": "Templates/Operating systems",
                    "uuid": "846977d1dfed4968bc5f8bdb363285bc"
                }
            ]
        }
    ],
    "id": 1
}

通过模板检索主机

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

执行请求:

{
    "jsonrpc": "2.0",
    "method": "template.get",
    "params": {
        "output": "templateid",
        "templateids": "10001",
        "selectHosts": ["hostid", "name"]
    },
    "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
}

按模板标签搜索

检索标签为“主机-name”且值等于“{HOST.NAME}”的模板。

执行请求:

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

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10402",
            "tags": [
                {
                    "tag": "host-name",
                    "value": "{HOST.NAME}"
                }
            ]
        }
    ],
    "id": 1
}

另请参见

来源

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