跳到主要内容

升级、回滚与备份

用安装命令、交付包、在线更新或手动切换镜像升级网关,社区版升级,回滚,需要备份的数据与恢复。QRadar 侧的数据不由网关备份。

升级只替换镜像和部署文件。.env、state/ 目录和 Docker 卷保留,许可的主机指纹不变,升级后不需要重新激活。

升级、回滚和恢复都不执行 docker compose down -v,也不重建 state/machine-id 或 state/server_guid。卷和这两个文件共同构成许可的主机身份,变化后需要重新激活。

从 1.1.15 及更早版本升级到 1.1.16

1.1.16 起交付包、镜像和容器改用产品名 RST-AI-Copilot-for-QRadar,GitHub 仓库改为 Reallysec/RST-AI-Copilot-for-QRadar。1.1.15 及更早版本的网关在线更新到 1.1.16 会失败,需要手动升级一次:

curl -fsSL https://github.com/Reallysec/RST-AI-Copilot-for-QRadar/releases/latest/download/install.sh | sudo bash

离线主机把新交付包解压到原安装目录,在该目录执行 ./deploy.sh。

脚本在原目录 /opt/rst-qradar-ai-copilot 原地升级,数据、许可和主机指纹保留。不要移动或重命名老目录:compose 项目名和数据卷跟随目录名,state/ 中保存主机指纹,换目录后需要重新激活。升级到 1.1.16 后照常在线更新。之后命令中的容器名改为 rst-ai-copilot-for-qradar-*,例如 docker exec rst-ai-copilot-for-qradar-gateway。

用安装命令升级

1.0.1 起可用,适用于用 install.sh 安装的部署。新安装的目录为 /opt/rst-ai-copilot-for-qradar,1.1.15 及更早版本安装的目录 /opt/rst-qradar-ai-copilot 原地升级。

步骤

  1. 再次执行安装时的命令。安装指定版本时加 --version <x.y.z>:

    curl -fsSL https://github.com/Reallysec/RST-AI-Copilot-for-QRadar/releases/latest/download/install.sh | sudo bash
  2. deploy.sh 询问是否保留现有 .env 时,选择保留。

脚本删除目录中旧版本的镜像包,解压新交付包,加载新镜像,把 GATEWAY_IMAGE_TAG 切到新版本并重启,最后打印运行版本。

用交付包升级

步骤

  1. 把新交付包解压到原安装目录:

    tar xzf RST-AI-Copilot-for-QRadar-<新版本>.tar.gz --strip-components=1 -C <安装目录>
    cd <安装目录>
    sudo ./deploy.sh
  2. 询问是否保留现有 .env 时,选择保留。询问是否升级到新版本时,选择是。

脚本加载目录中最新版本的镜像包,以 --force-recreate 重启并等待容器 healthy,然后打印运行版本。旧版本的镜像包可以删除。

社区版升级

所有版本使用同一个交付包。管理员在产品激活中导入专业版或企业版许可即可,不需要重装,数据与主机指纹保留。

在线更新

前提条件

  • 网关主机可以访问 github.com 和 release-assets.githubusercontent.com 的 443 端口。版本清单和内容包从 GitHub Releases 读取,所有版本相同。离线激活的主机不检查更新。
  • 网关为 1.1.16 或更新版本。1.1.15 及更早版本见从 1.1.15 及更早版本升级到 1.1.16。

步骤

  1. 在系统设置的 版本与更新 中,出现新版本时选择 下载并暂存。网关校验签名后把镜像暂存到安装目录的 ./release/。

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

    ./deploy/rst-update.sh

脚本加载暂存的镜像,切换 GATEWAY_IMAGE_TAG 并重启。120 秒内健康检查连续 3 次成功视为升级成功,否则自动回滚到上一版本。执行 ./deploy/rst-update.sh --rollback 手动回到上一版本。

手动切换镜像版本

步骤

  1. 加载新镜像并修改 .env:

    docker load < RST-AI-Copilot-for-QRadar-images-<新版本>.tar
    sed -i 's/^GATEWAY_IMAGE_TAG=.*/GATEWAY_IMAGE_TAG=<新版本>/' .env
  2. 执行 docker compose -f docker-compose.prod.yml up -d。

回滚时用同样的方法把 GATEWAY_IMAGE_TAG 改回上一版本。copilot.db 的表由网关启动时按需创建,回滚到旧版本时,新版本新增的表被忽略。

备份对象

数据位置

数据位置备份方式
主机指纹 machine-id、server_guid安装目录的 ./state/复制整个目录
会话、Offense 副本、审计、通知配置与发送队列、分析记录、报告、用户偏好gateway_state 卷中的 copilot.dbscripts/backup.sh
系统设置、provider 配置、加密后的通道密钥、许可激活记录gateway_state 卷scripts/backup.sh,与上一行在同一个备份包中
账号与角色userdb_data 卷pg_dump

QRadar 中的事件、Offense 和规则不由网关备份。网关中的 Offense 是副本,丢失后下一次同步按 RST_OFFENSE_INGEST_LOOKBACK 重新拉取,只丢失 AI 摘要和处置标记。

备份网关状态

步骤

  1. 在安装目录执行:

    bash scripts/backup.sh /backup/rst-copilot
  2. 把备份目录权限设为 700:chmod 700 /backup/rst-copilot。

脚本打包整个 gateway_state 卷,生成 gateway-state-<时间戳>.tar.gz,并删除该目录中超过 30 天的备份包。不指定目录时写入 ./backups。每日执行可以加入 cron:

0 2 * * * cd <安装目录> && bash scripts/backup.sh /backup/rst-copilot >> /var/log/rst-backup.log 2>&1

备份包同时包含加密后的 SEC Token、模型 API key、SMTP 口令、webhook 密钥,以及解密它们的密钥,按明文对待。离机保存前再加一层加密。恢复时使用同一个备份包的全部内容,否则界面中的这些密钥显示为未设置。

恢复网关状态

步骤

  1. 执行恢复脚本并重启网关:

    bash scripts/restore.sh /backup/rst-copilot/gateway-state-<时间戳>.tar.gz
    docker compose -f docker-compose.prod.yml restart gateway
  2. 打开产品激活,确认许可状态正常,再打开 Offenses 告警,确认处置标记已恢复。

恢复到另一台主机时,主机指纹变化,许可需要重新激活。在线激活的许可先在旧主机的 撤销激活 中选择 撤销当前 license。

备份与恢复账号表

docker exec rst-ai-copilot-for-qradar-userdb pg_dump -U rst rst_users > /backup/rst-copilot/users-$(date +%F).sql
docker exec -i rst-ai-copilot-for-qradar-userdb psql -U rst rst_users < users-<日期>.sql

userdb_data 卷丢失后网关仍能启动,重建账号表并按 .env 恢复首个管理员,其他账号丢失。

保留期

数据配置项默认
审计RST_AUDIT_RETENTION_DAYS180 天
分析记录RST_ANALYSIS_TTL_DAYS30 天
会话RST_CONVERSATION_TTL_DAYS7 天

copilot.db 中的数据按上表自动清理。审计需要保留更久时调大 RST_AUDIT_RETENTION_DAYS,并保留相应时长的备份包。

本页内容