交付包安装
用一条命令或手动下载交付包安装网关,离线主机安装,deploy.sh 的提问,安装后的验证,以及不使用 deploy.sh 的安装方法。
网关以交付包 RST-AI-Copilot-for-QRadar-<版本>.tar.gz 发布在 GitHub Releases,同名 .sha256 文件用于校验。交付包内含全部镜像和部署文件,由其中的 deploy.sh 完成安装:加载镜像,收集配置,写入 .env,启动容器。1.0.1 起,install.sh 把下载、校验、解压和执行 deploy.sh 合为一条命令。
交付包内容
RST-AI-Copilot-for-QRadar-<版本>/
├── RST-AI-Copilot-for-QRadar-images-<版本>.tar # 网关、Caddy、PostgreSQL 镜像
├── deploy.sh # 交互式安装脚本
├── docker-compose.prod.yml # 网关自带登录
├── docker-compose.sso.yml # SSO
├── Caddyfile、Caddyfile.sso
├── .env.example # 全部配置项及说明
├── deploy/rst-update.sh # 在线更新安装器
├── scripts/backup.sh、scripts/restore.sh
└── docs/ # DEPLOYMENT.md、BACKUP.md、RELEASE-NOTES.mddeploy.sh 启动容器前检查 compose 文件用到的镜像是否都已在本机。缺少镜像时列出镜像名并询问是否在线拉取,离线主机选择否时安装中止。
用一条命令安装
1.0.1 起可用。
前提条件
- 主机已安装 Docker Engine 24 及以上和 Docker Compose v2。
- 主机可以访问
github.com。 - 在交互式终端中执行,
deploy.sh需要读取输入。
步骤
-
执行安装命令:
curl -fsSL https://github.com/Reallysec/RST-AI-Copilot-for-QRadar/releases/latest/download/install.sh | sudo bash所有版本使用同一个交付包:未激活许可时以社区版运行,在 系统设置 的 产品激活 中激活许可后,原地解锁对应版本的功能,不需要重装。
-
按
deploy.sh的提示填写配置,见下文 deploy.sh 的提问。
脚本把交付包解压到 /opt/rst-ai-copilot-for-qradar 后执行 deploy.sh。1.1.15 及更早版本安装在 /opt/rst-qradar-ai-copilot 的主机在原目录升级。在同一台主机再次执行时,该目录中的 .env 和 state/ 保留,许可的主机指纹不变。因此同一条命令也用于升级。
| 选项 | 说明 |
|---|---|
--version <x.y.z> | 安装指定版本,默认最新版本 |
--dir <路径> | 安装目录,默认 /opt/rst-ai-copilot-for-qradar。已有 /opt/rst-qradar-ai-copilot(1.1.15 及更早版本的安装)时沿用 |
--download-only | 只下载并校验交付包,保存到当前目录,不安装 |
在离线主机上安装
步骤
-
在可以访问 GitHub 的机器上下载并校验交付包:
curl -fsSL https://github.com/Reallysec/RST-AI-Copilot-for-QRadar/releases/latest/download/install.sh | bash -s -- --download-only -
把当前目录中的
RST-AI-Copilot-for-QRadar-<版本>.tar.gz和.sha256文件拷到离线主机。 -
在离线主机上按下文 手动安装交付包 执行。
手动安装交付包
步骤
-
从 GitHub Releases 下载
RST-AI-Copilot-for-QRadar-<版本>.tar.gz与同名.sha256文件。所有版本使用同一个交付包,功能范围由激活的许可决定。 -
校验并解压:
sha256sum -c RST-AI-Copilot-for-QRadar-<版本>.tar.gz.sha256 tar xzf RST-AI-Copilot-for-QRadar-<版本>.tar.gz cd RST-AI-Copilot-for-QRadar-<版本> -
执行
sudo ./deploy.sh,按提示填写配置。
deploy.sh 的提问
脚本分七步执行:预检、加载镜像、检查现有 .env、选择认证方式、填写配置、写入 .env、启动。预检时生成 state/machine-id 与 state/server_guid,这两个文件是许可的硬件指纹,已存在时复用。已有 .env 时,脚本询问是否保留并直接启动,升级时选择保留。
| 提问 | 取值 |
|---|---|
| 认证方式 | 1 为网关自带登录,2 为 SSO,见 SSO |
| LLM endpoint URL | 默认 https://ark.cn-beijing.volces.com/api/v3 |
| LLM API key | 输入不回显 |
| LLM model id | 火山方舟 coding 计划为 ark-code-latest,自建 endpoint 为 ep-xxx |
| 时区偏移 | 默认 +08:00,模型据此解释「今天」「昨天」,写入 RST_TIMEZONE |
| QRadar Console URL | 例如 https://qradar.corp.local,不带路径 |
| 授权服务 SEC Token | 输入不回显 |
| Console 是否使用受信 TLS 证书 | 默认否,不校验证书。选是时写入 RST_QRADAR_VERIFY_CERTS=true |
| Caddy 访问域名或 IP | 分析师访问 https://<域名>/v2/,使用域名 |
| 管理员口令 | 不少于 8 位,输入两次。选择 SSO 时改为填写 OIDC issuer、client id 和 client secret |
脚本自动生成 RST_GATEWAY_SHARED_SECRET、RST_ADMIN_TOKEN、RST_USER_DB_PASSWORD 和管理员口令哈希,写入 .env,权限 600。启动后最多等待 90 秒至全部容器 healthy,然后打印运行版本和访问地址。
验证安装
步骤
-
检查健康与就绪状态:
curl -k https://<域名>/healthz # {"status":"ok"} curl -k https://<域名>/readyz docker compose -f docker-compose.prod.yml ps -
打开
https://<域名>/v2/,以admin和安装时设置的口令登录。
readyz 正常时返回 {"status":"ready","qradar":"ok","qradar_version":"<Console 版本>","qradar_configured":true}。返回 503 时,qradar 是原因:not_configured 表示没有填写 Console,其他值是连接 Console 的错误信息。qradar_configured 为 false 时,.env 中的 QRADAR_URL 或 QRADAR_SEC_TOKEN 为空,登录后界面弹出连接设置对话框。
默认证书为自签证书。生产环境修改 Caddyfile,换成自有证书。
不使用 deploy.sh 安装
步骤
-
加载镜像并准备
.env:docker load < RST-AI-Copilot-for-QRadar-images-<版本>.tar cp .env.example .env -
在
.env中填写LLM_API_KEY、LLM_MODEL、QRADAR_URL、QRADAR_SEC_TOKEN、CADDY_SITE_ADDRESS、RST_GATEWAY_SHARED_SECRET、RST_ADMIN_TOKEN、RST_USER_DB_PASSWORD,并设置GATEWAY_IMAGE_TAG=<版本>。 -
生成管理员口令哈希,写入
.env的RST_ADMIN_PASSWORD_HASH。哈希中的$写成$$:docker run --rm rst-ai-copilot-for-qradar-gateway:<版本> python -m backend.session_auth '<口令>' -
生成主机指纹文件:
mkdir -p state openssl rand -hex 16 > state/machine-id cat /proc/sys/kernel/random/uuid > state/server_guid chmod 644 state/* -
执行
docker compose -f docker-compose.prod.yml up -d。
state/machine-id 和 state/server_guid 两个文件都必须存在,权限为 644(网关以 uid 10001 运行)。缺少任一文件时,Docker 在该位置挂载一个目录,网关启动失败或激活时报 no hardware identifier available。