可靠地将日志文件跟踪/传输到另一台机器(关键词:可靠)。奇怪的是不可能?

可靠地将日志文件跟踪/传输到另一台机器(关键词:可靠)。奇怪的是不可能?

我在一台 UNIX 机器上有一个不断增长的日志文件。我只想在写入后几秒钟内在另一个机器上收集这些数据。

听起来很简单。但如果出现以下情况,我需要它不会引入问题:

  1. 要么重启盒子
  2. 网络故障
  3. 日志文件被轮换(无需在文件句柄打开的情况下丢失数据)
  4. 处理上述情况会导致无法检测到数据重复(由于文件名/inode/seekpoint/trunccount 可用,因此可以检测到重复)
  5. (可选)文件被截断(返回开始,向同行提及 - 潜在的不可避免的数据丢失的小窗口)。

我似乎找不到任何可以正确完成此操作的方法。系统日志工具日志想要钱来避免问题 2。rsyslog当遇到问题 2 时,它会出现问题 1,并且在测试中消耗了我的 CPU。

似乎没有任何工具不会产生比它解决的问题更多的问题。

相关内容