获取

描述

integer/array problem.get(object parameters)

该方法允许你根据给定参数检索问题。

此方法用于检索未解决的问题。 如果指定,还可以额外检索最近已解决的问题。 用于定义“最近”时长的周期在 Administration > General 中进行设置。 在该周期之前已解决的问题不会保留在问题表中。 要检索更早之前已解决的问题,请使用 event.get 方法。

如果已删除实体对应的问题尚未被 housekeeper 清理,此方法可能会返回这些问题。

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

参数

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

该方法支持以下参数。

Parameter Type Description
eventids ID/array 仅返回具有给定 ID 的问题。
groupids ID/array 仅返回由属于给定主机组的对象创建的问题。
hostids ID/array 仅返回由属于给定主机的对象创建的问题。
objectids ID/array 仅返回由给定对象创建的问题。
source integer 仅返回具有给定类型的问题。

有关支持的事件类型列表,请参见 problem event object page

默认值:0 - 由触发器创建的问题。
object integer 仅返回由给定类型对象创建的问题。

有关支持的对象类型列表,请参见 problem event object page

默认值:0 - 触发器。
acknowledged boolean 如果设置为 true,则仅返回已确认的问题。
action integer 仅返回已执行给定 event update actions 的问题。对于多个操作,请使用任何可接受的位图值之和作为位掩码(例如,34 表示确认并抑制事件)。
action_userids ID/array 仅返回由给定 ID 的用户执行问题事件更新操作的问题。
suppressed boolean 如果设置为 true,则仅返回已抑制的问题。
symptom boolean 如果设置为 true,则仅返回症状问题事件。
severities integer/array 仅返回具有给定事件严重性的的问题。仅当 object 为 trigger 时适用。
evaltype integer 标签 evaluation method

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

可能的 operator 值:
0 - (默认) Contains;
1 - Equals;
2 - Does not contain;
3 - Does not equal;
4 - Exists;
5 - Does not exist。
recent boolean 如果设置为 true,则返回最近的问题,包括在 ok_period 内已解决的问题以及所有未解决的问题。
如果设置为 false,则仅返回未解决的问题。
eventid_from string 仅返回 ID 大于或等于给定 ID 的问题。
eventid_till string 仅返回 ID 小于或等于给定 ID 的问题。
time_from timestamp 仅返回在给定时间之后或该时间创建的问题。
time_till timestamp 仅返回在给定时间之前或该时间创建的问题。
selectAcknowledges query 返回带有问题更新的 acknowledges 属性。问题更新按时间倒序排列。

问题更新对象具有以下属性:
acknowledgeid - (ID) 更新的 ID;
userid - (ID) 更新该事件的用户 ID;
eventid - (ID) 被更新事件的 ID;
clock - (timestamp) 事件被更新的时间;
message - (string) 消息文本;
action - (integer) 更新操作类型(参见 event.acknowledge);
old_severity - (integer) 此更新操作之前的事件严重性;
new_severity - (integer) 此更新操作之后的事件严重性;
suppress_until - (timestamp) 事件将被抑制到的时间;
taskid - (ID) 如果当前事件正在进行等级变更,则为任务 ID;
maintenanceid - (ID) 维护的 ID。

支持 count
selectTags query 返回带有问题标签的 tags 属性。输出格式:[{"tag": "<tag>", "value": "<value>"}, ...]
selectSuppressionData query 返回 suppression_data 属性,其中包含活动维护和手动抑制列表:
maintenanceid - (ID) 维护的 ID;
userid - (ID) 抑制该问题的用户 ID;
suppress_until - (integer) 问题被抑制到的时间。
filter object 仅返回与给定过滤器完全匹配的结果。

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

不支持 text data type 的属性。
sortfield string/array 按给定属性对结果排序。

可能的值:eventid
countOutput boolean 这些参数在 reference commentary 中有说明。
editable boolean
excludeSearch boolean
limit integer
output query
preservekeys boolean
search object
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

返回值

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

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

示例

获取触发器问题事件

从触发器“15112”检索最近的事件。

请求:

{
    "jsonrpc": "2.0",
    "method": "problem.get",
    "params": {
        "output": "extend",
        "selectAcknowledges": "extend",
        "selectTags": "extend",
        "selectSuppressionData": "extend",
        "objectids": "15112",
        "recent": true,
        "sortfield": ["eventid"],
        "sortorder": "DESC"
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "eventid": "1245463",
            "source": "0",
            "object": "0",
            "objectid": "15112",
            "clock": "1472457242",
            "ns": "209442442",
            "r_eventid": "1245468",
            "r_clock": "1472457285",
            "r_ns": "125644870",
            "correlationid": "0",
            "userid": "1",
            "name": "Zabbix agent on localhost is unreachable for 5 minutes",
            "acknowledged": "1",
            "severity": "3",
            "cause_eventid": "0",
            "suppressed": "1",
            "acknowledges": [
                {
                    "acknowledgeid": "14443",
                    "userid": "1",
                    "eventid": "1245463",
                    "clock": "1472457281",
                    "message": "problem solved",
                    "action": "6",
                    "old_severity": "0",
                    "new_severity": "0",
                    "suppress_until": "1472511600",
                    "taskid": "0",
                    "maintenanceid": "0"
                }
            ],
            "opdata": "",
            "suppression_data": [
                {
                    "maintenanceid": "15",
                    "suppress_until": "1472511600",
                    "userid": "0"
                }
            ],
            "tags": [
                {
                    "tag": "test-tag",
                    "value": "test-value"
                }
            ],
            "urls": []
        }
    ],
    "id": 1
}

获取指定用户已确认的问题

获取 ID=10 的用户已确认的问题

请求:

{
    "jsonrpc": "2.0",
    "method": "problem.get",
    "params": {
        "output": "extend",
        "action": 2,
        "action_userids": [10],
        "selectAcknowledges": ["userid", "action"],
        "sortfield": ["eventid"],
        "sortorder": "DESC"
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "eventid": "1248566",
            "source": "0",
            "object": "0",
            "objectid": "15142",
            "clock": "1472457242",
            "ns": "209442442",
            "r_eventid": "1245468",
            "r_clock": "1472457285",
            "r_ns": "125644870",
            "correlationid": "0",
            "userid": "10",
            "name": "Zabbix agent on localhost is unreachable for 5 minutes",
            "acknowledged": "1",
            "severity": "3",
            "cause_eventid": "0",
            "suppressed": "0",
            "acknowledges": [
                {
                    "acknowledgeid": "9",
                    "userid": "10",
                    "action": "2"
                }
            ],
            "opdata": "",
            "urls": []
        }
    ],
    "id": 1
}

另请参阅

来源

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