获取
描述
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()。