2017-04-11 4 views
1

elasticsearchサーバにログを書き込むためにfilebeatを使用します。私のログはjson形式です。すべての行は、私は、ログを読み込むときに作成filebeat @timestampフィールドを置き換えるために、私のログから@timestampフィールドをしたい、このfilebeat @timestampは上書きされません

{"@timestamp": "2017-04-11T07:52:480,230", "user_id": "1", "delay": 12} 

のように見えるJSON文字列です。私kibanaのダッシュボードの上に私はいつも

json_error:@timestamp not overwritten (parse error on 2017-04-11T07:52:48,230)

を取得し、filebeat

マイfilebeat confには、私のlog4jのconfからも上書きフィールド

json.keys_under_root: true 
json.overwrite_keys: true 
json.add_error_key: true 

に関するこれらの行を含んで作成された@timestampフィールドを見終わります@timestamp私のログに作成されたフィールドはISO8601フォーマットです。問題が何であり、なぜ@timestampフィールドが上書きされないのでしょうか?

答えて

0

問題はlog4jが生成しているタイムスタンプの形式でした。 Filebeatは、"2017-04-11T09:38:33.365Z"という形式のものを想定しています。末尾にZの中にTとし、ミリ秒の前にコンマの代わりにドットを入れなければなりません。私はそれをやってい

最速(とやや汚い)の方法は、以下のパターン

pattern='{"@timestamp": "%d{YYYY-MM-dd}T%d{HH:mm:ss.SSS}Z"} 

同様の問題がhereを見つけることができますを使用していました。カンマを使用しているので、提案された解決策はファイルビートの問題を解決しません!

関連する問題