跳到主要内容

升级、回滚与备份

换包升级、在线更新与自动回滚、内容包更新,以及备份与恢复。

换包升级

再次执行一键安装命令,或把新交付包解压到同一个安装目录后执行 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」。

不要换安装目录:目录名决定数据卷名,主机指纹也存在目录里。换目录会起一套空的数据卷,许可证也要重新激活。

在线更新

在线更新分两段,网关只负责下载和校验,安装由运维在主机上执行:

  1. 网关每天检查一次新版本。在 设置 > 版本与更新 中可以看到当前版本和新版本,点 下载并暂存。网关验证发布签名和每个文件的 SHA-256,任何一项不通过都不暂存。

  2. 在主机的安装目录执行:

    ./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.gzCaddy 内置 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/ 不要再同时运行。

上线前至少在测试机上演练一次恢复。

本页内容