1

我正在研究一个正在考虑使用流利的项目。我需要实时解析nginx访问日志,可能使用in_tail。但是当发生日志轮换时就会出现一个问题。

在这种情况下,fluentd 完成 tail 直到 DAY1 23:59:00。下一次预定的运行时间为 2 分钟。所以它将在 DAY2 01:01:00 再次运行。同时轮换了 nginx 访问日志(文件很可能被截断)。假设每分钟有 1000 个日志条目。fluentd如何在轮换后检索DAY1的最后一分钟。谁能给我一些指示?

4

2 回答 2

1

我认为,如果在预先检查后更新,fluentd 也会从旋转文件中读取数据

http://docs.fluentd.org/articles/in_tail rotate_wait

in_tail 实际上比 tail -F 本身做得更多。旋转文件时,可能仍需要将一些数据写入旧文件而不是新文件。

in_tail 通过在完全转换到新文件之前保留对旧文件的引用(即使在它已经旋转之后)一段时间来解决这个问题。这有助于防止为旧文件指定的数据丢失。默认情况下,此时间间隔为 5 秒。

rotate_wait 参数接受一个整数,表示您希望此时间间隔的秒数。

于 2014-02-17T16:58:07.130 回答
0

Fluentd 的 in_tail 并不是为了赶上日志轮换量而设计的。我建议您改用 nginx Fluentd 模块。

于 2014-02-02T02:25:27.060 回答