调试 Grok 表达式
编辑调试 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 调试器。
- 打开主菜单,单击 开发工具,然后单击 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=<[email protected]>
-
输入此 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 模式后产生的模拟输出事件
如果发生错误,您可以继续迭代自定义模式,直到输出与您期望的事件匹配。