用于检测应聚合的行的 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 对此进行了测试。
我想检测不包含以下格式的日期和时间的行,应将其汇总到上一行:
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 对此进行了测试。