在 CentOS 上调试 Filebeat 配置,可以从配置检查、日志、测试命令、调试模式几个方面入手。下面按常用顺序说明。
通常在:
/etc/filebeat/filebeat.yml
这是最基础也是最重要的一步。
filebeat test config
或:
filebeat -c /etc/filebeat/filebeat.yml test config
✅ 如果配置正确,会显示:
Config OK
❌ 错误示例会直接提示哪一行有问题。
测试 Filebeat 是否能正确读取日志文件:
filebeat test input
filebeat test output
成功示例:
elasticsearch: https://127.0.0.1:9200...
- status: 200
filebeat test output
⚠️ 注意:Logstash 必须已启动并监听对应端口。
filebeat -e -d "*"
常用组合:
filebeat -e -d "publish"
filebeat -e -d "input"
filebeat -e -d "elasticsearch"
说明:
-e:日志输出到终端-d:启用调试模块编辑 /etc/filebeat/filebeat.yml:
logging.level: debug
logging.to_files: true
logging.files:
path: /var/log/filebeat
name: filebeat
keepfiles: 3
然后重启:
systemctl restart filebeat
查看日志:
tail -f /var/log/filebeat/filebeat
CentOS 下默认日志路径:
/var/log/filebeat/filebeat
或 journald:
journalctl -u filebeat -f
ls -l /var/lib/filebeat/registry/
⚠️ 如果怀疑采集异常,可以谨慎清空 registry(Filebeat 会重新读文件):
systemctl stop filebeat
rm -rf /var/lib/filebeat/registry
systemctl start filebeat
错误示例:
paths:
- /var/log/nginx/access.log
✅ 确保:
ls -l /var/log/nginx/access.log
✅ 正确:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
❌ 常见错误:
-output.elasticsearch:
hosts: ["http://localhost:9200"]
而不是:
output.elasticsearch.hosts: ["localhost:9200"]
systemctl status filebeat
如果失败:
journalctl -u filebeat -xe
filebeat test config
filebeat test input
filebeat test output
filebeat -e -d "publish"
如果你愿意,可以把 filebeat.yml(脱敏后) 或 报错日志贴出来,我可以帮你逐行分析。