Files
go-sip/docs/evidence/diagnostics-tools-install-20261008.md
T

46 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 生产与测试统一诊断工具安装(2026-10-08)
## 授权与规则
使用者明确批准:在既有测试机安装 tshark 并确保 tcpdump 具备;修改环境安装脚本,生产和测试均预装,不按环境跳过。安装不代表启用抓包,仍需显式 `--debug/-D` 和既有操作者权限;没有更改一般用户抓包权限、用户组或 sudo 规则。
本次仅在登记测试机执行安装,没有操作其他生产主机;没有真实外呼、AI 调用或现场抓包,没有更新业务制品或重启服务。
## 安装脚本
新增 `deploys/cell/install-diagnostics.sh`:root-only、无生产/测试切换或跳过参数,非交互使用系统 apt 安装 tcpdump/tshark。包索引、安装、版本检查和 SIP/RTP dissector 校验任何一步失败都明确退出,不降级。
- Go 部署包包含此 helper,由 `deploys/install.sh` 完成既有包/平台/发布授权校验后无条件调用。
- 原生 Asterisk 包包含 helper 和独立 SHA-256;用户安装器完成原有平台/制品/不覆盖检查后,通过现有 `sudo -n` 执行 helper,再改变用户安装目录。
- 没有放松 Debian/架构限制或生产发布门禁,`--nonprod` 仍只属于原生平台核验,不影响工具预装。
- helper SHA-256:`59325fb184e4b117a50c29614cf680c8808e63c0589026bd1b9fd767864dd41f`。
## 测试机事实
SSH 指纹按登记值严格核对后,将相同 helper 私密暂存、核对 hash,再执行安装。
- Debian 13;tcpdump **4.99.5**、TShark **4.4.19**。
- apt 操作:0 个已有软件包升级,19 个新包安装;没有执行系统升级或业务服务操作。
- 真实 tshark 协议能力检查通过;sip-call 所需 **17 个** SIP/SDP/RTP/网络字段全部存在。
- Asterisk 保持 active,MainPID **777461** 未改变;活动通道 **0**。
- `pjsip.conf` 仍为 `c319476e7e4962008899a11ae0461db282eed3d63871b2d8adcd143812408cf8`,没有修改线路。
- 抓包权限未改动,未开启实际抓包。主机缺少 getcap,因此没有据工具存在推断 tcpdump 的一般用户抓包权限。
私密安装日志及核验在本机 `.local/diagnostics-install-20261008-VqOqz7/`;现场补充记录为 `~/sip-call/diagnostics-verification-20261008.json`(0600)。原工具 `verification.json` 保留初始部署时间点的历史事实,不覆盖;现场 README 已同步当前工具状态。
## 本地验证与边界
`scripts/check-install-diagnostics.sh` 在 network-none 的 root 容器内用隔离包命令验证:production/development/test 都调用相同安装命令;拒绝环境切换和非 root;索引/安装/工具执行/缺 RTP 协议的失败均不吞;两个安装入口及两种包均包含 helper。已加入本地验收。
验证期间主工作区被另一条合同迁移工作切换并改动,当前合同目录/测试出现不一致;本任务没有覆盖、撤销或修补这些无关变动,也不声称该并行工作区已整体通过。
本任务使用独立 worktree `31466bd` + 已提交 `0f5efc6031d230eec475b6f08caed339bd268f84` 中仅七个安装/验收脚本的变更进行稳定核验:
- Shell 语法、安装专项、格式和原有 Proto/合同校验通过。
- 全仓 `go test -race ./... -count=1 -timeout=120s`、`go vet -x ./...`、覆盖率测试通过。
- 排除生成代码的业务单元覆盖率 **70.6%**。
- 两个制品构建和本地发布门禁通过;真实隔离 RabbitMQ/HTTPS/mTLS Mock 端到端通过。
- 完整 make 汇总曾超时;初次主工作区还有一次既有 ASR fixture 的 2 秒 deadline 超时,专项连续五次复核通过,未改 AI 源码或放宽时限。上述独立步骤逐项核验,不能把超时汇总当成成功记录。
这只证明安装逻辑、工具能力和隔离验证;不证明真实线路、现场逐通抓证或生产发布签收。实际 `-D` 仍须在每次执行时通过工具与抓包权限/就绪检查。