用于检测应聚合的行的 logstash 多行模式

logstash multiline pattern to detect lines that should be aggregated

我想检测不包含以下格式的日期和时间的行,应将其汇总到上一行:

28.04.2017;15:13:30.276

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

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

这是我的多行配置:

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

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

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

我做错了什么?

%{MONTH} 模式匹配 Aug、Feb、September 等词。您需要 %{MONTHNUM} 模式。

您想要的图案是:

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

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