![](/img/trans.png)
[英]How to setup multiline java stack trace in Logstash and grok filter?
[英]logstash 2.3.3 multiline filter not working with multiple workers
我已经开始使用多个> 16的工人进行logstash操作。
我有多行消息,例如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版中引入了工作线程,但是由于多行过滤器不是线程安全的,因此它阻止使用多个工作线程。
因此,您必须:
使用多行编解码器 。
例如加入Java异常stacktrace:
input { stdin { codec => multiline { pattern => "(^.+Exception: .+)|(^\\s+at .+)|(^\\s+... \\d+ more)|(^\\s*Caused by:.+)" what => "previous" } } }
在托运人上执行多行操作(可以将beaver和filebeat都配置为执行此操作)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.