抽取特定值作为 JSON 键
在 IBM® Cloud Logs中,可以使用 抽取 规则将您需要的特定值抽取为 JSON 键,而不必解析整个日志。
与解析规则不同,抽取规则会使原始日志保持不变,并在根中向其添加字段。
准备工作
解析规则在 规则组中进行组织。 每个组都有一个名称和一组规则,它们之间具有逻辑关系。 根据规则组的顺序 (从开始到结束) 处理日志。 然后,根据规则组中的规则顺序并根据它们之间的逻辑运算符 (AND/OR) 对它们进行处理。规则可帮助您处理,解析和重构日志数据,以准备监视和分析。 有关更多信息,请参阅 使用规则组。
使用指定的已捕获组来定义新字段
提取规则使用RegEx-named捕获组来定义新字段。
- 捕获的组将成为解析的日志字段。
- 与每个组关联的值将成为字段的值。
- RegEx 不必与整个日志匹配。
- 只有 RegEx 指定的捕获组 (
< >中的值) 及其捕获的值是重构日志的一部分。
配置抽取规则
完成以下步骤:
-
单击 数据管道 图标
> 解析规则,然后单击 新建规则组。
-
在 详细信息 部分中,输入 规则组名称 和 规则组描述。
-
在 规则匹配器 部分中,配置应用程序,子系统和严重性,这些应用程序,子系统和严重性用于定义要应用规则组中包含的规则的日志。
-
在“规则”部分中,选择 抽取
。
-
输入名称。
-
(可选) 输入描述。
-
选择一个源字段。 这是应用 RegEx 的字段。
-
输入 正则表达式 (RegEx)。
-
如果要启用规则,请将状态切换为 ACTIVE。
-
-
通过单击 添加规则 并选择所需的规则类型来添加其他规则组。 切换 AND/OR 以选择您希望如何处理其他规则。
-
单击创建规则组。
示例: 创建两个新字段
以下示例从字段消息中抽取信息,并创建可查询和可视化的两个新字段 "bytes" 和 "status"。
原始日志为:
{"level":"INFO", "message": "200 bytes sent status is OK"}
RegEx 是:
message"\s*:\s*"(?P<bytes>\d+)\s*.*?status\sis\s(?P<status>[^"]+)
格式化的日志为:
{
"level": "INFO",
"message": "200 bytes sent status is OK",
"Bytes": "200",
"status": "OK"
}
如果原始日志是非结构化日志,那么将根据指定的捕获组添加字段,并将原始日志存储在名为 text 的字段中。 使用上一个示例,它将原始日志更改为非结构化日志。
原始日志:
"level":"INFO", "message": "200 bytes sent status is OK",
生成的日志:
{
"bytes": "200",
"text": "\"level\":\"INFO\", \"message\": \"200 bytes sent status is OK\"",
"status": "OK"
}