我正在尝试将所有日志发送到Apache Kafka pubsub消息传递来实现nginx日志轮换。虽然有一个非常大的输入(大约1GBpm),我不知道当日志文件旋转时尾部会如何表现。
例如:
tail -F access.log | kafkacat -b broker -t topic
tail
将因读取管道最大缓冲区大小而无法读取文件,因为向kafka发送发送消息不是即时的。 logrotate
被锁定时,tail
命令会轮换文件,则无法判断之前的access.log
是否已被完全读取,或者是否还有一些日志。所以这是我的问题:我如何实现tail
到kafkacat
同时确保尾部将读取所有文件,无论它是否会旋转?