现在做法是,A 机器的 Nginx 配置 rsyslog 传到 B 机器,然后 B 机器通过 rsyslog 的 httpfs 插件上传到 hdfs 。但是这种做法,数据量一大就丢数据,或者叫停止写入 hdfs,原因还未找到,求助还有没有其他的方式实现这种功能。有试过 flume,但是它的 Exec -tail 的方式只能监听一个文件,这里是每天生成一个文件,还有就是 spoolDir 方式,它支持丢整个文件到文件夹,不能实时写入。还看过其他的 fluentd,filebeat 等,好像都不太能打到要求,很苦恼。
1
hcymk2 2020-08-29 12:07:14 +08:00
github.com/syslog-ng/syslog-ng 不知道这个是否满足你的要求。
|
2
clancyliu OP 已经找到方案了,flume 里面有一种 Taildir Source , https://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#taildir-source
之前看了很多次文档,都没有注意到这里 |