Inode 重用导致 Filebeat 跳过行

编辑

Inode 重用导致 Filebeat 跳过行编辑

在 Linux 文件系统中,Filebeat 使用 inode 和设备来识别文件。当文件从磁盘中删除时,inode 可能被分配给一个新文件。在涉及文件轮转的用例中,如果一个旧文件被删除,并且立即创建了一个新文件,新文件可能与被删除的旧文件具有相同的 inode。在这种情况下,Filebeat 假设新文件与旧文件相同,并尝试从旧位置继续读取,但这不正确。

默认情况下,状态永远不会从注册文件删除。为了解决 inode 重用问题,我们建议您使用 clean_* 选项,特别是 clean_inactive,以删除非活动文件的 state。例如,如果您的文件每 24 小时轮转一次,并且轮转后的文件不再更新,您可以将 ignore_older 设置为 48 小时,将 clean_inactive 设置为 72 小时。

您可以使用 clean_removed 用于从磁盘中删除的文件。请注意,clean_removed 会在扫描期间找不到文件时,从注册表中清除文件 state。如果文件稍后再次出现,它将从头开始重新发送。