加载中

Grok 调试器

在将 Grok 模式用于数据处理管道之前,您可以先在 Kibana Grok 调试器 (Grok Debugger) 中构建和调试它们。Grok 是一种模式匹配语法,可用于解析任意文本并将其结构化。Grok 非常适合解析 syslog、apache 和其他 Web 服务器日志、mysql 日志,以及通常情况下任何为人类阅读而编写的日志格式。

Elasticsearch 运行时字段、Elasticsearch Grok 采集处理器和 Logstash Grok 过滤器都支持 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. 通过导航菜单或全局搜索字段导航到 开发工具 (Developer tools) 页面,即可找到 Grok 调试器

  2. 示例数据 (Sample Data) 中,输入一条代表您要解析的数据的消息。例如

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

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

    %{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
    		
  4. 点击 模拟 (Simulate)

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

    Grok Debugger

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

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

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

  1. 示例数据 (Sample Data) 中,输入以下示例消息

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

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

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

  3. 展开 自定义模式 (Custom Patterns),并为您要在 Grok 表达式中使用的自定义模式输入模式定义。您必须在单独的行上指定每个模式定义。

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

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

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

    Debugging a custom pattern

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

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.