inode 重用导致 Filebeat 跳过行

编辑

inode 重用导致 Filebeat 跳过行

编辑

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

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

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