gpt4 book ai didi

java - Logstash 2.3.3 多行过滤器不适用于多个工作人员

转载 作者:行者123 更新时间:2023-11-30 02:53:18 25 4
gpt4 key购买 nike

我已经与多个工作人员启动了logstash > 16。

我有多行消息,例如 java 异常/java 跟踪,并希望将它们合并到单个事件中。早些时候,它按预期工作,但升级我的 ELK 堆栈后它就崩溃了:-(

我的logstash过滤器:

filter {
multiline {

pattern => "(^[a-zA-Z.]+(?:Error|Exception): .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)"
what => "previous"
}
}

logstash 日志:

:message=>"Warning: Manual override - there are filters that might not work with multiple worker threads", :worker_threads=>16, :filters=>["multiline"], :level=>:warn}
Exception in pipelineworker, the pipeline stopped processing new events, please check your filter configuration and restart Logstash.

最佳答案

如果您已从 Logstash 版本 1.5 升级,这是正常的。
在 2.0 版本中引入了工作线程,但由于多行过滤器不是线程安全的,因此它阻止使用多个工作线程。

所以你必须:

  • 使用multiline codec .
    例如加入java异常堆栈跟踪:

    input {
    stdin {
    codec => multiline {
    pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)"
    what => "previous"
    }
    }
    }
  • 在您的 Shipper 上执行多行操作(beaver 和 filebeat 都可以配置为执行此操作)

  • 仅使用一个工作线程(在这种情况下,您可以使用 Logstash 的多个实例来使用所有 CPU 核心,但请记住,多行过滤器最终将被删除)。

关于java - Logstash 2.3.3 多行过滤器不适用于多个工作人员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37999355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com