vim 默认的写盘机制是 "先写新文件再 rename 替换",对采集器极不友好:
- inode 变化:新文件的 inode 与原文件不同,采集器会以为出现了一个新文件,从而再次采集。
- 文件签名改变:新文件头部内容与原文件不同,原本通过头部签名识别的唯一性失效,导致误判。
- 写入程序未切换:业务进程仍持有旧 fd 写入旧文件,但新文件已替换文件名,可能导致部分日志写入到 "已被替换的旧文件",最终丢失。
推荐用 less、grep、tail 等只读工具查看日志,避免使用 vim 编辑生产日志。如果一定要修改,需在消费端做好去重和异常处理逻辑。




