2016-09-27 104 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的結果,而是列出的兩個職位從this PR之前的時間,這是應該以毫秒爲單位增加。它被合併。公關提到增加一個time_as_integer選項,我已經完成。我試圖將它設置爲真假,因爲公關中存在一些混淆,但它沒有任何區別。我也嘗試將它放入源代碼中,但是卻拋出了一個錯誤。

我也看着this post,這是試圖達到納秒,我不需要。這對我來說也不是一個好的解決方案,因爲時間會來自流利的,而不是Rails。

感謝您的幫助!

回答

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