我在docker上运行了fluentd,并将其配置为尾部已挂载的日志文件。 为了测试fluentd如何处理日志轮换,我创建了一个Java应用程序,将logback logger配置为写入该文件,每分钟滚动一次,最大滚动速度为15kb。 似乎fluentd无法识别此文件的滚动状态
我正在使用fluentd docker image fluent / fluentd:v1.3.2-debian
流利的配置文件:
<source>
@type tail
path /var/log/audit.log
pos_file /var/log/audit.log.pos
tag audit
format json
</source>
<match audit>
@type stdout
</match>
我使用的logback版本是经典的logback版本1.2.3 附加程序配置:
<appender name="AUDIT_LOG" class="CustomAppender">
<file>/tmp/logs/audit.log</file>
<encoder>
<pattern>%m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/tmp/logs/audit.log.%d{yyyy-MM-dd_HH_mm__}%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<maxFileSize>15kb</maxFileSize>
</rollingPolicy>
</appender>
我非常确定问题在于注销后将文件刷新到磁盘。 当我调试logback时,fluentd确实能够识别滚动。同样,当我在外壳中手动重命名文件时(mv audit.log audit.old.log)