【问题标题】:logstash multiline pattern to detect lines that should be aggregatedlogstash 多行模式来检测应该聚合的行
【发布时间】:2017-04-28 13:21:26
【问题描述】:

我想检测不包含以下格式的日期和时间的行,这些行应该聚合到上一行:

28.04.2017;15:13:30.276

所以我创建了一个这样的自定义 grok 模式:

MLINE %{MONTHDAY}\.%{MONTH}\.%{YEAR};%{TIME}

这是我的多行配置:

        codec => multiline {
            pattern => "%{MLINE}"
            negate => true
            what => "previous"
        }

我的预期是,如果来到logstash的日志行不包含%{MLINE},那么它应该聚合到上一行。

但这并没有发生,我不明白为什么。基本上每个日志行都被认为是聚合的,并且logstash由于缓存限制很快就会结束。

我做错了什么?

【问题讨论】:

  • 我的错,当然应该是%而不是$。我编辑了这个问题。但它仍然不能正确聚合
  • 还是不行
  • 其实如果只使用MLINE模式进行多行匹配,命名是没有效果的
  • 使这些 cmets 易于理解的评论已被删除

标签: pattern-matching logstash logback multiline syslog


【解决方案1】:

%{MONTH} 模式匹配诸如 Aug、Feb、September 之类的词。你想要%{MONTHNUM} 模式。

你想要的模式是:

MLINE %{MONTHDAY}\.%{MONTHNUM}\.%{YEAR};%{TIME}

我使用具有多行工具的grok constructor 对此进行了测试。

【讨论】:

  • @wiktor 对我脾气暴躁的周五 cmets 感到抱歉,感谢您的编辑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多