LogStash 2.3.3多行滤波器不与多名工人使用



我已经开始与多个工人> 16。

开始logstash

我有多行消息,例如Java例外/Java痕迹,并希望将它们合并为一个事件。之前,它正常工作,但是在升级我的麋鹿堆栈后,它正在破裂: - (

我的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编解码器。
    例如,加入Java异常StackTrace:

    input {
      stdin {
        codec => multiline {
          pattern => "(^.+Exception: .+)|(^s+at .+)|(^s+... d+ more)|(^s*Caused by:.+)"
          what => "previous"
        }
      }
    }
    
  • 在托运人上进行多行操作(可以将海狸和档案配置为进行)

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

相关内容

  • 没有找到相关文章

最新更新