调试 grok 表达式
编辑调试 grok 表达式
编辑您可以在 Kibana 的Grok 调试器中构建和调试 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=<[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 模式后产生的模拟输出事件
如果发生错误,您可以继续迭代自定义模式,直到输出与您期望的事件匹配。