使用MongoDB存储Docker日志(续)

在上一篇文章《使用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并没有起作用。

猜你喜欢

转载自blog.csdn.net/mydeman/article/details/79111424