2

我是 and 的新用户ELKlogstash我正在尝试提取以下日志,grok但没有成功。

这是我的日志: 08-14 10:22:50.863 1419 1419 D GpsNetInitiatedHandler: location enabled :false

我希望这样提取:

  • 时间戳:08-14 10:22:50.863
  • 不重要1:1419
  • 不重要2:1419
  • 日志级别:D
  • 消息:GpsNetInitiatedHandler:启用位置:false
4

1 回答 1

0

我建议在 grok 调试器上测试模式,我喜欢使用这个,但那里有很多:http: //grokconstructor.appspot.com/do/match

您可以为您的日志条目做的是为时间戳创建一个自定义模式,或者如果您想进一步拆分时间戳,您可以查看时间/日期的默认 grok 模式

例如,使用grok 调试器,将您的日志条目复制粘贴到第一个框中,这是您放置要匹配的日志行的位置。

然后我想出了一个时间戳模式放入第三个框,因为我认为没有一个默认模式可以匹配日志条目(但如果有人知道一个默认模式,请纠正我)并将其命名为 TIMESTAMP:

TIMESTAMP \d\d-\d\d \d\d:\d\d:\d\d.\d\d\d

现在我使用自定义的 TIMESTAMP 模式和一些常用的默认模式创建了一个最终的 grok 模式,并将其放入第二个框中:

%{TIMESTAMP:timestamp} %{NOTSPACE:id1} %{NOTSPACE:id2} %{NOTSPACE:log-level} %{GREEDYDATA:message}

点击“开始!” 顶部的按钮,我们现在可以获得您想要的输出(如果需要,您可以更改 id1 和 id2 的名称) 在此处输入图像描述

如果一切看起来都不错,只需按照 logstash 文档创建自定义模式,并在 grok 过滤器中使用最终的 grok 模式,一切都会正常

于 2019-08-28T15:39:53.170 回答