![可靠地将日志文件跟踪/传输到另一台机器(关键词:可靠)。奇怪的是不可能?](https://linux22.com/image/1550894/%E5%8F%AF%E9%9D%A0%E5%9C%B0%E5%B0%86%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E8%B7%9F%E8%B8%AA%2F%E4%BC%A0%E8%BE%93%E5%88%B0%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%BA%E5%99%A8%EF%BC%88%E5%85%B3%E9%94%AE%E8%AF%8D%EF%BC%9A%E5%8F%AF%E9%9D%A0%EF%BC%89%E3%80%82%E5%A5%87%E6%80%AA%E7%9A%84%E6%98%AF%E4%B8%8D%E5%8F%AF%E8%83%BD%EF%BC%9F.png)
我在一台 UNIX 机器上有一个不断增长的日志文件。我只想在写入后几秒钟内在另一个机器上收集这些数据。
听起来很简单。但如果出现以下情况,我需要它不会引入问题:
- 要么重启盒子
- 网络故障
- 日志文件被轮换(无需在文件句柄打开的情况下丢失数据)
- 处理上述情况会导致无法检测到数据重复(由于文件名/inode/seekpoint/trunccount 可用,因此可以检测到重复)
- (可选)文件被截断(返回开始,向同行提及 - 潜在的不可避免的数据丢失的小窗口)。
我似乎找不到任何可以正确完成此操作的方法。系统日志工具和日志想要钱来避免问题 2。rsyslog当遇到问题 2 时,它会出现问题 1,并且在测试中消耗了我的 CPU。
似乎没有任何工具不会产生比它解决的问题更多的问题。