以下是在CentOS上排查Zookeeper故障的常用方法:
检查服务状态
sudo systemctl status zookeeper # 查看服务是否运行
sudo systemctl start/enable zookeeper # 启动或设置开机自启
查看日志文件
tail -f /var/log/zookeeper/zookeeper.out # 实时查看日志
journalctl -u zookeeper # 通过journalctl查看服务日志
分析配置文件
检查/etc/zookeeper/conf/zoo.cfg
,确保dataDir
路径正确、端口未被占用,server.x
与myid
文件一致。
验证网络与端口
ping/nc -zv <节点IP> 2181 # 测试节点间网络连通性
netstat -tuln | grep 2181 # 检查端口占用情况
sudo firewall-cmd --add-port=2181/tcp --permanent # 开放防火墙端口
使用四字命令监控集群
echo stat | nc localhost 2181 # 查看服务器状态(Leader/Follower等)
echo mntr | nc localhost 2181 # 获取详细监控指标(延迟、连接数等)
echo ruok | nc localhost 2181 # 检查服务是否存活
检查系统资源
使用top/htop/vmstat
查看CPU、内存、磁盘使用情况,确认是否存在资源不足。
处理数据与权限问题
检查数据目录(如/var/lib/zookeeper
)权限,确保进程有读写权限;必要时清理旧数据目录(需先备份)。
版本与环境兼容性
确认Zookeeper版本与JDK版本匹配(如Zookeeper 3.6+需JDK 8+),检查JAVA_HOME
环境变量是否正确配置。
参考来源:[1,2,3,4,5,6,7,8,9,10,11]