Filebeat 在 CentOS 上“不采集”通常不是单一原因,下面按最常见 → 较少见的顺序给你排查清单,基本能覆盖 90% 的情况。
systemctl status filebeat
或
ps -ef | grep filebeat
✅ 正常应看到 filebeat 进程
❌ 若没运行:
systemctl start filebeat
systemctl enable filebeat
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
❌ 常见错误:
enabled: false/var/log)output.elasticsearch:
hosts: ["http://localhost:9200"]
或
output.logstash:
hosts: ["localhost:5400"]
❌ 错误示例:
getenforce
如果是 Enforcing:
✅ 临时关闭测试:
setenforce 0
✅ 或给日志加权限:
chcon -R -t var_log_t /var/log/xxx
✅ 或永久关闭(不推荐生产):
vi /etc/selinux/config
SELINUX=disabled
Filebeat 默认以 root 或 filebeat 用户运行。
ls -l /var/log/xxx.log
若权限不足:
chmod 644 /var/log/xxx.log
chown root:root /var/log/xxx.log
Filebeat 会记录文件读取位置:
/var/lib/filebeat/registry
如果文件内容没变但你想重新采集:
systemctl stop filebeat
rm -rf /var/lib/filebeat/registry
systemctl start filebeat
⚠️ 会重新采集所有日志
Filebeat 只采集新增内容:
echo "test log" >> /var/log/xxx.log
如果没反应,说明前面某一步有问题。
journalctl -u filebeat -f
或
tail -f /var/log/filebeat/filebeat
常见错误:
connection refusedpermission deniedno files foundfilebeat test config
filebeat test output
✅ 都显示 ok 才正常
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
output.console:
pretty: true
filebeat -e -c filebeat.yml
能打印日志说明采集正常 ✅
如果你愿意,可以把下面信息发我,我可以直接帮你定位:
filebeat.ymlsystemctl status filebeatjournalctl -u filebeat | tail -50