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()。