升级、回滚与备份
换包升级、在线更新与自动回滚、内容包更新,以及备份与恢复。
换包升级
再次执行一键安装命令,或把新交付包解压到同一个安装目录后执行 sudo ./deploy.sh,选择保留现有 .env。脚本加载新镜像,把 GATEWAY_IMAGE_TAG 切到新版本并重建容器。.env、state/ 和数据卷都保留,指纹不变,不需要重新激活。数据库表结构由网关启动时的迁移自动升级。离线主机同样适用。
从 0.1.x 升级到 0.2.0
0.2.0 起交付包、镜像和容器统一改名为 RST-AI-Copilot-for-Prometheus-* / rst-ai-copilot-for-prometheus-*,0.1.x 的网关按旧文件名找包,在线更新到不了 0.2.0,需要手动换包一次,之后照常在线更新:
- 联网主机:
curl -fsSL https://github.com/Reallysec/RST-AI-Copilot-for-Prometheus/releases/latest/download/install.sh | sudo bash,它发现旧目录/opt/rst-prometheus-ai-copilot里有.env就在原目录升级。 - 离线主机:把交付包解压到原安装目录(默认
/opt/rst-prometheus-ai-copilot)后重跑deploy.sh,选「保留现有 .env」。
不要换安装目录:目录名决定数据卷名,主机指纹也存在目录里。换目录会起一套空的数据卷,许可证也要重新激活。
在线更新
在线更新分两段,网关只负责下载和校验,安装由运维在主机上执行:
-
网关每天检查一次新版本。在 设置 > 版本与更新 中可以看到当前版本和新版本,点 下载并暂存。网关验证发布签名和每个文件的 SHA-256,任何一项不通过都不暂存。
-
在主机的安装目录执行:
./deploy/rst-update.sh # 加载暂存镜像,切换版本,健康探测 ./deploy/rst-update.sh --rollback # 回到上一版/healthz连续 3 次返回 200 才算成功,否则自动回滚。脚本会把 compose 文件和 Caddyfile 一并换成新版,旧文件留作*.bak,回滚时放回。.env和./certs不变。
升级前先备份,尤其是 PostgreSQL。数据库迁移不可逆,回滚镜像不会回滚表结构。
内容包
指标字典、告警规则包和运维手册以签名内容包的形式更新。每天的更新检查发现较新的内容包时,默认验签后自动启用。不想自动切换时在 .env 中设置 RST_CONTENT_AUTO_APPLY=0,新内容包只保存,由管理员手动启用或切回较早版本。
备份
在安装目录中执行:
bash scripts/backup.sh [备份目录] # 默认 ./backups,自动保留 30 天| 文件 | 内容 | 丢失的后果 |
|---|---|---|
host-files-<时间>.tar.gz | .env、state/machine-id、state/server_guid | 主机指纹变化,许可要重新激活;大模型、数据源凭据和内部密钥要重填 |
gateway-state-<时间>.tar.gz | 设置、大模型配置、许可激活记录、加密密钥 | 配置和激活记录丢失;通知渠道的 webhook 和 SMTP 口令解不开 |
postgres-<时间>.dump | 整库:账号、审计、分析记录、报表历史、投递记录、知识库 | 账号只剩首个管理员,历史全部丢失 |
caddy-data-<时间>.tar.gz | Caddy 内置 CA 根证书和站点证书 | 生成新的根证书,浏览器要重新信任 |
指标和告警本身在客户的 Prometheus 和 Alertmanager 中,不在备份范围内。建议用 cron 每天备份一次:
0 2 * * * cd /opt/rst-ai-copilot-for-prometheus && bash scripts/backup.sh /backup/rst-copilot >> /backup/rst-copilot/backup.out 2>&1备份文件等同于明文凭据:.env 中有大模型 key 和数据源口令,网关状态中同时有加密的设置和解密它们的密钥。备份目录设为 chmod 700,离机保存时再加一层加密。
恢复
bash scripts/restore.sh host-files-XXXX.tar.gz gateway-state-XXXX.tar.gz postgres-XXXX.dump caddy-data-XXXX.tar.gz
docker compose -f docker-compose.prod.yml up -d --force-recreate gateway caddy恢复使用的镜像版本不能低于备份时的版本。
换机恢复:主机指纹跟着 state/ 走,许可不需要重新激活。在新主机上把同版本交付包解压到 /opt/rst-ai-copilot-for-prometheus,先恢复 host-files,执行 ./deploy.sh 并保留现有 .env,再恢复其余文件并重建容器。旧主机上的同一份 state/ 不要再同时运行。
上线前至少在测试机上演练一次恢复。