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 按给定属性对结果排序。

可能的值:hostid、host、name、status。
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 中。