在 Debian 系统里 Filebeat 报错 的原因很多,不能一概而论。下面我按常见错误类型 + 原因 + 解决办法给你梳理一下,你可以对照自己的报错信息定位。
报错示例
Exiting: error loading config file: stat /var/log/xxx: permission denied
或
open /var/log/nginx/access.log: permission denied
原因
filebeat 用户运行解决方法
sudo usermod -aG adm filebeat
sudo systemctl restart filebeat
或确保日志目录可被读取:
sudo chmod o+r /var/log/nginx/access.log
报错
systemctl status filebeat
# failed to start filebeat
查看真实错误
sudo journalctl -u filebeat -xe
常见原因
报错
YAML config parsing failed
原因
检查
sudo filebeat test config
报错
connection attempt failed: dial tcp 192.168.1.10:9200
或
x509: certificate signed by unknown authority
原因
解决方法
telnet 192.168.1.10 9200
output.elasticsearch:
hosts: ["http://localhost:9200"]
报错
Failed to create registrar file
原因
/var/lib/filebeat 权限不对解决
sudo chown -R filebeat:filebeat /var/lib/filebeat
# 1. 测试配置
sudo filebeat test config
# 2. 测试输出
sudo filebeat test output
# 3. 查看日志
sudo journalctl -u filebeat -f
如果你愿意,可以直接把 完整的报错信息(终端或 journalctl 输出)发给我,我可以精确告诉你哪一行配置有问题、怎么改。
例如:
Exiting: error unpacking config data
我可以根据版本(7.x / 8.x)给你具体方案。