以下是在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]