问题现象
单个管理节点上的 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搬移到其他目录。若磁盘空间紧张,应清理过期的采集日志和监控日志以释放空间。
