抽取特定值作为 JSON 键

在 IBM® Cloud Logs中,可以使用 抽取 规则将您需要的特定值抽取为 JSON 键,而不必解析整个日志。

与解析规则不同,抽取规则会使原始日志保持不变,并在根中向其添加字段。

准备工作

解析规则在 规则组中进行组织。 每个组都有一个名称和一组规则,它们之间具有逻辑关系。 根据规则组的顺序 (从开始到结束) 处理日志。 然后,根据规则组中的规则顺序并根据它们之间的逻辑运算符 (AND/OR) 对它们进行处理。规则可帮助您处理,解析和重构日志数据,以准备监视和分析。 有关更多信息,请参阅 使用规则组。

使用指定的已捕获组来定义新字段

提取规则使用RegEx-named捕获组来定义新字段。

  • 捕获的组将成为解析的日志字段。
  • 与每个组关联的值将成为字段的值。
  • RegEx 不必与整个日志匹配。
  • 只有 RegEx 指定的捕获组 ( < > 中的值) 及其捕获的值是重构日志的一部分。

配置抽取规则

完成以下步骤:

  1. 单击 数据管道 图标 "数据管道" 图标 > 解析规则,然后单击 新建规则组。

  2. 在 详细信息 部分中,输入 规则组名称 和 规则组描述。

  3. 在 规则匹配器 部分中,配置应用程序,子系统和严重性,这些应用程序,子系统和严重性用于定义要应用规则组中包含的规则的日志。

  4. 在“规则”部分中,选择 抽取 "抽取解析规则" 图标。

    1. 输入名称。

    2. (可选) 输入描述。

    3. 选择一个源字段。 这是应用 RegEx 的字段。

    4. 输入 正则表达式 (RegEx)。

    5. 如果要启用规则,请将状态切换为 ACTIVE。

  5. 通过单击 添加规则 并选择所需的规则类型来添加其他规则组。 切换 AND/OR 以选择您希望如何处理其他规则。

  6. 单击创建规则组。

示例: 创建两个新字段

以下示例从字段消息中抽取信息,并创建可查询和可视化的两个新字段 "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"
}