Filebeat在CentOS上的故障排除手册
一 快速定位流程
sudo systemctl status filebeat、sudo journalctl -u filebeat -f、sudo tail -f /var/log/filebeat/filebeat。sudo /usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml test config;若使用模块化配置,确认 filebeat.config.modules.path 指向有效目录。nc -vz logstash-host 5044、curl -v http://es-host:9200。top/htop 观察资源,确认运行用户(常见为 filebeat)对日志路径与配置目录具备读取权限。filebeat.inputs 的 paths 正确、output 仅定义一次且缩进无误、path.logs 与 path.data 指向可写目录。二 常见故障与修复
output 被重复定义或 YAML 缩进错误。修复方法:合并为单一 output 块;若通过 filebeat.config.dir 引入目录,确保子配置不重复定义 output;使用 yamllint 校验并用 test config 复核。sha256sum filebeat-<version>-x86_64.rpm 与官网校验和比对;检查磁盘空间 df -h;必要时用 rpm2cpio … | cpio -idmv 手动解压或改用 yum localinstall/rpm -ivh 安装。test config,再 systemctl restart filebeat;若仍异常,查看 journalctl -u filebeat -f 与 /var/log/filebeat/filebeat 的错误细节。paths 路径存在且 Filebeat 运行用户对日志文件具备读取权限;必要时调整属主/权限或以正确用户运行。hosts、端口与协议;在 CentOS 上开放相应端口(如 firewall-cmd --add-port=5044/tcp --permanent && firewall-cmd --reload);用 nc/curl 验证连通性。close_timeout、clean_inactive 等参数加速文件句柄回收。三 配置与连通性自检清单
filebeat.config.modules.path 指向 ${filebeat.home}/modules.d/*.yml 并已启用所需模块。filebeat.inputs[].paths 是否覆盖目标日志;JSON 日志可使用 json.keys_under_root: true 解析到根字段。output 块;缩进与层级正确;必要时在 output.elasticsearch 中设置 index 模板或 ILM 策略。nc -vz <host> 5044,对 Elasticsearch 使用 curl -v http://<host>:9200;网络不通时优先排查安全组/防火墙与服务监听地址。systemctl restart filebeat,用 systemctl status 与 journalctl -u filebeat -f 观察;必要时提高日志级别至 debug 辅助定位。四 实用命令速查
sudo systemctl start|stop|restart|status filebeatsudo /usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml test configsudo journalctl -u filebeat -f、sudo tail -f /var/log/filebeat/filebeatnc -vz <host> 5044、curl -v http://<host>:9200sudo firewall-cmd --add-port=5044/tcp --permanent && sudo firewall-cmd --reloadtop/htop、lsof | grep deletedsha256sum filebeat-<version>-x86_64.rpm、sudo yum localinstall filebeat-<version>-x86_64.rpm 或 sudo rpm -ivh filebeat-<version>-x86_64.rpm