温馨提示×

ubuntu filebeat怎样排除文件

小樊
40
2026-10-11 00:53:35
栏目: 智能运维

在 Ubuntu 上使用 Filebeat 时,可以通过 filebeat.inputs 配置中的 exclude_files 或 prospector 相关排除选项 来排除不需要采集的文件。

下面按常见场景说明。


一、使用 exclude_files 排除文件(最常用)

exclude_files 支持 正则表达式,匹配的是文件路径。

示例:排除 .gz 和 .swp 文件

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/myapp/*.log
  exclude_files: ['.gz$', '.swp$']

示例:排除特定目录

filebeat.inputs:
- type: log
  paths:
    - /var/log/**/*.log
  exclude_files: ['/var/log/debug/']

二、排除整个目录(不采集)

如果某个目录完全不需要:

filebeat.inputs:
- type: log
  paths:
    - /var/log/**/*.log
  exclude_files: ['/var/log/old/.*']

或使用多个 input 分开管理更清晰。


三、排除隐藏文件

exclude_files: ['^\.']

排除如 .hidden.log 这种文件。


四、只采集部分文件(反向排除)

paths:
  - /var/log/myapp/*
exclude_files:
  - error.log

五、排除已处理的历史文件(如日期)

exclude_files: ['2023\d{2}\d{2}.log$']

六、排除 Filebeat 自身日志(推荐)

exclude_files: ['filebeat']

或:

paths:
  - /var/log/*.log
exclude_files: ['/var/log/filebeat/']

七、配置位置(Ubuntu)

通常配置文件:

/etc/filebeat/filebeat.yml

修改后重启:

sudo systemctl restart filebeat

检查配置:

sudo filebeat test config

八、注意事项

  • exclude_files 匹配的是 完整路径
  • 正则不支持 (?i) 这种某些高级语法
  • 已读取的 registry 文件不会自动删除,排除后只是不再采集

如果你有具体路径或文件类型(比如 Nginx、Docker、Java 日志),我可以帮你写一份精确配置。

0 踩