在 CentOS 上调试 Filebeat,通常从日志、配置校验、运行状态、调试模式几个方面入手。下面按实战步骤说明。
Filebeat 默认日志位置:
/var/log/filebeat/filebeat
实时查看:
tail -f /var/log/filebeat/filebeat
常见错误:
No files found for prospectorconnection refused(输出端问题)permission denied(文件权限)systemctl status filebeat
journalctl -u filebeat -f
ps -ef | grep filebeat
filebeat test config
如果有错误,会直接提示哪一行。
filebeat test output
示例正常输出:
elasticsearch: https://127.0.0.1:9200...
parse url... OK
connection... OK
filebeat -e -d "*"
或指定模块:
filebeat -e -d "publish,registrar,input"
参数说明:
-e:日志输出到终端-d:开启 debug编辑 /etc/filebeat/filebeat.yml:
logging.level: debug
logging.to_files: true
logging.files:
path: /var/log/filebeat
name: filebeat
keepfiles: 7
重启:
systemctl restart filebeat
cat /var/lib/filebeat/registry/filebeat/data.json | python -m json.tool
可以看到:
ls -l /var/log/xxx.log
Filebeat 用户:
ps -ef | grep filebeat
如无权限:
chmod 644 /var/log/xxx.log
或加入组:
usermod -aG adm filebeat
filebeat.inputs:
- type: log
paths:
- /var/log/nginx/*.log
测试:
ls /var/log/nginx/*.log
multiline.pattern: '^\['
multiline.negate: true
multiline.match: after
curl localhost:9200/_cat/indices
systemctl status filebeat
journalctl -u filebeat -f
filebeat test config
filebeat test output
filebeat -e -d "*"
tail -f /var/log/filebeat/filebeat
如果你愿意,可以贴:
filebeat.yml我可以帮你精准定位问题。