使用MongoDB儲存Docker日誌(續)
阿新 • • 發佈:2018-12-24
在上一篇文章《使用MongoDB儲存Docker日誌》中完成了Docker + Fluentd + MongoDB的基本配置。但是在實際的使用過程中,卻發現Docker生成的日誌並不會立即寫入到MongoDB中,有大概1分鐘左右的延遲。
查閱Fluentd的文件得知,有一個flush引數可以控制日誌的寫入頻率,預設的是60s。更改flush_interval引數就可以提高寫入頻率,具體更改如下:
## match tag=docker.* and dump to console
<match docker.*>
@type mongo
host 127.0.0.1
port 22017
database docker
collection log
<buffer>
flush_mode interval
flush_interval 1s
</buffer>
</match>
剛開始對文件理解不太透徹,增加了flush_interval引數後,並沒有發揮作用,第一次更改時,並沒有將flush_mode和flush_interval放在buffer結構中。也就是:
## match tag=docker.* and dump to console
<match docker.*>
@type mongo
host 127.0.0.1
port 22017
database docker
collection log
flush_mode interval
flush_interval 1s
</match>
從日誌中也可以看出上面的配置,並沒有發揮作用:
2018-01-19 14:33:32 +0800 [warn]: parameter '**flush_mode**' in <match docker.*>
@type mongo
host "1270.0.0.1"
port 22017
database "docker"
collection "log"
flush_mode interval
flush_interval 1s
buffer_chunk_limit 8m
time_key time
<inject>
time_key time
time_format %Y-%m-%d %H:%M:%S.%L
</inject>
</match> is not used.
上面說flush_mode並沒有起作用。