跳到主要内容

交付包安装

一条命令安装、手动下载交付包、离线主机安装,以及 deploy.sh 的每一步。

所有版本使用同一个交付包 RST-AI-Copilot-for-Prometheus-<版本>.tar.gz,内含网关、Caddy、pgvector/pgvector:pg16 三个镜像和全部部署文件(compose、Caddyfile、.env.example、deploy.sh、更新脚本、备份脚本和文档)。未激活许可时以社区版运行。

一条命令安装

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

脚本做这几件事:

  1. 取最新的签名版本,下载发布清单 release-manifest.token,用内嵌的 Reallysec 发布公钥验签。
  2. 下载交付包,核对 SHA-256 与签名清单一致。任一校验不通过,删除下载的文件,什么都不装。
  3. 解压到 /opt/rst-ai-copilot-for-prometheus,执行其中的 deploy.sh。
选项说明
--version <x.y.z>安装指定版本,默认最新的签名版本
--dir <路径>安装目录,默认 /opt/rst-ai-copilot-for-prometheus
--mirror github|cn下载源。默认先 GitHub,失败再试国内镜像;cn 先试国内镜像
--download-only只下载并校验,保存到当前目录,不部署

腾讯云 COS 国内镜像目前尚未开通。--mirror cn 或默认顺序里的国内镜像都会跳过,回落到 GitHub Releases。

再次执行同一命令即升级到新版本,安装目录中的 .env 和 state/ 保留。

离线主机

在能上网的机器上下载并校验,再把交付包拷到目标主机:

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

也可以从 GitHub Releases 下载 RST-AI-Copilot-for-Prometheus-<版本>.tar.gz 与同名 .sha256 文件,手动校验:

sha256sum -c RST-AI-Copilot-for-Prometheus-<版本>.tar.gz.sha256

在目标主机上解压到固定目录并执行 deploy.sh:

sudo mkdir -p /opt/rst-ai-copilot-for-prometheus
sudo tar xzf RST-AI-Copilot-for-Prometheus-<版本>.tar.gz -C /opt/rst-ai-copilot-for-prometheus --strip-components=1
cd /opt/rst-ai-copilot-for-prometheus && sudo ./deploy.sh

交付包内含全部镜像,部署时不访问镜像仓库。离线主机按发行版用离线安装包装 Docker Engine 24 和 Compose 插件。

deploy.sh 的步骤

deploy.sh 交互引导,提示为中英双语:

  1. 预检 Docker 24 和 Compose v2,生成 state/machine-id 与 state/server_guid(许可硬件指纹的两半,生成后不可重建)。
  2. 加载包内镜像。
  3. 选择认证方式:1 为网关自带登录;2 为 SSO(OIDC,需要企业版许可),见单点登录。
  4. 填写大模型地址、key、模型名和时区。大模型可以留空,时区默认 +08:00,模型理解「今天」「昨天」依赖它。
  5. 填写数据源,每一项都可以留空,装完在 设置 > 数据源连接 中补:
    • Prometheus 地址,认证选无、Basic(用户名和口令)或 Bearer token;
    • Alertmanager 地址,认证同上;
    • Grafana 地址(浏览器能打开的地址)和 Prometheus 数据源 UID(默认 prometheus)。Grafana 没有认证项,网关只生成跳转链接。
  6. 填写访问域名或 IP。网关自带登录时设置 admin 口令,不少于 8 位;SSO 时填写 OIDC issuer、client id 和 client secret。
  7. 生成内部密钥(网关共享密钥、管理 token、PostgreSQL 口令),确认后写入 .env,权限 600。
  8. 执行 docker compose -f docker-compose.prod.yml up -d,等全部容器 healthy,打印访问地址。

重新执行 deploy.sh 时选择保留现有 .env,只加载新镜像并重建容器,不再询问配置。选择覆盖时,旧 .env 先备份为 .env.<时间>.bak,PostgreSQL 口令沿用旧值。

手动安装

不走交互时:cp .env.example .env,填写必填项(见配置项),然后:

docker load < RST-AI-Copilot-for-Prometheus-images-<版本>.tar
docker compose -f docker-compose.prod.yml up -d

使用客户自己的 PostgreSQL

需要 PostgreSQL 16 并装好 pgvector 扩展。把 .env 中的 RST_DB_URL 指向它,只启动网关和 Caddy:

docker compose -f docker-compose.prod.yml up -d --no-deps gateway caddy

网关启动时自动建表,迁移只作用于本产品自己的表。

验证

curl -k https://copilot.corp.local/healthz   # {"status":"ok"}
curl -k https://copilot.corp.local/readyz    # db / prometheus

/healthz 表示进程存活。/readyz 要求数据库可达且 Prometheus 可连,prometheus_configured: false 表示还没配置数据源。登录后在 设置 > 数据源连接 中逐个点 测试连接。

卸载

在安装目录中操作,先备份:

cd /opt/rst-ai-copilot-for-prometheus
docker compose -f docker-compose.prod.yml down      # 停止并删除容器,保留数据卷
docker compose -f docker-compose.prod.yml down -v   # 连数据卷一起删除,不可恢复

卸载不影响客户的 Prometheus 和 Alertmanager。网关写过的规则文件和静默由客户自行清理。卸载不会通知许可服务器,这台主机仍占一个节点;换机时恢复 state/ 目录即可沿用指纹,或联系 Reallysec 释放旧节点。

本页内容