logstash _grokparsefailure问题

lep*_*lac 12 logstash logstash-grok

我遇到了grok解析的问题.在ElasticSearch/Kibana中,我匹配的行带有标签_grokparsefailure.

这是我的logstash配置:

input { 
    file { 
     type => logfile 
     path => ["/var/log/mylog.log"] 
    } 
  } 
filter { 
    if [type] == "logfile" 
    { 
      mutate {
      gsub => ["message","\"","'"]
      }  

    grok 
        { match => { "message" => "L %{DATE} - %{TIME}: " } } 
    } 
} 

output { 
   elasticsearch { host => localhost port => 9300 } 
}
Run Code Online (Sandbox Code Playgroud)

线条/图案我想要匹配:L 08/02/2014 - 22:55:49:日志文件已关闭:"已完成"

我在http://grokdebug.herokuapp.com/上尝试了调试器,它运行正常,我的模式匹配正确.

我想解析的行可能包含双引号,我读过可能存在grok处理和转义它们的问题.所以我试图改变以替换"与'以避免问题,但没有运气.

有任何想法吗 ?我该怎么调试呢?

谢谢

lep*_*lac 9

发现问题,它是双引号.

需要使用简单的引号来定义grok过滤器,并转义双引号.

match => { 'message' => 'L %{DATE:date} - %{TIME:time}: \"string_between_doublequotes\" '
Run Code Online (Sandbox Code Playgroud)