如何排查CentOS中Filebeat故障
导读:CentOS 上 Filebeat 故障排查清单 一 快速定位与基础检查 查看服务状态与最近日志 执行:sudo systemctl status filebeat -l 实时看日志:sudo journalctl -xeu fileb...
CentOS 上 Filebeat 故障排查清单
一 快速定位与基础检查
- 查看服务状态与最近日志
- 执行:
sudo systemctl status filebeat -l - 实时看日志:
sudo journalctl -xeu filebeat或sudo tail -f /var/log/filebeat/filebeat
- 执行:
- 确认配置文件有效
- 主配置路径:
/etc/filebeat/filebeat.yml - 语法校验:
sudo yamllint /etc/filebeat/filebeat.yml
- 主配置路径:
- 核对输入与输出
- 输入:
filebeat.inputs中的 paths 是否存在且可读 - 输出:检查 output.elasticsearch 或 output.logstash 的 hosts、端口、认证、SSL 等
- 输入:
- 版本与兼容性
- 查看版本:
filebeat -version - 与 Elasticsearch/Logstash 版本需匹配(参考官方兼容矩阵)
- 查看版本:
- 资源与端口
- 资源:
top/htop观察 CPU/内存 - 端口:是否被占用
sudo netstat -tulpen | grep < 端口>
- 资源:
二 常见故障与修复要点
- 服务起不来或反复重启
- 用
journalctl -xeu filebeat定位具体报错;常见为 YAML 缩进错误、输出 hosts 不可达、证书/认证错误 - 重置失败状态:
systemctl reset-failed filebeat & & systemctl start filebeat
- 用
- 配置与权限
- 配置文件权限:
sudo chmod 644 /etc/filebeat/filebeat.yml - 日志文件权限:确保运行用户(常见为 filebeat 或 root)对目标日志有 读权限
- 配置文件权限:
- 网络与防火墙
- 连通性测试:
telnet logstash-host 5044、curl -I http://elasticsearch:9200 - 防火墙放行(示例):
sudo firewall-cmd --add-port=5044/tcp --permanent & & sudo firewall-cmd --reload
- 连通性测试:
- 日志路径与文件句柄
- 路径错误:确认
paths存在且被轮转脚本正确管理 - 删除旧文件后句柄未释放:在输入中启用
close_removed: true
- 路径错误:确认
- 解析与多行日志
- JSON 日志:在输入启用
json.*相关选项,确保message字段提取正确 - 多行堆栈:使用
multiline正确合并堆栈行,避免事件被拆分
- JSON 日志:在输入启用
三 到 Elasticsearch 与 Logstash 的端到端验证
- 到 Elasticsearch
- 健康检查:
curl -X GET "http://< es-host> :9200/_cluster/health?pretty" - 索引与数据:
curl -X GET "http://< es-host> :9200/_cat/indices?v"与_search检索最近事件
- 健康检查:
- 到 Logstash
- 端口连通:
telnet < logstash-host> 5044 - 自身状态:
curl http://< logstash-host> :9600/api/version(确认 Logstash 正常运行)
- 端口连通:
- 认证与 SSL
- 若启用 HTTPS/认证,在 Filebeat 输出中补充
ssl.certificate_authorities、username/password等参数
- 若启用 HTTPS/认证,在 Filebeat 输出中补充
四 高频场景速查表
| 现象 | 快速检查 | 处理建议 |
|---|---|---|
| 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.yml
- 配置片段:
- 输出到 Logstash
- 配置片段:
output.logstash: hosts: ["logstash.example.com:5044"]
- 配置片段:
- 输出到 Elasticsearch
- 配置片段:
output.elasticsearch: hosts: ["http://es.example.com:9200"] # username: "elastic" # password: "changeme"
- 配置片段:
- 修改后执行:
sudo systemctl restart filebeat & & sudo tail -f /var/log/filebeat/filebeat
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何排查CentOS中Filebeat故障
本文地址: https://pptw.com/jishu/776797.html
