在 Filebeat 中,如果需要忽略已经存在的“旧日志”(即 Filebeat 首次启动时不采集历史日志),可以通过设置 ignore_older 来实现。
下面按常见场景说明。
ignore_olderfilebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/app/*.log
ignore_older: 1h
✅ 含义:
s → 秒
m → 分钟
h → 小时
d → 天
例如:
ignore_older: 10m
ignore_older: 24h
ignore_older: 7d
scan_frequency 的区别(很重要)| 配置项 | 作用 |
|---|---|
ignore_older |
是否采集该文件 |
scan_frequency |
多久检查一次新日志 |
✅ 不要混淆
scan_frequency 不能用来忽略旧日志ignore_older如果你之前已经运行过 Filebeat:
ignore_older,已经记录过的文件仍可能被继续采集# 停止 Filebeat
systemctl stop filebeat
# 删除 registry(记录采集进度的数据)
rm -rf /var/lib/filebeat/registry
# 重新启动
systemctl start filebeat
⚠️ 注意:
如果你只想忽略某些目录或文件:
filebeat.inputs:
- type: log
paths:
- /var/log/app/current/*.log
或者排除历史文件:
exclude_files:
- \.gz$
- old-
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/app/*.log
ignore_older: 1h
scan_frequency: 10s
✅ 效果:
Filebeat 忽略旧日志的核心方式是
ignore_older,必要时配合清空 registry。
如果你愿意,可以告诉我:
我可以帮你给出一份可直接使用的完整 filebeat.yml。