Filter Logstash多行筛选器片段日志

Filter Logstash多行筛选器片段日志,filter,multiline,logstash,Filter,Multiline,Logstash,我试图使用多行文件管理器将相当长的java异常堆栈跟踪与主日志消息结合起来。我正在使用这里显示的示例 以下是我的代码: input{ stdin{} } filter{ multiline { pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)" what => "previous"

我试图使用多行文件管理器将相当长的java异常堆栈跟踪与主日志消息结合起来。我正在使用这里显示的示例

以下是我的代码:

input{
    stdin{}
}
filter{
    multiline {
                pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)"
                what => "previous"
            }
}
但是,它不会将stacktrace合并到一个事件中,而是自动分段到多个不同的日志中


我似乎不明白为什么?我曾尝试使用编解码器而不是过滤器,但问题仍然存在。

根据我的经验,stdin不适合这种测试,因为它有自己的缓冲区。Logstash还有一个缓冲区,它不会永远打开,因为它必须尽可能多地输出到ES。因此,如果两个本应分组的事件间隔过大,它们将作为两个单独的事件处理