文档目录

问题现象

单个管理节点上的 UI 服务无法启动。。

判断方法

  • 受影响节点上由 Redis 支撑的 UI 服务无法启动,导致登录和管理操作不可用。

使用场景

  • 产品:ZCF
  • 版本:4.8.x。
  • 组件:ZStack Cloud
  • 部署形态:多管理节点(zsha2)。

可能原因

  • /var/log 目录被搬移、删除,或丢失了执行(搜索)权限,导致 Redis 单元无法打开日志文件。

解决方案

1. 排除平台层 Redis 安全加固

  • 检查项:确认受影响节点未做过与 6379 相关的安全加固。
  • 命令/UI:
  iptables -nvL | grep 6379
  iptables -nvL -t mangle

检查以上两条命令的输出中,filter 表和 mangle 表内是否存在针对 6379 端口的 DROP 或 REJECT 规则。同时查阅平台变更记录,确认是否有近期的 6379 相关加固操作。

  • 预期结果:两张表中均无匹配 6379 端口的 DROP/REJECT 规则,变更记录中也无近期 6379 相关加固。
  • 异常处理:先回滚该加固变更(或删除对应规则)。

2. 手动启动 Redis

  • 检查项:手动运行 redis-server,确认其在 systemd 之外能否正常启动;也可使用对端正常节点上的 redis.conf 来启动。
  • 命令/UI:
  # 基本方式:使用内置默认配置启动 redis-server
  redis-server

  # 使用健康节点的 redis.conf 副本启动 redis-server
  redis-server /etc/redis.conf

若使用自定义配置方式,请先从正常节点拷贝 /etc/redis.conf(或平台默认路径)到受影响节点。

  • 预期结果:两种方式下 Redis 均能成功启动。
  • 异常处理:进入第 3 步。

3. 检查系统资源和已有 Redis 进程

  • 检查项:确认内存充足、无僵尸进程争抢资源。
  • 命令/UI:
  free -h
  top
  ps -ef | grep -i redis
  • 预期结果:内存充足,无僵尸进程,无残留的 redis 进程占用状态。
  • 异常处理:释放内存或终止残留进程;否则进入第 4 步。

4. 检查 zstack-ui 日志

  • 检查项:确认 zstack-ui 日志中的失败模式。
  • 命令/UI:查看 /usr/local/zstack/apache-tomcat/logs/zstack-ui.log 日志尾部;查找连接 6379 端口失败相关记录。
  • 预期结果:日志中出现 connection refused 或类似的"无法连接 6379"错误。
  • 异常处理:进入第 5 步。

5. 检查 Redis 的 systemd 日志

  • 检查项:捕获 Redis 单元启动时的精确错误。
  • 命令/UI:
  journalctl -xe -u redis
  • 预期结果:出现 "unable to open file ... Permission denied" 等日志条目,提示文件系统 / 权限问题。
  • 异常处理:进入第 6 步。

6. 检查 /var/log 目录状态

  • 检查项:确认 /var/log 是否存在、是否包含预期的子目录、是否被搬移。
  • 命令/UI:
  ls -ld /var/log
  ls /var/log
  ll /var/log
  • 预期结果:/var/log 存在,子目录集合和权限与另一管理节点一致。
  • 异常处理:通过 history、变更记录等定位 /var/log 何时被搬移或修改。

7. 恢复 /var/log 并修复权限

  • 检查项:将 /var/log 恢复回原位置(若已搬移),并授予 /var/log +x 权限,使 Redis 能够遍历该目录。
  • 命令/UI:
  # 若 /var/log 被搬移到非标准挂载点,
  # 请先通过客户变更记录确认目标路径,然后再恢复。
  # 将 <new-log-path> 替换为实际搬移后的路径。
  rsync -a <new-log-path>/ /var/log/   # 将内容拷贝回原位置
  chmod +x /var/log
  systemctl start redis
  systemctl start zstack-ui
  • 预期结果:Redis 正常启动;zstack-ui 成功连接 6379,该管理节点的 UI 可正常访问。

验证方法

  • systemctl status redis 在受影响节点显示 active (running)。
  • systemctl status zstack-ui 显示 active (running)。

收集支持信息

  • 日志包:受影响节点的 journalctl -xe -u redis 输出和 zstack-ui 日志。
  • 时间戳:/var/log 搬移时间(通过 history 定位)、Redis 开始失败的时间、UI 服务失败的时间。
  • 影响范围与对象:故障管理节点标识、两台管理节点的 IP,以及故障时刻的全局 HA 状态。

附加信息

  • 最佳实践:请勿在管理节点上将 /var/log 搬移到其他目录。若磁盘空间紧张,应清理过期的采集日志和监控日志以释放空间。
管理节点因 /var/log 目录权限异常导致 UI 服务无法启动 | 故障排查 · KB | ZStack 资源中心