Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

5.9 KiB
Raw Permalink Blame History

🔧 铸渊指令PM2 服务排查 + 全系统健康诊断2026-03-13·霜砚签发

签发霜砚Notion执行体

接收铸渊GitHub执行体

时间2026-03-13 12:00 CST

优先级P1·正常

前置要求⚠️ 必须先完成「阶段零·核心大脑认知恢复」再执行后续排查


阶段零 · 核心大脑认知恢复(必须最先执行)

步骤

  1. 读取曜冥核心大脑 v4.0
    • Page ID: 30bfb92f383181b58713da7ecc34a37c
    • 通过 Notion API 读取全文:GET https://api.notion.com/v1/blocks/30bfb92f383181b58713da7ecc34a37c/children?page_size=200
    • 重点理解:
      • 一、数字地球 = 唯一降落锚点
      • 二、角色分工(曜冥/知秋/霜砚/铸渊)
      • 五·二、全自动闭环架构(三层:入口层/调度层/处理层)
      • 六、永久规则broadcast_code_injection = always
      • 技术定义Persona-Driven DevOps — 人格体驱动的开发运维系统
  2. 读取数字地球主控台
    • Database ID: c6f7722729264a91a3769224d5f631a3
    • 了解当前系统全貌:存在注册表里有所有页面/数据库的路径
  3. 确认认知恢复完毕
    • 在 Issue 或 PR 里写一行:✅ 核心大脑 v4.0 认知恢复完毕 · [时间]
    • 然后再进入阶段一

阶段一 · PM2 报错服务诊断

1.1 问题描述

服务器 8.155.62.235(阿里云 ECS上 PM2 管理的 6 个服务中,有 3 个持续 errored

PM2 ID 进程名 状态 重启次数 内存
3 guanghulab errored 420 0b
2 guanghulab-backend errored 420 0b
4 guanghulab-ws errored 390 0b
27 guanghulab-proxy online 0 52.4mb
0 hololake online 3 65.3mb
1 hololake-api online 1 54.5mb
28 persona-studio online 0 59.7mb

1.2 排查步骤

铸渊通过 SSHDEPLOY_KEY 已在 GitHub Secrets执行以下命令并记录输出

# ━━━ 第1步查看报错日志 ━━━
pm2 logs guanghulab --lines 50 --nostream
pm2 logs guanghulab-backend --lines 50 --nostream
pm2 logs guanghulab-ws --lines 50 --nostream

# ━━━ 第2步查看进程详情 ━━━
pm2 show guanghulab
pm2 show guanghulab-backend
pm2 show guanghulab-ws

# ━━━ 第3步查看启动脚本路径 ━━━
pm2 prettylist | grep -A5 'guanghulab\|guanghulab-backend\|guanghulab-ws'

# ━━━ 第4步检查文件是否存在 ━━━
ls -la /var/www/guanghulab/
ls -la /var/www/guanghulab/backend/ 2>/dev/null || echo "backend目录不存在"
ls -la /var/www/guanghulab/persona-studio/backend/ 2>/dev/null || echo "persona-studio backend目录不存在"

# ━━━ 第5步检查端口占用 ━━━
netstat -tlnp | grep -E '3000|3001|3002'

# ━━━ 第6步检查Node版本和依赖 ━━━
node -v
npm -v

1.3 诊断后决策

根据排查结果,铸渊自行判断:

情况 处理方式
启动脚本路径不存在 删除该 PM2 进程(pm2 delete 进程名
依赖缺失node_modules cd 目录 && npm install && pm2 restart 进程名
端口冲突 修改端口或合并服务
旧服务已被新服务替代 删除旧进程,保留新的(如 hololake 替代了 guanghulab
代码报错 修复代码,提 PR

阶段二 · 全系统健康检查

排查完 PM2 后,铸渊对整个服务器做一次全面健康检查:

# ━━━ Nginx 状态 ━━━
nginx -t
systemctl status nginx

# ━━━ SSL 证书有效期 ━━━
openssl x509 -in /etc/letsencrypt/live/guanghulab.com/fullchain.pem -noout -dates

# ━━━ 磁盘空间 ━━━
df -h

# ━━━ 内存使用 ━━━
free -h

# ━━━ PM2 全局状态 ━━━
pm2 status

# ━━━ 网站可访问性 ━━━
curl -sI https://guanghulab.com | head -5
curl -s http://127.0.0.1:3001/api/v1/ | head -c 200 || echo "3001端口无响应"
curl -s http://127.0.0.1:3002/api/ps/ | head -c 200 || echo "3002端口无响应"

阶段三 · 生成诊断报告

铸渊完成排查后,在 Notion 工单队列写一条工单

  • 工单名PM2服务排查报告 · 2026-03-13
  • 操作类型:其他
  • 提交者:铸渊(需要在工单提交者选项里确认,如没有可写在具体内容里)
  • 具体内容:包含以下信息
    • 3 个 errored 服务的报错原因
    • 处理结果(删除/修复/保留)
    • 全系统健康检查结果
    • SSL 证书到期时间
    • 磁盘/内存使用情况
    • 建议的后续优化

工单队列 Database ID84edd0640bf146a9a5a7840107013e8c


当前 Nginx 配置参考(已由冰朔于 2026-03-13 12:00 更新)

配置文件路径:/etc/nginx/nginx.conf(注意:不是 snippets 目录)

当前路由:

路由 指向 用途
/ 静态文件 /var/www/guanghulab/status-board 光湖主站首页
/webhook/feishu 127.0.0.1:3000 飞书 Webhook
/api/v1/ 127.0.0.1:3001 光湖后端 API
/api/ps/ 127.0.0.1:3002 Persona Studio API新增·含CORS
/ws/preview 127.0.0.1:3002 Persona Studio WebSocket新增

关联文档

  • 曜冥核心大脑 v4.0Page ID 30bfb92f383181b58713da7ecc34a37c
  • 数字地球主控台Database ID c6f7722729264a91a3769224d5f631a3
  • 工单队列Database ID 84edd0640bf146a9a5a7840107013e8c
  • 铸渊配置清单:见同级页面「📋 铸渊配置清单」
  • 全自动闭环对接规范:见同级页面「🔄 铸渊指令|全自动闭环对接规范」

铸渊完成后,在本页下方追加一行:

✅ PM2诊断完毕 · [日期时间] · 处理结果摘要