trigger.get

描述

integer/array trigger.get(object parameters)

该方法允许根据给定的参数检索触发器。

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

参数

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

该方法支持以下参数。

Parameter Type Description
triggerids ID/array 仅返回具有给定 ID 的触发器。
groupids ID/array 仅返回属于给定主机组或模板组中的主机或模板的触发器。
templateids ID/array 仅返回属于给定模板的触发器。
hostids ID/array 仅返回属于给定主机的触发器。
itemids ID/array 仅返回包含给定监控项的触发器。
functions string/array 仅返回使用给定函数的触发器。

有关支持的函数列表,请参阅支持的函数页面。
group string 仅返回属于名称为给定名称的主机组或模板组中的主机或模板的触发器。
host string 仅返回属于技术名称为给定值的主机的触发器。
inherited boolean 如果设置为 true,则仅返回从模板继承的触发器。
templated boolean 如果设置为 true,则仅返回属于模板的触发器。
dependent boolean 如果设置为 true,则仅返回具有依赖关系的触发器。如果设置为 false,则仅返回不具有依赖关系的触发器。
monitored flag 仅返回属于受监控主机且只包含已启用监控项的已启用触发器。
active flag 仅返回属于受监控主机的已启用触发器。
maintenance boolean 如果设置为 true,则仅返回属于维护中的主机的已启用触发器。
withUnacknowledgedEvents flag 仅返回具有未确认事件的触发器。
withAcknowledgedEvents flag 仅返回所有事件均已确认的触发器。
withLastEventUnacknowledged flag 仅返回最后一个事件未确认的触发器。
skipDependent flag 跳过处于问题状态且依赖于其他触发器的触发器。请注意,如果其他触发器被禁用、其监控项被禁用或其监控项所属主机被禁用,则会忽略这些其他触发器。
lastChangeSince timestamp 仅返回在给定时间之后状态发生变化的触发器。
lastChangeTill timestamp 仅返回在给定时间之前状态发生变化的触发器。
only_true flag 仅返回最近处于问题状态的触发器(在 ok_period 内)。
min_severity integer 仅返回严重性大于或等于给定严重性的触发器。
evaltype integer 标签评估方式

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

可能的运算符值:
0 - (默认) 包含;
1 - 等于;
2 - 不包含;
3 - 不等于;
4 - 存在;
5 - 不存在。
expandComment flag 展开触发器描述中的宏。
expandDescription flag 展开触发器名称中的宏。
expandExpression flag 展开触发器表达式中的函数和宏。
selectHostGroups query hostgroups 属性中返回该触发器所属的主机组。
selectHosts query hosts 属性中返回该触发器所属的主机。
selectItems query items 属性中返回该触发器包含的监控项。
selectFunctions query functions 属性中返回触发器中使用的函数。

函数对象表示触发器表达式中使用的函数,并具有以下属性:
functionid - (ID) 函数的 ID;
itemid - (ID) 函数中使用的监控项 ID;
function - (string) 函数名称;
parameter - (string) 传递给函数的参数。查询参数在返回的字符串中会被 $ 符号替换。
selectDependencies query dependencies 属性中返回该触发器依赖的触发器。
selectDiscoveryRule query discoveryRule 属性中返回创建该触发器的低级别发现规则
selectLastEvent query lastEvent 属性中返回最后一个重要的触发器事件。
selectTags query tags 属性中返回触发器标签。
selectTemplateGroups query templategroups 属性中返回该触发器所属的模板组。
selectTriggerDiscovery query triggerDiscovery 属性中返回触发器发现对象。触发器发现对象将触发器链接到创建它的触发器原型。

它具有以下属性:
parent_triggerid - (ID) 创建该触发器的触发器原型的 ID;
status - (int) 触发器发现状态:
0 - (默认) 已发现触发器,
1 - 触发器不再被发现;
ts_delete - (timestamp) 不再被发现的触发器将被删除的时间;
ts_disable - (timestamp) 不再被发现的触发器将被禁用的时间;
disable_source - (int) 指示触发器是由 LLD 规则还是手动禁用:
0 - (默认) 自动禁用,
1 - 由 LLD 规则禁用。
filter object 仅返回与给定过滤条件完全匹配的结果。

接受一个对象,其中键为属性名称,值可以是单个值或用于匹配的值数组。

不支持 text 数据类型的属性。

支持附加属性:
host - 触发器所属主机的技术名称;
hostid - 触发器所属主机的 ID。
limitSelects integer 限制子选择返回的记录数。

适用于以下子选择:
selectHosts - 结果将按 host 排序。
sortfield string/array 按给定属性排序结果。

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

返回值

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

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

示例

通过触发器ID检索数据

检索触发器"14062"中使用的所有数据及其函数。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "trigger.get",
    "params": {
        "triggerids": "14062",
        "output": "extend",
        "selectFunctions": "extend"
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "triggerid": "14062",
            "expression": "{13513}<10m",
            "description": "{HOST.NAME} has been restarted (uptime < 10m)",
            "url": "",
            "status": "0",
            "value": "0",
            "priority": "2",
            "lastchange": "0",
            "comments": "The host uptime is less than 10 minutes",
            "error": "",
            "templateid": "10016",
            "type": "0",
            "state": "0",
            "flags": "0",
            "recovery_mode": "0",
            "recovery_expression": "",
            "correlation_mode": "0",
            "correlation_tag": "",
            "manual_close": "0",
            "opdata": "",
            "event_name": "",
            "uuid": "",
            "url_name": "",
            "functions": [
                {
                    "functionid": "13513",
                    "itemid": "24350",
                    "parameter": "$",
                    "function": "last"
                }
            ]
        }
    ],
    "id": 1
}

获取处于问题状态的触发器

检索所有处于问题状态触发器的ID、名称和严重性,并按严重性降序排序。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "trigger.get",
    "params": {
        "output": [
            "triggerid",
            "description",
            "priority"
        ],
        "filter": {
            "value": 1
        },
        "sortfield": "priority",
        "sortorder": "DESC"
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "triggerid": "13907",
            "description": "Zabbix self-monitoring processes < 100% busy",
            "priority": "4"
        },
        {
            "triggerid": "13824",
            "description": "Zabbix discoverer processes more than 75% busy",
            "priority": "3"
        }
    ],
    "id": 1
}

获取带有标签的特定触发器

检索具有标签的特定触发器。

执行请求:

{
    "jsonrpc": "2.0",
    "method": "trigger.get",
    "params": {
        "output": [
            "triggerid",
            "description"
        ],
        "selectTags": "extend",
        "triggerids": [
            "17578"
        ]
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "triggerid": "17370",
            "description": "Service status",
            "tags": [
                {
                    "tag": "service",
                    "value": "{{ITEM.VALUE}.regsub(\"Service (.*) has stopped\", \"\\1\")}"
                },
                {
                    "tag": "error",
                    "value": ""
                }
            ]
        }
    ],
    "id": 1
}

另请参见

来源

ui/include/classes/api/services/CTrigger.php 中的 CTrigger::get()。