版本 v1.1.1 | 适用发行包
rms-distribution-1.1.1.zipThink RMS 基于开源夜莺监控(Nightingale / n9e)v9 构建,产品化封装了多源统一 监控、告警、GoView 可视化大屏、证书自监控与授权管理。安装编排借鉴夜莺官方 Docker Compose 部署方案(Apache-2.0),并做离线自足与授权内置改造。
Think RMS 是面向企业的一体化计算资源监控与告警平台,单机即可跑通全栈:
| 组件 | 容器/服务 | 宿主端口 | 说明 |
|---|---|---|---|
| Nightingale (n9e) | rms-n9e | 127.0.0.1:17000、20090 | 主服务与 RPC(仅本机监听,经 nginx 对外) |
| VictoriaMetrics | rms-victoriametrics | 容器内网 8428 | 时序库(不对宿主暴露) |
| MySQL | rms-mysql | 容器内网 3306 | 元数据库(不对宿主暴露) |
| Redis | rms-redis | 容器内网 6379 | 缓存/锁(不对宿主暴露) |
| Categraf | rms-categraf | host 网络 | 本机指标采集与写出 |
| rms-license | systemd 服务 | 127.0.0.1:17100 | 授权校验 sidecar |
| rmsgoview | systemd 服务 | 127.0.0.1:17101 | GoView 大屏后端 |
| Nginx | 系统服务 | 80 / 443 | 唯一对外入口(前端静态 + API 反代 + 授权闸门) |
对外只需放行 80/443。17000/17100/17101 等均绑定 127.0.0.1,公网不可直达。
/rms-license sidecar 校验,未激活可配置为只读降级(默认 fail-open,绝不锁站)。RMS 支持单机全栈混部(install.sh 默认形态,开箱即用)与分离式部署(生产增强)。
下表按被纳管主机数给出建议;内置 SN 覆盖 200 台 / 20 用户,落在「标准」档。
(1)按规模的推荐配置
| 档位 | 纳管主机 | 部署形态 | CPU | 内存 | 系统盘 | 数据盘(SSD) | 入向带宽* |
|---|---|---|---|---|---|---|---|
| 入门/PoC | < 50 | 单机混部 | 4 核 | 8 GB | ≥ 60 GB | ≥ 80 GB | ≥ 10 Mbps |
| 标准(本 SN) | 100–300 | 单机混部 | 8 核 | 16 GB | ≥ 60 GB | ≥ 200 GB | ≥ 20 Mbps |
| 进阶 | 300–1000 | 应用×2 + 独立库 + 独立时序 | 8 核×2 | 16–32 GB | ≥ 60 GB | ≥ 500 GB | ≥ 50 Mbps |
| 大规模 | 1000+ | n9e-server/edge + vmcluster 分布式 | 横向扩展 | 按需 | 按需 | 按需 | 按需 |
* 入向带宽指全部被纳管主机 Categraf 持续 remote write 汇入服务端的总量(200 台 @ 60s 采集间隔稳态约 5–15 Mbps,峰值 2–3 倍)。数据盘须 SSD(VictoriaMetrics / MySQL 随机写敏感);容量随采集间隔与保留期线性增长,默认保留 12 个月。
(2)组件级占用(单机全栈、200 台纳管的量级估算)
| 组件 | CPU | 内存 | 磁盘 | 说明 |
|---|---|---|---|---|
| VictoriaMetrics | 2–4 核 | 6–8 GB | 60–150 GB/年 | 时序主力(约 10–20 万活跃序列),最吃 IO |
| MySQL 8.0 | 1–2 核 | 3–4 GB | 10–30 GB | n9e_v6 元数据 + 告警事件 |
| Nightingale (n9e) | 2 核 | 3–4 GB | < 5 GB | 主服务 + 告警求值 |
| Redis 6.2 | 0.5 核 | 0.5–1 GB | 很小 | 缓存 / 分布式锁 |
| Categraf | 0.5 核 | 256 MB | 很小 | 仅采集 RMS 服务器本机 |
| rms-license / rmsgoview | 各 < 0.25 核 | 各 64–128 MB | 很小 | Go 静态二进制 sidecar |
| Nginx | 0.25 核 | 128 MB | 很小 | 对外入口 |
| Docker 引擎 + OS 预留 | 1–2 核 | 1–2 GB | 10–15 GB | 含镜像解包 |
以上为按默认采集间隔(60s)与 12 个月保留的工程估算,作为容量规划起点;实际以压测为准。
(3)磁盘构成(安装 + 运行)
| 用途 | 空间 | 说明 |
|---|---|---|
| 发行包解压 | ~1 GB | zip 884 MB + 解压树 |
镜像 docker load |
~2.5–3.5 GB | 5 镜像解包(MySQL / VictoriaMetrics 较大) |
| OS + Docker 引擎 + 日志 | ~10–15 GB | 系统盘 |
| VictoriaMetrics 数据 | 60–150 GB/年 | 数据盘,随保留期增长 |
| MySQL 数据 | 10–30 GB | 元数据 / 告警事件 |
(4)安装脚本的资源硬检测(install.sh 阶段 [1/10])
| 检测项 | 行为 |
|---|---|
| root 权限 | 非 root 直接中止 |
| CPU 架构 = x86_64 | 非 x86_64 告警(内置镜像为 amd64) |
| 端口 80/443/17000/17100/17101/20090 | 被占用则告警(不阻断,可换端口) |
| 根分区可用 < 8 GB | 告警「VictoriaMetrics 长期运行可能吃紧」(不阻断) |
8 GB 仅为「镜像解包 + 首次起栈」的地板值;生产请按上文预留独立数据盘。CPU/内存脚本不强制检测,按上文档位准备即可。
images/。systemd、nginx(发行版本身自带或先装:yum install -y nginx / apt-get install -y nginx)。https://sn.thinkalike.com.cn(默认端口 443 出方向)。完全离线环境可跳过在线激活,改为在「授权管理」页上传/粘贴 .lic(见 §5.3)。发行包解压后(示例 rms-distribution-1.1.1/):
rms-distribution-1.1.1/
├── install.sh # 一键安装入口
├── uninstall.sh # 卸载
├── README.txt # 快速开始
├── LICENSE_SN.txt # 内置正式版序列号
├── VERSION # 版本号(不再附 CHECKSUMS 校验码)
├── docs/安装部署说明书.md # 本文档
├── config/
│ ├── defaults.conf # 可固化默认参数(域名/TLS/端口…)
│ └── license-shared.env # SN 集成共享密钥(授权激活用)
├── app/ # 落地到 /opt/rms(配置、脚本、vSphere 集成物料、sidecar 二进制、大屏产物)
├── pub/ # 落地到 /opt/rms-fe/pub(品牌化前端静态产物)
├── images/ # 离线 Docker 镜像(*.tar.gz,docker load)
└── deps/ # 离线 Docker 引擎静态包 + compose 插件 + 免安装 Python3 运行时
zip 已加密,用交付提供的口令解压(任选其一):
# Linux(支持加密 zip 的 unzip 或 7z)
7z x -p'<口令>' rms-distribution-1.1.1.zip
# 或
unzip rms-distribution-1.1.1.zip # 交互式输入口令
cd rms-distribution-1.1.1
sudo bash install.sh
脚本按 10 个阶段自动执行:环境检测 → 确保 Docker/Compose → 离线加载镜像 → 落地应用与前端 → 生成随机密钥 → 启动核心栈 → 部署授权/大屏 sidecar → 配置 Nginx → 初始化平台数据(含 vSphere 虚拟化集成)→ 内置 SN 在线激活,全程幂等(重复执行只修复差异,不重复破坏)。目标机无需联网、无需预装 python3:播种步骤优先复用系统 python3>=3.6,缺失时自动解包内置的 deps/python3-runtime-x86_64.tar.gz 到 /opt/rms/py3 使用。
安装结束会打印访问地址、后台账号、随机口令、授权状态,请妥善保存。
# 指定域名并启用自签 HTTPS(内网/IP 访问)
sudo bash install.sh --domain rms.corp.local --tls self-signed
# 纯 HTTP(最快,内网可信环境)
sudo bash install.sh --tls http
# 公网域名 + Let's Encrypt 自动签发(需 DNS 已解析到本机、80 端口公网可达)
sudo bash install.sh --domain rms.example.com --tls letsencrypt
# 指定管理员口令 / 覆盖内置 SN
sudo bash install.sh --admin-pass 'Str0ngPass!' --sn RMS-XXXX-XXXX-XXXX
| 参数 | 取值 | 默认 | 说明 |
|---|---|---|---|
--domain |
域名或 _ |
_ |
_ 接受任意 Host(IP 直连友好) |
--tls |
self-signed/http/letsencrypt | self-signed | TLS 模式 |
--http-port / --https-port |
端口 | 80 / 443 | 对外端口 |
--admin-user / --admin-pass |
账号/口令 | admin / 随机 | 后台管理员 |
--sn |
SN 码 | 读 LICENSE_SN.txt | 激活用序列号 |
--load-images |
auto/always/skip | auto | 镜像加载策略 |
--install-docker |
auto/always/skip | auto | 目标机无 Docker 时离线安装 |
也可把默认值写进
config/defaults.conf(取消相应注释即可),命令行参数优先级更高。
https://<IP>/ 或你的域名)。root / root.2020 登录(官方默认,遵循夜莺约定)。本发行包内置正式版授权序列号:
序列号 : RMS-5X6Z-KTUT-86YP
产品 : RMS
额度 : 200 台服务器 / 20 用户
有效期至: 2027-09-01
授权采用「SN 在线激活」,与夜莺解耦、绑定安装机硬件指纹:
安装脚本用内置 SN + 本机指纹调用 rms-license 的 /license/activate-sn,sidecar 再向 SN 服务换取签名 .lic 并本地激活。成功即打印「已激活」。
登录后台 → 左侧「授权管理」→「SN 在线激活」页签,输入 RMS-5X6Z-KTUT-86YP → 点「获取授权并激活」。页面同时提供「粘贴授权文件」与「上传 .lic 文件」两种方式。
若目标机不能访问 SN 服务:在有网机器上打开 SN 控制台,用该 SN 与目标机指纹签发 .lic(POST /api/sn/{id}/lic 或控制台下载),把 .lic 拷到目标机,在「授权管理 → 上传 .lic 文件 / 粘贴授权文件」激活即可。
curl -s http://127.0.0.1:17100/license/status
# 关注:activated(是否已激活)、sn、expires_at、bound(指纹)、sn_online(是否支持在线激活)
安装脚本结束会自动体检,也可手动核验:
# 1) 容器全部 Up
cd /opt/rms && docker compose ps
# 2) 核心端点
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:17000/api/n9e/version # 200
curl -s http://127.0.0.1:17100/license/status # JSON
curl -s http://127.0.0.1:17101/healthz # 大屏后端
# 3) 对外入口(HTTPS)
curl -sk -o /dev/null -w '%{http_code}\n' https://<你的地址>/ # 200
# 4) 指标是否入库并可查(登录后台后)
# 「指标浏览器 / 内置看板」应能看到本机 CPU/内存/磁盘等曲线。
判定标准:核心容器 Up、/api/n9e/version 返回 200、看板有真实曲线、授权状态 activated:true。
cd /opt/rms && docker compose logs -f nightingale # 主服务
journalctl -u rms-license -f # 授权 sidecar
journalctl -u rmsgoview -f # 大屏后端
tail -f /var/log/nginx/error.log # 入口
cd /opt/rms && docker compose restart # 重启核心栈
systemctl restart rms-license rmsgoview # 重启 sidecar
systemctl reload nginx # 重载入口配置
/opt/rms/.env、/etc/rms/license.env、MySQL 与 VictoriaMetrics 数据卷;cd /opt/rms && docker compose down(勿加 -v,保留数据卷);bash install.sh(脚本对已有数据幂等:.env、已激活许可、已建数据源均复用);# 元数据(MySQL,容器内)
docker exec rms-mysql sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" n9e_v6' > n9e_v6.$(date +%F).sql
# 授权许可文件
cp -a /var/lib/rms/license.lic /backup/rms-license.$(date +%F).lic 2>/dev/null || true
# 时序数据卷(可选,按需打包 vmdata)
bash uninstall.sh # 停服务与容器,保留数据
bash uninstall.sh --purge # 彻底清除程序、前端、sidecar、数据与 nginx 站点
Q1:安装脚本报「目标机未安装 nginx」?
A:nginx 属系统级依赖(不随应用镜像分发)。请先 yum install -y nginx 或 apt-get install -y nginx 再重跑 install.sh(幂等)。
Q2:看板没有数据 / 查不到指标?(借鉴夜莺官方排查)
A:① Categraf 是否正常写出:docker compose logs categraf 无持续报错;② n9e 的时序数据源(VictoriaMetrics)是否已登记(安装脚本 seed-rms.py 会自动 ensure,可重跑);③ 若自行改用 Prometheus 作为时序库,须开启 remote write receiver(新版 --web.enable-remote-write-receiver,旧版 --enable-feature=remote-write-receiver),否则 n9e 写不进去、日志会出现请求 /api/v1/write 返回 404 的 WARNING。
Q3:必须的外部依赖有哪些? A:本包已内置全栈(MySQL 8.0、Redis 6.2、VictoriaMetrics、Nightingale 9.1.1、Categraf)。夜莺通用依赖为:MySQL 5.7+/PostgreSQL 14+、Redis 5+、任一 TSDB——本包均以容器形式一体化交付。生产不建议用 SQLite(多进程/告警并发写入不稳)。
Q4:在线激活失败(SN 无效 / 无法访问 SN / 已绑定其他服务器)?
A:① 确认目标机可访问 https://sn.thinkalike.com.cn;② 确认 SN 状态有效、未过期、未被别的机器绑定;③ 换机请先在 SN 控制台解绑;④ 实在无外网走离线 .lic(§5.3)。
Q5:能否不启用授权锁定?
A:默认 RMS_LIC_ENFORCED=false,未激活时闸门 fail-open(只读可用、绝不锁站)。私有化交付如需强制写权限门控,可在 /etc/rms/license.env 设 RMS_LIC_ENFORCED=true 后 systemctl restart rms-license。
Q6:80/443 被占用?
A:用 --http-port/--https-port 换端口;或先停占用进程。安装脚本会在环境检测阶段提示端口冲突。
Q7:证书告警/大屏设计器打不开?
A:rmsgoview(:17101)与 nginx /api/goview/ 反代相关,检查 systemctl status rmsgoview;大屏叠加层在 /opt/rms/bigscreen,设计器需以管理员登录。
/opt/rms/.env(0600),不写入发行包。config/license-shared.env,随加密 zip 分发,用于验签/解密 SN 下发的 .lic);RMS 侧从不持有签发私钥。| 项 | 值 |
|---|---|
| 产品 | RMS |
| 序列号 | RMS-5X6Z-KTUT-86YP |
| 服务器额度 | 200 |
| 用户额度 | 20 |
| 有效期至 | 2027-09-01 |
| 类型 | 正式版(非试用) |
| 激活方式 | SN 在线激活 / 离线 .lic |
| SN 服务 | https://sn.thinkalike.com.cn |
续期或扩容:在 SN 控制台对序列号续期(
/api/sn/{id}/renew)或申请新 SN,无需重装。
本文档结构参考夜莺官方安装文档(flashcat.cloud/docs · Nightingale v9 安装前置说明 / Docker Compose 部署),并结合 Think RMS 产品化发行包离线自足、内置授权的实现整理。