Grok 调试器
Elastic Stack Serverless
在数据处理管道中使用 Grok 模式之前,您可以在 Kibana 的 Grok 调试器 中构建和调试它们。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 调试器。
使用导航菜单或 全局搜索字段导航到 开发者工具 页面来查找 Grok 调试器。
在 示例数据 中,输入一条消息,该消息代表您要解析的数据。 例如
55.3.244.1 GET /index.html 15824 0.043
在 Grok 模式 中,输入要应用于数据的 grok 模式。
要解析此示例中的日志行,请使用
%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
点击 模拟。
您将看到应用 grok 模式后生成的模拟事件。
如果默认的 grok 模式字典不包含您需要的模式,则可以使用 Grok 调试器 定义、测试和调试自定义模式。
您在 Grok 调试器 中输入的自定义模式不会保存。 自定义模式仅适用于当前的调试会话,并且没有副作用。
按照此示例定义自定义模式。
在 示例数据 中,输入以下示例消息
Jan 1 06:25:43 mailserver14 postfix/cleanup[21403]: BEF25A72965: message-id=<20130101142543.5828399CCAF@mailserver14.example.com>
输入此 grok 模式
%{SYSLOGBASE} %{POSTFIX_QUEUEID:queue_id}: %{MSG:syslog_message}
请注意,grok 模式引用了名为
POSTFIX_QUEUEID
和MSG
的自定义模式。展开 自定义模式 并输入要在 grok 表达式中使用的自定义模式的模式定义。 您必须在其自己的行上指定每个模式定义。
对于此示例,您必须指定
POSTFIX_QUEUEID
和MSG
的模式定义POSTFIX_QUEUEID [0-9A-F]{10,11} MSG message-id=<%{GREEDYDATA}>
点击 模拟。
您将看到应用包含自定义模式的 grok 模式后生成的模拟输出事件
如果发生错误,您可以继续迭代自定义模式,直到输出与您期望的事件匹配。