首页主机资讯Debian Zookeeper故障排查流程是什么

Debian Zookeeper故障排查流程是什么

时间2025-12-03 21:02:03发布访客分类主机资讯浏览857
导读:Debian 上 Zookeeper 故障排查流程 一 快速判定与恢复 检查服务状态与端口 执行:sudo systemctl status zookeeper 查看是否 active(running)。 执行:sudo netstat...

Debian 上 Zookeeper 故障排查流程

一 快速判定与恢复

  • 检查服务状态与端口
    • 执行:sudo systemctl status zookeeper 查看是否 active(running)。
    • 执行:sudo netstat -tulpen | grep 2181 确认 2181 端口监听正常。
  • 查看服务日志
    • 执行:sudo tail -n50 /var/log/zookeeper/zookeeper.outjournalctl -u zookeeper -xe 抓取最近错误与堆栈。
  • 若服务未运行,先尝试启动并观察日志
    • 执行:sudo systemctl start zookeeper,再次查看状态与日志定位启动失败原因。

二 配置与依赖核查

  • 配置文件 /etc/zookeeper/conf/zoo.cfg 关键项
    • 核对:tickTimeinitLimitsyncLimitdataDirclientPort=2181server.X=host:2888:3888 是否完整且一致。
  • 集群身份文件
    • 核对每个节点的 myid 内容与 server.XX 一一对应,且唯一。
  • Java 环境
    • 执行:java -version,确认已安装且版本与 Zookeeper 兼容(常见为 OpenJDK 8)。
  • 目录权限与磁盘
    • 确认 dataDir(及可选的 dataLogDir)属主为运行 Zookeeper 的用户,且磁盘空间充足。
  • 环境变量
    • 确认 JAVA_HOMEZOO_HOME 等指向正确路径。

三 网络连通与防火墙

  • 连通性测试
    • 执行:ping < zk_ip> telnet < zk_ip> 2181nc -vz < zk_ip> 2181 验证可达与端口开放。
  • 防火墙放行
    • 使用 firewalldsudo firewall-cmd --permanent --add-port=2181/tcp & & sudo firewall-cmd --reload
    • 使用 iptablessudo iptables -I INPUT -p tcp --dport 2181 -j ACCEPT
  • SELinux(如启用)
    • 临时:sudo setenforce 0;或按需调整策略以允许 Zookeeper 网络访问。
  • 主机名与解析
    • 确保 server.X 中主机名可解析(/etc/hosts 或 DNS 正确)。

四 集群状态与健康检查

  • 四字命令自检
    • echo stat | nc localhost 2181(查看角色与连接)
    • echo ruok | nc localhost 2181(返回 imok 表示进程存活)
    • echo mntr | nc localhost 2181(关键指标:zk_avg_latency、zk_packets_received、zk_outstanding_requests 等)
  • 脚本状态
    • 执行:/usr/share/zookeeper/bin/zkServer.sh status(显示 leader/follower 状态)
  • 客户端连通
    • 使用 zkCli.sh 连接:/usr/share/zookeeper/bin/zkCli.sh -server < zk_ip> :2181,观察会话建立与 ls / 是否正常。

五 日志与数据目录深度分析

  • 系统输出与 GC 日志
    • 重点查看 /var/log/zookeeper/zookeeper.out 与 GC 日志中的 OutOfMemoryError、启动异常栈。
  • 事务日志与快照
    • 事务日志目录由 dataLogDir 指定(未配置则与 dataDir 同目录下的 version-2),文件名形如 log.;快照为 snapshot.
    • 使用工具查看事务日志:java -cp "$ZOOKEEPER_HOME/lib/*:$ZOOKEEPER_HOME/zookeeper-*.jar" org.apache.zookeeper.server.LogFormatter < logfile>
  • 日志滚动与保留
    • 通过 log4j.properties 配置滚动策略;在 zoo.cfg 设置自动清理:
      • autopurge.snapRetainCount=3
      • autopurge.purgeInterval=1(单位:小时)
  • 资源与性能
    • 执行:top/htopfree -miostat -x 1 检查 CPU/内存/磁盘 I/O;高占用时结合配置与负载优化(如 JVM 堆、I/O 优化、连接数限制 maxClientCnxns)。

附 常见错误对照表

症状 快速检查 处理建议
端口 2181 被占用 `netstat -tulpen grep 2181`
启动失败且报权限/路径错误 ls -ld dataDir、日志报错 修正 dataDir 权限/属主,确保磁盘可写
集群无法选主或节点异常 `echo stat nc、查看 zoo.cfgserver.X`
客户端连接超时/拒绝 telnet/nc2181 放行防火墙、检查客户端超时与版本兼容
事务日志/快照异常或磁盘满 查看 dataDir/version-2 清理过期数据、配置自动清理、扩容磁盘
频繁 GC 或 OOM GC 日志、堆设置 调整 JVM 堆、优化会话与连接数、降低负载

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian Zookeeper故障排查流程是什么
本文地址: https://pptw.com/jishu/762756.html
Java应用在Linux日志中常见问题 Linux Java日志清理策略是什么

游客 回复需填写必要信息