Link Search Menu Expand Document Documentation Menu

Grok

Grok 处理器使用模式匹配来从非结构化数据中构建并提取重要的键。

配置

下表描述了与 Grok 处理器配合使用以构建数据并使其更易于查询的选项。

选项 必需 类型 描述
break_on_match 布尔型 指定是匹配所有模式(true)还是在找到第一个成功匹配后停止(false)。默认为 true
grok_when 字符串 指定 grok 处理器在何种条件下执行匹配。默认情况下无条件。
keep_empty_captures 布尔型 启用保留处理输出中的 null 捕获。默认为 false
keys_to_overwrite 列表 指定当捕获与现有键具有相同键值时,哪些现有键将被覆盖。默认为 []
match 映射 指定哪些键应匹配特定模式。默认为空响应正文。
named_captures_only 布尔型 指定是否仅保留命名捕获。默认为 true
pattern_definitions 映射 允许使用可在响应正文中内联使用的自定义模式。默认为空响应正文。
patterns_directories 列表 指定哪些目录路径包含自定义模式文件。默认为空列表。
pattern_files_glob 字符串 指定从 pattern_directories 指定的目录中使用哪些模式文件。默认为 *
target_key 字符串 指定用于存储所有捕获的父级键。默认值为 null
timeout_millis 整数 匹配发生的最大时间量。设置为 0 会阻止任何匹配发生。默认为 30,000
performance_metadata 布尔型 是否将性能元数据添加到事件中。默认为 false。更多信息请参阅Grok 性能元数据

条件 Grok

可以通过使用 grok_when 选项配置 grok 处理器以有条件地运行。以下是使用 grok_when 的 Grok 处理器配置示例。

processor:
  - grok:
      grok_when: '/type == "ipv4"'
        match:
          message: ['%{IPV4:clientip} %{WORD:request} %{POSINT:bytes}']
  - grok:
      grok_when: '/type == "ipv6"'
        match:
          message: ['%{IPV6:clientip} %{WORD:request} %{POSINT:bytes}']

grok_when 选项可以接受条件表达式。此表达式在表达式语法文档中详细说明。

Grok 性能元数据

performance_metadata 选项设置为 true 时,grok 处理器会向每个事件添加以下元数据键:

  • _total_grok_processing_timegrok 处理器匹配事件所花费的总时间(毫秒)。这是基于事件上运行且已启用 performance_metadata 选项的所有 grok 处理器的处理时间总和。
  • _total_grok_patterns_attempted:事件上所有 grok 处理器尝试 grok 模式匹配的总次数。

要在事件发送到管道内的接收器时包含 Grok 性能元数据,请使用 add_entries 处理器来描述要包含的元数据,如以下示例所示:

processor:
    - grok:
        performance_metadata: true
        match:
          log: "%{COMMONAPACHELOG"}
    - add_entries:
        entries:
          - add_when: 'getMetadata("_total_grok_patterns_attempted") != null'
            key: "grok_patterns_attempted"
            value_expression: 'getMetadata("_total_grok_patterns_attempted")'
          - add_when: 'getMetadata("_total_grok_processing_time") != null'
            key: "grok_time_spent"
            value_expression: 'getMetadata("_total_grok_processing_time")'

指标

下表描述了常见的抽象处理器指标。

指标名称 类型 描述
recordsIn 计数器 表示记录进入管道组件的指标。
recordsOut 计数器 表示记录从管道组件流出的指标。
timeElapsed 计时器 表示管道组件执行期间经过时间的指标。

Grok 处理器包含以下自定义指标。

计数器

  • grokProcessingMismatch:记录与匹配字段中指定的任何模式不匹配的记录数。
  • grokProcessingMatch:记录与 match 字段中至少一个模式匹配的记录数。
  • grokProcessingErrors:记录记录处理错误的总数。
  • grokProcessingTimeouts:记录匹配时超时的记录总数。

计时器

  • grokProcessingTime:单个记录与 match 模式匹配所花费的时间。此计时器最有用的指标是 avg 指标,因为它提供了匹配记录的平均时间。
剩余 350 字符

有问题?

想要贡献?