web-dev-qa-db-ja.com

logstash _grokparsefailureの問題

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 } 
}

一致させようとしている行/パターン:L 08/02/2014-22:55:49:ログファイルが閉じています: "終了しました"

http://grokdebug.herokuapp.com/ でデバッガを試しましたが、正常に動作し、パターンは正しく一致します。

解析したい行に二重引用符が含まれている可能性があります。また、grokの処理方法とエスケープ方法に問題がある可能性があることを確認しました。したがって、問題を回避するために "を"で置き換えるように変異させようとしましたが、運はありませんでした。

何か案は ?どうすればこれをデバッグできますか?

ありがとう

12
lepolac

問題が見つかりました、それは二重引用符の周りでした。

単純な引用を使用してgrokフィルターを定義し、二重引用符をエスケープする必要がありました。

match => { 'message' => 'L %{DATE:date} - %{TIME:time}: \"string_between_doublequotes\" '
8
lepolac