调试 Grok 表达式编辑

您可以在 Kibana 的 Grok 调试器 中构建和调试 Grok 模式,然后再在数据处理管道中使用它们。Grok 是一种模式匹配语法,您可以使用它来解析任意文本并对其进行结构化。Grok 非常适合解析 syslog、apache 和其他 Web 服务器日志、mysql 日志,以及一般来说,任何为人类阅读而编写的日志格式。

Grok 模式在 Elasticsearch 运行时字段、Elasticsearch grok 摄取处理器 和 Logstash grok 过滤器 中受支持。有关语法,请参阅 Grokking grok

Elastic Stack 附带了 120 多个可重用 Grok 模式。有关模式的完整列表,请参阅 Elasticsearch Grok 模式Logstash Grok 模式

由于 Elasticsearch 和 Logstash 共享相同的 Grok 实现和模式库,因此您在 Grok 调试器 中创建的任何 Grok 模式都可以在 Elasticsearch 和 Logstash 中使用。

入门编辑

此示例将引导您使用 Grok 调试器。此工具在 Kibana 中自动启用。

如果您使用 Elastic Stack 安全功能,则必须具有 manage_pipeline 权限才能使用 Grok 调试器。

  1. 打开主菜单,单击 开发工具,然后单击 Grok 调试器
  2. 示例数据 中,输入代表您要解析的数据的消息。例如

    55.3.244.1 GET /index.html 15824 0.043
  3. Grok 模式 中,输入要应用于数据的 Grok 模式。

    要解析此示例中的日志行,请使用

    %{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
  4. 单击 模拟

    您将看到应用 Grok 模式后产生的模拟事件。

    Grok Debugger

测试自定义模式编辑

如果默认 Grok 模式字典中不包含您需要的模式,则可以使用 Grok 调试器 定义、测试和调试自定义模式。

您在 Grok 调试器 中输入的自定义模式不会保存。自定义模式仅在当前调试会话中可用,并且没有任何副作用。

按照此示例定义自定义模式。

  1. 示例数据 中,输入以下示例消息

    Jan  1 06:25:43 mailserver14 postfix/cleanup[21403]: BEF25A72965: message-id=<[email protected]>
  2. 输入此 Grok 模式

    %{SYSLOGBASE} %{POSTFIX_QUEUEID:queue_id}: %{MSG:syslog_message}

    请注意,Grok 模式引用了名为 POSTFIX_QUEUEIDMSG 的自定义模式。

  3. 展开 自定义模式 并输入要用于 Grok 表达式的自定义模式的模式定义。您必须在单独的行上指定每个模式定义。

    对于此示例,您必须为 POSTFIX_QUEUEIDMSG 指定模式定义

    POSTFIX_QUEUEID [0-9A-F]{10,11}
    MSG message-id=<%{GREEDYDATA}>
  4. 单击 模拟

    您将看到应用包含自定义模式的 Grok 模式后产生的模拟输出事件

    Debugging a custom pattern

    如果发生错误,您可以继续迭代自定义模式,直到输出与您期望的事件匹配。