apmlog.get
描述
integer/array apmlog.get(object parameters)
此方法允许您根据给定参数检索日志记录。
任何类型的用户都可以使用此方法。 可以在用户角色设置中撤销调用此方法的权限。 有关更多信息,请参阅用户角色。
参数
(object) 定义所需输出的参数。
该方法支持以下参数。
| 参数 | 类型 | 描述 |
|---|---|---|
| time_from | timestamp | 仅返回在给定时间或之后发生的事件的日志记录。 参数行为: - 必需 |
| time_till | timestamp | 仅返回在给定时间之前发生的事件的日志记录。 参数行为: - 必需 |
| traceids | string/array | 仅返回在给定 trace 中生成的日志记录。 |
| spanids | string/array | 仅返回在给定 span 中生成的日志记录。 |
| with_flags_on | integer | 仅返回设置了给定全部trace 标志的日志记录。 如需指定多个标志,请使用其值之和。 |
| with_flags_off | integer | 仅返回未设置任何给定trace 标志的日志记录。 如需指定多个标志,请使用其值之和。 |
| resource_attributes | object/array | 仅返回具有给定资源属性的日志记录。 格式: [{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。空数组将返回所有日志记录。 可能的 operator 值: 0 - (默认)包含; 1 - 等于; 2 - 不包含; 3 - 不等于; 4 - 存在; 5 - 不存在。 |
| resource_attributes_evaltype | integer | resource_attributes 中条件的评估方法。可能的值: 0 - (默认)And/Or; 2 - Or。 |
| scope_attributes | object/array | 仅返回具有给定作用域属性的日志记录。 格式: [{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。空数组将返回所有日志记录。 可能的 operator 值: 0 - (默认)包含; 1 - 等于; 2 - 不包含; 3 - 不等于; 4 - 存在; 5 - 不存在。 |
| scope_attributes_evaltype | integer | scope_attributes 中条件的评估方法。可能的值: 0 - (默认)And/Or; 2 - Or。 |
| log_attributes | object/array | 仅返回具有给定日志属性的日志记录。 格式: [{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。空数组将返回所有日志记录。 可能的 operator 值: 0 - (默认)包含; 1 - 等于; 2 - 不包含; 3 - 不等于; 4 - 存在; 5 - 不存在。 |
| log_attributes_evaltype | integer | log_attributes 中条件的评估方法。可能的值: 0 - (默认)And/Or; 2 - Or。 |
| filter | object | 仅返回与给定过滤器完全匹配的结果。 接受一个对象,其中键为属性名称,值为要匹配的单个值或值数组。 支持的属性: traceid、spanid、trace_flags、severity_text、severity_number、service_name、resource_schema_url、scope_schema_url、scope_name、scope_version、event_name。 |
| search | object | 返回与给定模式匹配的结果(不区分大小写)。 接受一个对象,其中键为属性名称,值为要搜索的字符串。如果未提供其他选项,则执行 LIKE "%…%" 搜索。支持的属性: severity_text、service_name、body、resource_schema_url、scope_schema_url、scope_name、scope_version、event_name。 |
| sortfield | string/array | 按给定属性对结果进行排序。 可能的值: timestamp、traceid、spanid、trace_flags、severity_text、severity_number、service_name、resource_schema_url、scope_schema_url、scope_name、scope_version、event_name。 |
| offset | integer | 返回结果前要跳过的记录数。 |
| countOutput | boolean | 这些参数在参考说明中进行了描述。 |
| excludeSearch | boolean | |
| limit | integer | |
| output | query | |
| searchByAny | boolean | |
| searchWildcardsEnabled | boolean | |
| sortorder | string/array | |
| startSearch | boolean |
返回值
(integer/array) 返回以下内容之一:
- 对象数组;
- 如果使用了
countOutput参数,则返回所检索对象的数量。
示例
获取跟踪的错误日志
获取与跟踪 "8a4f1c7e2b9d4e6fa0c3b5d7e9f1a2c4" 关联的 ERROR 严重性(严重性编号 17-20)的日志记录。
请求:
{
"jsonrpc": "2.0",
"method": "apmlog.get",
"params": {
"output": "extend",
"time_from": 1790848800,
"time_till": 1790852400,
"traceids": "8a4f1c7e2b9d4e6fa0c3b5d7e9f1a2c4",
"filter": {
"severity_number": [17, 18, 19, 20]
},
"sortfield": "timestamp",
"sortorder": "ASC"
},
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": [
{
"timestamp": "1790849305091452376",
"traceid": "8a4f1c7e2b9d4e6fa0c3b5d7e9f1a2c4",
"spanid": "5d2e8f1a9c3b7046",
"trace_flags": "1",
"severity_text": "ERROR",
"severity_number": "17",
"service_name": "zabbix-frontend",
"body": "mysqli_query(): (HY000/1205): Lock wait timeout exceeded; try restarting transaction",
"resource_schema_url": "https://opentelemetry.io/schemas/1.26.0",
"resource_attributes": {
"service.name": "zabbix-frontend",
"host.name": "6583ceeb5f94",
"host.arch": "x86_64",
"os.type": "linux"
},
"scope_schema_url": "",
"scope_name": "zabbix-frontend",
"scope_version": "",
"scope_attributes": {},
"log_attributes": {
"log.file.path": "/var/log/zabbix/zabbix_frontend.log",
"code.filepath": "/usr/share/zabbix/include/db.inc.php"
},
"event_name": ""
}
],
"id": 1
}
搜索日志消息
获取消息中包含“timeout”的最新 10 条日志记录的时间、服务和消息。
请求:
{
"jsonrpc": "2.0",
"method": "apmlog.get",
"params": {
"output": ["timestamp", "service_name", "severity_text", "body"],
"time_from": 1790848800,
"time_till": 1790852400,
"search": {
"body": "timeout"
},
"sortfield": "timestamp",
"sortorder": "DESC",
"limit": 10
},
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": [
{
"timestamp": "1790849305091452376",
"service_name": "zabbix-frontend",
"severity_text": "ERROR",
"body": "mysqli_query(): (HY000/1205): Lock wait timeout exceeded; try restarting transaction"
},
{
"timestamp": "1790848961730284115",
"service_name": "zabbix-frontend",
"severity_text": "ERROR",
"body": "mysqli_query(): (HY000/1205): Lock wait timeout exceeded; try restarting transaction"
}
],
"id": 1
}
另请参阅
来源
ui/include/classes/api/services/CApmLog.php 中的 CApmLog::get()。