2017-04-12 12 views
0

何らかの理由で、filebeat.ymlファイル内のマルチラインフィルタを使用しているときに、filebeatが正しいログを送信していません。ログファイルの読み込みには、複数行のログといくつかの単一の行があります。しかし、それらはすべて日付から始めることで同じフォーマットに従います。Filebeatがlogstashに正しいマルチラインログを送信しない

2017-Aug-23 10:33:43: OutputFile: This is a sample message 
2017-Aug-23 10:34:23: MainClass: Starting connection: 
    http.InputProcess: 0 
    http.OutPutProcess: 1 
2017-Aug-23 10:35:21: OutputFile: This is a sample message 2 

マイFilebeat YMLがある:例えば、ここで数行で何らかの理由で

- input_type: log 
    paths: 
    - /home/user/logfile.log 
    document_type: chatapp 
    multiline: 
    pattern: "^%{YYYY-MMM-dd HH:mm:ss}" 
    negate: true 
    match: before 

私はelasticsearchを打つfilebeatログを見ると、ログのすべてが一つにaggragatedされますログの行は、実際に日付でファイルを読み取っているようではありません。誰でも助けられますか?ありがとう!

答えて

1

使用

pattern: "^%{YEAR}-%{MONTH}-%{MONTHDAY}" 

あなたが現在GROKパターン与えられた有効に定義された正規表現がありません使用している模様。

the grokconstructorを使用すると、複数のパターンをテストできます。私はlogstashにあらかじめ定義されたからこのパターンを構築しました。

+0

これは正しい形式でした。また、私のlogstashフィルタフォーマットはオフでした。私はgrokコンストラクタを使用して正しいフィルタを見つけました –

+0

grokコンストラクタでパターンを処理できましたが、それでもファイルビートでは機能しません。 filebeatはまだログの開始を認識していないようです(あなたが言ったような日付)。あなたは何らかの理由を知っていますか? –

+0

わからない場合は、あまり具体的でないように正規表現を変更してみてください。この時点では試行錯誤の可能性があります –

関連する問題