Filebeat 在 CentOS 上报错的原因有很多种,下面我按常见报错场景 + 原因 + 解决办法给你系统梳理一下,你可以对照自己的报错信息来定位。
报错示例
Exiting: error loading config file: stat /var/log/xxx.log: permission denied
或
harvester: failed to read file: open /var/log/xxx.log: permission denied
原因
filebeat 用户运行600 或属主不是 filebeat)解决
# 查看文件权限
ls -l /var/log/xxx.log
# 方法1:赋读权限
chmod o+r /var/log/xxx.log
# 方法2:加入日志所属组
usermod -aG adm filebeat
systemctl start filebeat 失败查看错误
systemctl status filebeat -l
journalctl -u filebeat -xe
常见原因
解决
# 校验配置
filebeat test config
# 测试输出
filebeat test output
报错
YAML config parsing failed: yaml: line 12: did not find expected key
原因
: 后没加空格解决
filebeat test config
vi /etc/filebeat/filebeat.yml
✅ 推荐:
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
报错
Connection marked as failed because the connection to [elasticsearch] failed
原因
解决
# 测试端口
telnet es-ip 9200
# 关闭 SELinux 测试
setenforce 0
# 测试输出
filebeat test output
现象
解决
# 查看是否被拒
ausearch -m avc -ts recent
# 临时关闭测试
setenforce 0
# 永久解决
setsebool -P filebeat_can_read_logs on
原因
解决
rm -f /var/lib/filebeat/registry/*
systemctl restart filebeat
# 查看状态
systemctl status filebeat
# 查看日志
journalctl -u filebeat -f
# 校验配置
filebeat test config
# 校验输出
filebeat test output
你可以把 具体的报错信息(全文)贴出来,我可以直接帮你定位是哪一类问题并给出精确修复命令。