2016-09-27 38 views
0

私はFluentdバージョン0.14.6を使用しています。私はFluentdによって捕捉された後、ElasticSearchに渡されるミリ秒(またはそれ以上)を持ち、エントリが正しい順序で表示されるようにしたい。ここに私のfluentd.confは次のとおりです。fluentd時間がミリ秒で捕捉されない

<source> 
    @type tail 
    path /home/app/rails/current/log/development.log 
    pos_file /home/app/fluentd/rails.pos 
    tag rails.access 

    format /^\[(?<time>\S{10}T\S{8}.\d{3})\] \[(?<remoteIP>\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\] \[(?<requestUUID>\w+)\] \[AWSELB=(?<awselb>\w+)\] (?<message>.*)/ 
    time_format %Y-%m-%dT%H:%M:%S.%L 
</source> 

<match rails.access> 
    @type stdout 
    time_as_integer false 
</match> 

そしてここでは、Railsの

[2016-09-27T19:10:05.732] [xxx.xxx.xxx.46] [46171c9870ab2d06bc3a9a0bb02] [AWSELB=97B1C1B51866B68887CF7F5B8C352C45CA31592743CF389F006C541D59ED5E01852E7EF67C807B1CFC8BC145D569BCB9859AFCA73D10A87920CF2269DE5A47D16536B33873DEEF4A24967661232B38E564] Completed 200 OK in 39.8ms (Views: 0.5ms | ActiveRecord: 14.9ms) 

これからのサンプルログエントリで、すべてはミリ秒単位がドロップされる以外、細かい解析します。ここではSTDOUT

2016-09-27 19:43:56 +0000 rails.access: {"remoteIP":"xxx.xxx.xxx.46","requestUUID":"0238cb3d812534487181b2c54bd20","awselb":"97B1C1B51866B68887CF7F5B8C352C43CA21592743CF389F006C541D59ED5E01852E7EF67C807B1CFC8BC145D569BCB9859AFCA73D10A87920CF2269DE5A47D16536B33873DEEF4A24967661232B38E564","message":""} 

私はsearched SOを持ってからの結果であるが、記載されている2つのポストは、ミリ秒単位で追加することになっているthis PRまでの時間、からです。マージされます。 PRには、私が行ったtime_as_integerオプションの追加についての記述があります。私はPRに混乱があるので、それを真と偽の両方に設定しようとしましたが、違いはありませんでした。私もソースに入れてみましたが、それはエラーを投げました。

私は必要がないナノ秒にしようとしているthis postを見ました。それはまた、私にとっては良い解決策ではありません。それは、RailsではなくFluentdからの時間が来るからです。

ありがとうございました!

答えて

0

sourceが正しく構成されていれば、ミリ秒単位で出力プラグインを使用できます。 stdout出力プラグインは、ミリ秒数codeを出力しません。

ファイル出力プラグインを使用して、ミリ秒単位の使用可能性をテストできます。

<match rails.access> 
    @type file 
    path example.out.log 
    time_format %Y-%m-%dT%H:%M:%S.%L 
</match> 

ElasticSearch出力プラグインは、アカウントsourceにミリ秒かかります。

関連する問題