CentOS 上 Filebeat 故障排查清单
一 快速定位与基础检查
sudo systemctl status filebeat -lsudo journalctl -xeu filebeat 或 sudo tail -f /var/log/filebeat/filebeat/etc/filebeat/filebeat.ymlsudo yamllint /etc/filebeat/filebeat.ymlfilebeat.inputs 中的 paths 是否存在且可读filebeat -versiontop/htop 观察 CPU/内存sudo netstat -tulpen | grep <端口>二 常见故障与修复要点
journalctl -xeu filebeat 定位具体报错;常见为 YAML 缩进错误、输出 hosts 不可达、证书/认证错误systemctl reset-failed filebeat && systemctl start filebeatsudo chmod 644 /etc/filebeat/filebeat.ymltelnet logstash-host 5044、curl -I http://elasticsearch:9200sudo firewall-cmd --add-port=5044/tcp --permanent && sudo firewall-cmd --reloadpaths 存在且被轮转脚本正确管理close_removed: truejson.* 相关选项,确保 message 字段提取正确multiline 正确合并堆栈行,避免事件被拆分三 到 Elasticsearch 与 Logstash 的端到端验证
curl -X GET "http://<es-host>:9200/_cluster/health?pretty"curl -X GET "http://<es-host>:9200/_cat/indices?v" 与 _search 检索最近事件telnet <logstash-host> 5044curl http://<logstash-host>:9600/api/version(确认 Logstash 正常运行)ssl.certificate_authorities、username/password 等参数四 高频场景速查表
| 现象 | 快速检查 | 处理建议 |
|---|---|---|
| Active: failed | journalctl -xeu filebeat |
按报错修复 YAML/输出/权限,随后 reset-failed 并启动 |
| permission denied | ls -l <日志文件>;`ps -ef |
grep filebeat` |
| connection refused / timeout | telnet <host> <port>;curl |
核对地址端口、服务是否启动、放行防火墙 |
| illegal configuration / YAML 报错 | yamllint filebeat.yml |
修正缩进与语法错误 |
| SSL/TLS error | 查看 Filebeat 与对端 SSL 配置 | 补全 CA/证书/启用 ssl 参数 |
| 日志不进 ES/无新数据 | ES 健康检查;Filebeat 日志;索引列表 | 核对输出配置、索引生命周期、时间范围查询 |
| 多行堆栈被拆分 | 事件 message 是否含完整堆栈 | 配置 multiline 正确合并首行与堆栈 |
| 删除日志后仍在发送 | close_removed 未启用 |
在输入中启用 close_removed: true |
| 版本不兼容 | filebeat -version 与对端版本 |
对齐 Elastic Stack 版本矩阵 |
五 最小可用配置模板用于验证
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
- /var/log/*.log
output.console:
enabled: true
pretty: true
sudo filebeat -e -c /etc/filebeat/filebeat.ymloutput.logstash:
hosts: ["logstash.example.com:5044"]
output.elasticsearch:
hosts: ["http://es.example.com:9200"]
# username: "elastic"
# password: "changeme"
sudo systemctl restart filebeat && sudo tail -f /var/log/filebeat/filebeat