Windows服务运行Fluentd时td-agent.log持续增长如何设置大小限制
Windows服务模式Fluentd(td-agent)日志自动轮转配置方案
你当前遇到的是td-agent自身运行日志(C:\opt\td-agent\td-agent.log)的体积膨胀问题,不需要修改业务采集相关的source、match配置,可通过以下两种方案实现自动轮转删除旧日志,优先推荐修改配置文件的方案:
方案1:修改td-agent全局配置(优先推荐)
直接编辑td-agent主配置文件(默认路径为C:\opt\td-agent\etc\td-agent\td-agent.conf),在配置文件最顶部新增如下全局日志参数:
log_rotate_age:最多保留的历史日志文件个数,示例配置为保留5个log_rotate_size:单个日志文件的大小阈值,单位为字节,示例配置为10MB(1010241024=10485760)
修改后的完整配置参考如下:
# 全局日志轮转配置 log_level info log_rotate_age 5 log_rotate_size 10485760 <source> @type sql host HOSTNAME database db_name adapter sqlserver username WindowsUser password WindowsPwd <table> table tbl_name update_column insert_timestamp </table> </source> <match **> @type stdout </match>
配置修改完成后,以管理员权限打开PowerShell,执行以下命令重启服务即可生效:
Restart-Service fluentdwinsvc
方案2:服务注册时指定启动参数
如果不想修改配置文件,可在注册Fluentd Windows服务时直接传入轮转参数,已注册过服务的需要先卸载原有服务再重新注册:
- 卸载原有服务命令:
td-agent-winsvc uninstall
- 带轮转参数注册新服务:
td-agent-winsvc install --log-rotate-age 5 --log-rotate-size 10485760
- 启动服务:
Start-Service fluentdwinsvc
补充说明
- 可根据实际需求调整
log_rotate_size的数值,例如需要设置20MB阈值可替换为20971520 - 如果你需要轮转的是Fluentd采集输出的业务日志而非自身运行日志,可将match段的stdout插件替换为file输出插件,在file插件配置中添加rotate相关参数即可实现业务日志的自动轮转。
内容的提问来源于stack exchange,提问作者Mysterious288
相关产品推荐
相关产品推荐

