五、安装验收

1. 查看版本和服务状态

cmp-ctl version
cmp-ctl status
cmp-ctl plugIn

整包部署后,单节点应看到基础设施及预置服务插件运行;HA 环境中 node1、node2 应看到基础设施和业务插件,node3 仅运行 Redis、Redis Sentinel、RabbitMQ 等仲裁组件。

检查异常容器:

docker ps -a --filter status=exited
docker ps --filter health=unhealthy

2. 执行巡检

cmp-ctl inspection

单节点巡检检查本机系统、网络、磁盘、MariaDB、Redis、RabbitMQ、Caddy 和核心服务。

HA 安装会将 inspection.sh 自动切换为 HA 巡检入口,cmp-ctl inspection 会汇总三个节点的状态。定时巡检默认每 3 分钟执行一次。

检查定时任务:

crontab -l

3. 检查页面和前端服务

curl -I http://127.0.0.1:8100/
curl -fsS http://127.0.0.1:8210/healthz
docker ps --filter name=app-frontend

浏览器登录后若页面白屏,重点检查:

  • app-frontend 是否运行且健康;
  • Caddy 是否将默认路由代理到 127.0.0.1:8210
  • 浏览器开发者工具中静态资源是否返回 200;
  • 前端路由是否被外部代理错误截断。

4. HA 专项检查

VIP

ip addr | grep '<VIP>'
curl -I http://<VIP>:8100/

VIP 正常情况下位于 node1,node1 故障时应迁移到 node2。

MariaDB 双向复制

在 node1、node2 分别执行:

source ${CMP_INSTALL_ROOT}config
docker exec mariadb mariadb -uroot -p"${MysqlPassword}" -e "SHOW SLAVE STATUS\G"

重点确认:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0 或较小值
Last_IO_Error: 空
Last_SQL_Error: 空

Redis 与 Sentinel

三节点分别执行:

source ${CMP_INSTALL_ROOT}config
docker exec redis redis-cli -a "${RedisPassword}" INFO replication
docker exec redis-sentinel redis-cli -p 16379 SENTINEL master mymaster

应只有一个 Redis 主节点,其他节点为副本节点;三个 Sentinel 识别的主节点地址应一致。命令原始输出中的 masterslave 是 Redis 的协议字段名称。

RabbitMQ 集群

docker exec rabbitmq rabbitmqctl cluster_status

三台机器均应看到:

rabbit@node1
rabbit@node2
rabbit@node3

5. 初次登录检查

初次登录后至少完成:

  1. 修改管理员默认密码;
  2. 导入并验证许可证;
  3. 检查产品名称和语言;
  4. 记录安装版本、安装路径、节点 IP、VIP 和校验值。
运维手册 | ZStack CMP · ZCF | ZStack 资源中心