获取

描述

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 仅返回最近处于问题状态的触发器。
min_severity integer 仅返回严重性大于或等于给定严重性的触发器。
evaltype integer 标签评估方法

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

可能的运算符值:
0 - (默认) Contains;
1 - Equals;
2 - Does not contain;
3 - Does not equal;
4 - Exists;
5 - Does not exist.
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 属性中返回该触发器所依赖的触发器。
selectDiscoveryData query 返回带有触发器发现对象数据的 discoveryData 属性。触发器发现对象将已发现的触发器链接到其发现来源的触发器原型。

它具有以下属性:
parent_triggerid - (ID) 创建该触发器所依据的触发器原型的 ID;
status - (int) 触发器发现状态:
0 - (默认) 已发现触发器,
1 - 触发器不再被发现;
ts_delete - (timestamp) 不再被发现的触发器将被删除的时间;
ts_disable - (timestamp) 不再被发现的触发器将被禁用的时间;
disable_source - (int) 指示触发器是由 LLD 规则还是手动禁用:
0 - (默认) 自动禁用,
1 - 由 LLD 规则禁用。
selectDiscoveryRule query discoveryRule 属性中返回创建该触发器的低级别发现规则
selectLastEvent query lastEvent 属性中返回最后一个重要触发器事件。
selectTags query tags 属性中返回触发器标签。
selectTemplateGroups query templategroups 属性中返回触发器所属的模板组。
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
selectTriggerDiscovery query triggerDiscovery 属性中返回触发器发现对象。触发器发现对象将触发器链接到其创建来源的触发器原型。

此查询已弃用,请改用 selectDiscoveryData

返回值

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

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

示例

通过触发器 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} 已重启 (正常运行时间 < 10m)",
"url": "",
"status": "0",
"value": "0",
"priority": "2",
"lastchange": "0",
"comments": "主机正常运行时间小于10 分钟”,
“错误”: “”,
“templateid”: “10016”,
“类型”: “0”,
“状态”: “0”,
“标志”: “0”,
“恢复模式”: “0”,
“恢复表达”: “”,
“关联模式”: “0”,
“关联标签”: “”,
“manual_close”: “0”,
“opdata”: “”,
“事件名称”: “”,
“uuid”: “”,
“url_name”: “”,
“函数”: [
{
“函数id”: “13513”,
“itemid”: “24350”,
“triggerid”: “14062”,
“参数”: “$”,
“函数”: “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 自我监控进程 < 100% 繁忙",
"priority": "4"
},
{
"triggerid": "13824",
"description": "Zabbix discoverer 进程超过75% 繁忙”,
“优先级”:“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
}

另请参阅

源码

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