Fluentd 输出到文件时如何做日志轮转(Rotation)?

Fluentd 的 out_file 通过 time slice 按时间切片输出(如 path /var/log/agg/app.%Y%m%d.log)自然实现按天轮转;配合 buffer timekey 控制粒度。本文给出配置与压缩归档建议。

最佳实践
Fluentd 输出到文件时如何做日志轮转(Rotation)?封面

Fluentd 的 out_file 本身不做传统意义的轮转,而是靠时间切片路径实现等效效果:buffer 按时间分块,输出路径带时间占位符,每小时/每天一个文件——天然轮转,不需要 logrotate。

配置示例

<match app.**>
  @type file
  path /var/log/fluentd-agg/app.%Y-%m-%d.%H.log
  <buffer time>
    timekey 1h                  # 每小时一个文件
    timekey_wait 10s
    path /var/log/fluentd-buf/app
  </buffer>
  <format>
    @type json
  </format>
</match>

效果:app.2024-01-15.10.logapp.2024-01-15.11.log……按小时切片。改 timekey 1d + 路径 %Y-%m-%d 即按天轮转。

压缩与清理

  • 输出端直接压缩:<format>out_file 支持的 gzip 选项(或用 compress gzip 于 buffer);
  • 历史文件清理由 logrotate 或简单 cron find /var/log/fluentd-agg -mtime +30 -delete 负责。

观测云对照

日志若最终要检索分析,直接发观测云省去本地轮转管理:DataKit 上报后按存储策略自动管理生命周期。

常见问题(FAQ)

Q:timekey_wait 是什么? 等待迟到日志的宽限——时间块关闭前多等 10s 再写文件。

Q:能按大小轮转吗? out_file 不直接支持;按时间切片是官方推荐模式,大小控制用 buffer chunk_limit_size 间接影响。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台