调试 CentOS 上的 Filebeat 可以按照“由易到难、由日志到行为”的思路来逐步排查。下面是一套比较系统、实战性强的调试方法。
systemctl status filebeat
常见状态说明
active (running):服务正常failed:启动失败(需查看日志)inactive:未启动重启 / 停止 / 启动:
systemctl restart filebeat
systemctl stop filebeat
systemctl start filebeat
journalctl -u filebeat -f
或
/var/log/filebeat/filebeat
tail -f /var/log/filebeat/filebeat
重点关注:
filebeat -e -d "*"
-e:输出到 stdout-d "*":开启所有调试信息(可缩小范围)filebeat -e -d "publish,harvester,input"
适合排查:
filebeat test config
或指定配置:
filebeat -c /etc/filebeat/filebeat.yml test config
常见错误
filebeat test output
Connection refused
✅ 检查:
ls /var/lib/filebeat/registry/
registry 记录 Filebeat 已读取文件的 offset
systemctl stop filebeat
rm -rf /var/lib/filebeat/registry
systemctl start filebeat
✅ 会重新采集所有日志
filebeat -e -d "harvester"
你应该看到类似:
Harvester started for file: /var/log/nginx/access.log
如果没有:
sudo -u filebeat cat /var/log/nginx/access.log
chmod 644 /var/log/nginx/access.log
或
usermod -aG root filebeat
getenforce
setenforce 0
systemctl restart filebeat
如恢复正常,可:
✅ 配置文件语法正确
✅ 日志路径真实存在
✅ 输出地址可达
✅ 无权限问题
✅ registry 没“卡死”
✅ SELinux 未拦截
症状:Filebeat 启动正常,但 ES 中没数据
排查顺序:
systemctl status filebeatfilebeat test outputfilebeat -e -d publish如果你愿意,可以把这些信息贴出来,我可以帮你精确定位问题:
/etc/filebeat/filebeat.yml 配置systemctl status filebeatjournalctl -u filebeat 日志片段我可以一步一步帮你调 ✅