1,断点续传------flume-filemonitor-source (https://github.com/cwtree/flume-filemonitor-source)
2,数据高可靠,宕机不会丢失之措施------channel配置成fileChannel,搭建集群,配置安全级别-end-to-end
就是agent获取到event数据先写磁盘,当sink数据成功后,再删除掉磁盘数据
3,高性能-----如果读取多个目录则可以配置多个source去读取,channel采用不同磁盘目录文件,可以既安全又高效
4,flume1.7.0-taildirSource 支持多文件监控和断点续传(https://blog.csdn.net/u012373815/article/details/62241528)
问题
但是官方的 taildirSource 组件貌似是支持nginx 日志,对于log4j 日志好像不太管用。
因为log4j 日志会自动切分,log4j 切分日志其实就是新建一个文件,然后把原来的日志文件都改名。但是 taildirSource 组件时不支持文件改名的。如果文件改名会认为是新文件,就会重新读取,这就导致了日志文件重读。
解决
为了解决这个问题,我去读了 taildirSource 的源码。
发现了两个地方 需要修改
1.修改 ReliableTaildirEventReader
修改ReliableTaildirEventReader 类的 upda