部署前准备:资源与网络
本页列出私有化部署前要准备的机器、账号和网络策略。按单机部署(All-in-One)写;Kubernetes 部署的资源要求见 Kubernetes 部署(Helm),网络策略与本页相同。
涉及两类机器:
- 平台服务器:安装 SoftProbe 平台的那台虚拟机。
- 被测应用服务器:运行被测服务、要挂 Java Agent 的服务器。
清单
| # | 准备什么 | 要点 |
|---|---|---|
| 1 | 平台服务器 | 一台 Linux 虚拟机:8 核、16 GB 内存、100 GB 磁盘(最低 4 核) |
| 2 | 账号 | root 或免密 sudo;只有普通账号也可以,用免 root 部署 |
| 3 | 网络策略 | 开通下面三条 |
| 4 | 被测服务的重启窗口 | 接入 Agent 要改启动参数、重启一次;以后移除 Agent 时再重启一次 |
| 5 | 被测服务的内存余量 | 为 Agent 预留约 512 MB |
平台服务器
| 项目 | 要求 | 说明 |
|---|---|---|
| CPU | 建议 8 核,最低 4 核 | 回放和对比的并发随核数增加;后端、数据库、AI 诊断都在这台机器上运行 |
| 内存 | 16 GB | 后端堆内存上限 3 GB,数据库缓存和缓存服务的上限各 2 GB,各进程实际占用略高于这些值,另加 AI 诊断。不用 AI 诊断时 8 GB 即可 |
| 磁盘 | 100 GB | 安装包约 1.1 GB,解压后约 4 GB,其余留给录制数据和日志。录制数据按保留期自动清理;报文很大、接口很多或调高了采样率时,按实际流量多留 |
| 操作系统 | Linux,x86_64 或 arm64 | 安装包按 CPU 架构分别提供,用 uname -m 查架构,架构不符无法安装。银河麒麟 V10 已实测 |
| 账号 | root 或免密 sudo | 安装 Docker、注册系统服务需要 root。只有普通账号时用免 root 部署,对系统有几项要求,安装前可以先自检,见 免 root 部署 |
不需要准备:
- Docker:安装包自带离线版 Docker 和 Docker Compose。机器上已经装了 Docker 的,直接使用。
- 数据库、缓存:平台自带。
- 互联网访问:安装和运行都不需要联网。只有回放结果通知发到钉钉、飞书时需要,见按需开通。
网络策略
三条都是单向发起的访问:按发起方向开通即可,已建立连接的返回流量正常放行(有状态防火墙默认如此)。
| # | 源 | 目标 | 端口 | 用途 | 不开通的影响 |
|---|---|---|---|---|---|
| 1 | 被测应用服务器 | 平台服务器 | TCP 8090 | Agent 上报录制数据、拉取配置、上报状态;回放时取录制结果 | 录不到数据,也无法回放 |
| 2 | 平台服务器 | 被测应用服务器 | 被测服务的业务端口,如 8080 | 回放:把录下的请求发给被测服务 | 回放请求全部失败 |
| 3 | 使用人员的办公电脑或网段 | 平台服务器 | TCP 8090 | 用浏览器打开控制台 | 控制台打不开 |
- 第 2 条的端口就是被测服务本来对外服务的端口。经负载均衡或网关访问的,填平台实际能访问到的地址和端口。回放没有额外的专用端口。
- 第 3 条:控制台里能看到录制的业务报文,建议只开给需要使用的人员,不要开给整个办公网。
不需要开通的:
- 被测应用服务器不用新开端口。 Agent 不监听端口,只主动连接平台服务器的 8090。
- 平台服务器的其他端口不要对外开放。 自带的数据库、缓存只在平台内部互通,对外只用 8090,以及按需开通的 8443。
- 回放不用新开被测服务到数据库、第三方系统的访问。 回放请求处理过程中的依赖调用,默认由 Agent 用录制结果应答。被测服务自身启动、后台定时任务仍按原样访问依赖,原有的网络策略保持不变。
按需开通
以下几条只在用到对应功能时开通:
| 源 | 目标 | 端口 | 什么时候需要 |
|---|---|---|---|
| 办公电脑 | 平台服务器 | TCP 8443(HTTPS) | 使用桌面客户端时。浏览器只允许 HTTPS 页面与本机程序通信 |
| 平台服务器 | 你们的大模型服务 | 大模型服务的端口 | 使用 AI 诊断时 |
| 平台服务器 | 你们的代码仓库 | SSH 22 或 HTTPS 443 | AI 诊断时读取代码 |
| 平台服务器 | 钉钉或飞书 | HTTPS 443(需要访问互联网) | 回放结束后发送通知时 |
| CI 服务器 | 平台服务器 | TCP 8090 | 从流水线触发回放时。这组接口默认关闭,本身不做身份校验,又和控制台共用 8090 端口:防火墙按端口放行时会连控制台一起放开,没法只放给 CI 服务器。开启前先确定访问控制方案 |
对防火墙和网络设备的要求
- Agent 与平台之间走 8090,不要只开 8443。 8090 是 HTTP,不加密,数据只在内网传输。8443 使用平台自签名的证书,Agent 默认不信任。要求 Agent 与平台之间加密传输时,需要为平台配置受信证书,并导入被测服务的 Java 信任库。
- 会话数要留足。 每个被测服务进程上报录制数据最多同时建立 200 条连接,另有少量日志、指标上报连接。中间的防火墙或 NAT 设备限制会话数时,按进程数留足余量,否则会零星丢失录制数据,而且不容易发现。
- 空闲超时建议不低于 60 秒。 Agent 会自己回收空闲连接;中间设备更早断开空闲连接时,上报可能偶发失败。
被测服务
| 项目 | 说明 |
|---|---|
| JDK 版本 | 8、11、17、21。JDK 17、21 还要加一组 --add-opens 参数,见 接入 Java Agent |
| 框架和中间件 | 见 支持的 Java 版本与框架 |
| 重启窗口 | 接入 Agent 要在启动参数里加几项、重启一次;移除时去掉这些参数、再重启一次。请按你们的变更流程提前申请 |
| 服务器操作 | 在被测应用服务器上放 sp-agent.jar、修改启动参数 |
| 内存 | Agent 与服务共用 JVM 内存,预留约 512 MB;报文很大(MB 级)或调高了采样率时多留一些 |