Skip to content

home.cong.in 监控接入与排障记录(2026-06-06)

本次会话从「腾讯云新服务器接入 home.cong.in 监控」展开,牵出天翼云掉线、Server2 排版异常等一连串排障。 关联记忆:project_home_dashboard.md / project_tencent_server.md / project_tianyiyun.md / project_server_architecture.md


1. 监控总架构(四台服务器,glances + socat 隐藏公网 IP)

home.cong.in(gethomepage,Server1 Docker,/var/www/homepage/config/widgets.yaml)顶部四个服务器框,全部 glances API v4。 为隐藏公网 IP,远程机的 glances 经 Server1 上的 socat 转发成私有地址 172.17.0.1,widget 全用私有地址。

widget url来源glances 运行方式
Server1172.17.0.1:61208本机Docker nicolargo/glances:latest-full
Server2172.17.0.1:62208socat→Server2:61208Docker 容器(本次从 apt/venv 改过来)
腾讯云172.17.0.1:62210glances-fwd-tx.service→〈腾讯云-IP〉:61208Docker 容器
天翼云172.17.0.1:62209glances-fwd-ty.service→Server2:61209(frp隧道)Windows,py -m glances

面板顺序:Server1 → Server2 → 腾讯云 → 天翼云。

⭐ 铁律:四台 glances 必须统一用 Docker 容器版

主机 venv/apt 版与 Docker 容器版上报内容不同(容器报 Alpine + 隔离的挂载点/传感器;主机版报真实 host OS + 全部挂载点),会导致 homepage 信息框渲染不一致(竖排)。本次 Server2 排版异常的真因就是它当时是主机版 glances。


2. 腾讯云接入监控(步骤)

  1. 腾讯云装 Docker(配腾讯云 registry 镜像 mirror.ccs.tencentyun.com)→ 跑 glances 容器(API v4)。
  2. Lighthouse 防火墙放行 61208 仅来源 Server1:腾讯云是轻量应用服务器,防火墙用 Lighthouse API(CreateFirewallRules),不是安全组。实例 lhins-8popsydk(ap-shanghai)。
  3. Server1 建 glances-fwd-tx.service(socat 172.17.0.1:62210→〈腾讯云-IP〉:61208)。
  4. widgets.yaml 加 glances 框(url 私有地址 / version 4 / label 腾讯云),重启 homepage。

3. 天翼云掉线排障(关键经验)

现象:天翼云框报 API error。根因链:天翼云整机自 6/5 07:36 离线后,frpc 没自动重连 → Server2 上 12022(SSH)/61209(glances) 隧道全断 → 取不到数据。frpc 回来后又发现 glances 本身也没起。

死锁:进天翼云唯一通道就是 frp 的 12022 隧道,frpc 不跑就进不去 → 只能用户在天翼云官方云电脑桌面手动起 frpc。

修复要点

  • frpc:天翼云桌面跑 iex (iwr https://scripts.cong.in/frpc-up.ps1).Content
  • glances:SYSTEM 计划任务没拉起;Start-Process 启动的会随 SSH 会话被杀。必须用 Invoke-CimMethod Win32_Process Create(=wmic)脱离会话启动才持久
  • 一键复活:天翼云桌面跑 iex (iwr https://scripts.cong.in/ty-up.ps1).Content(起 frpc + glances + 注册开机自启)。

踩坑:经 ssh myserver2 → sshpass ssh -p 12022 三跳隧道,cmd 输出丢包严重(schtasks/type 常无回显,whoami/wmic/Invoke-CimMethod 可靠)。验证结果从 Server1 端 curl 172.17.0.1:62209 最可靠。


4. Server2 排版竖排排障

  • 真因:Server2 的 glances 当时跑的是主机版(先 apt v3,后我换 venv v4),与其他三台的 Docker 容器版上报内容不同 → homepage 渲染竖排。
  • gethomepage 渲染逻辑(已读源码 glances/glances.jsx):info 框只渲染 CPU + MEM 两条;expanded:true 时 CPU 额外显示 15 分钟负载、MEM 显示可用/总字节。四台 widget 配置已完全一致。
  • 修复:Server2 改用 nicolargo/glances:latest-full Docker 容器(与其他同款)。venv 残留 /opt/glances-venv + glances.service(已 stop+disable,未删)。

5. 本次新增的脚本(scripts.cong.in,托管在 Server1 /var/www/scripts/

脚本用途在哪跑
frpc-up.ps1起天翼云 frpc天翼云桌面
ty-up.ps1天翼云一键复活(frpc+glances+开机自启)天翼云桌面
ty-diag.ps1 / ty-status.ps1天翼云 glances 诊断天翼云桌面

6. 各机端口分配(glances)

端口机器
61208Server1(本机) / 各远程机本地 glances
62208Server2(socat 转发)
62209天翼云(frp 隧道 + socat 转发)
62210腾讯云(socat 转发)

7. 遗留待办

  • [ ] Server2(1核1G)内存偏紧:multipathd 可关省 ~26MB(停服务前需用户确认,尚未关)。
  • [ ] 天翼云 glances 开机自启任务在三跳隧道下无法可靠验证;建议用户在桌面跑一次 ty-up.ps1 确保下次重启自动起。
  • [ ] 腾讯云 API 密钥用完未存盘,建议用户在 CAM 禁用。

个人科研与运维文档 · 内容持续修订