【问题标题】:Grok pattern for log files日志文件的 Grok 模式
【发布时间】:2020-05-27 14:06:16
【问题描述】:

总的来说,我对 Logstash 和 ELK 很陌生。 我需要为日志文件编写一个 grok 模式,格式如下:

[191114|16:51:13.577|BPDM|MDS|2|209|ERROR|39999]Interrupted by a signal!!!

我尝试通过引用 grok-patterns 并尝试在 grok-debugger 中实现我的实现来编写一个 grok 模式,但它不起作用。

grok {
match => { "message" => "%{NONNEGINT:fixed}|%{HOSTNAME:host}|%{WORD:word1}|%{WORD:word2}|%{NONNEGINT:num1}|%{NONNEGINT:num2}|%{ERROR|INFO|EVENT}|%{NONNEGINT:num1}|%{GREEDYDATA:message}" }
 }

【问题讨论】:

    标签: logstash elastic-stack logstash-grok logstash-configuration


    【解决方案1】:

    您需要转义括号和管道,并且您的第二个字段不是主机,而是时间。

    这个可行,只需验证字段名称。

    \[%{NONNEGINT:fixed}\|%{DATA:time}\|%{WORD:word1}\|%{WORD:word2}\|%{NONNEGINT:num1}\|%{NONNEGINT:num2}\|%{WORD:loglevel}\|%{NONNEGINT:num3}\]%{GREEDYDATA:message}
    

    这个 grok 会像这样解析你的消息。

    {
      "word1": "BPDM",
      "word2": "MDS",
      "message": "Interrupted by a signal!!!",
      "loglevel": "ERROR",
      "num1": "2",
      "fixed": "191114",
      "time": "16:51:13.577",
      "num3": "39999",
      "num2": "209"
    }
    

    【讨论】:

    • 您只需要在 grok 调试器站点中尝试 grok 模式,而不是 grok 过滤器块。尝试使用答案中的模式,刚刚检查过,它在 grok 调试器和 kibana 内的 grok 调试器中都有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    相关资源
    最近更新 更多