Regex greediness在logstash中刷新rails日志,捕获所有请求
我在logstash多行过滤器中有这样一种模式:Regex greediness在logstash中刷新rails日志,捕获所有请求,regex,logstash,Regex,Logstash,我在logstash多行过滤器中有这样一种模式: filter { multiline { pattern => "^Started.*ActiveRecord: ([0-9]+\.[0-9]{1})ms\).+?" negate => true what => "previous" stream_identity => "%{host}.%{path}.%{type}" } } 但这里的问题是,这个表达式捕获所有rails请求,
filter {
multiline {
pattern => "^Started.*ActiveRecord: ([0-9]+\.[0-9]{1})ms\).+?"
negate => true
what => "previous"
stream_identity => "%{host}.%{path}.%{type}"
}
}
但这里的问题是,这个表达式捕获所有rails请求,直到日志文件结束。如何让此表达式在第一次匹配时停止?请尝试以下操作:
^Started.*?ActiveRecord: ([0-9]+\.[0-9]{1})ms\).*?$
试试这个
break\u on\u match=>true
来源:我正试图在logstash中分离日志。但是日志没有换行符。许多日志被连接为一个日志。因此,使用行终止符对我不起作用。同样在graylog中,换行符也不受尊重。你能提供一个日志样本让我测试一下吗?我已经创建了一个Rubular:。跳过了很多行,但前提是一样的。