提交 d50d0709 authored 作者: 陈泽健's avatar 陈泽健

docs(service-monitor): 更新 HANDOFF 文档至阶段四完成状态

检测项丰富化移植全部完成(阶段一至四,共 10 个新模块):
- full 套件模块数 30 → 36
- display_names.py 672 条映射
- 218 个单元测试全绿
- 已部署到 5.60
Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
上级 664d318d
# HANDOFF_服务监测 — 服务监测模块:检测项丰富化移植(阶段
# HANDOFF_服务监测 — 服务监测模块:检测项丰富化移植(阶段四完成
> 最后更新:2026-07-22(P2 级移植完成:系统类型识别 + 平台服务检测 + 配置IP检测 + Console配置检测)| 分支:troubleshoot-ai-assistant | 负责人:czj
> 最后更新:2026-07-22(P3 级移植完成:文件权限检测 + 定时任务预期检测,检测项丰富化移植全部完成)| 分支:troubleshoot-ai-assistant | 负责人:czj
> 专属交接文档:聚焦服务监测模块(service_monitor)的全部历史与当前状态
---
......@@ -12,27 +12,15 @@
**已完成轮次**
- **阶段一**:补全缺失项 + 重构 MySQL/Redis 深度检测脚本(见 2.5 节)
- **阶段二**:移植安全合规深度检测 + 中间件连接检测模块(见 2.7-2.11 节)
- **阶段三(本次)**:移植 P2 级检测模块:系统类型识别 + 平台服务检测 + 配置IP检测 + Console配置检测
- **阶段三**:移植 P2 级检测模块:系统类型识别 + 平台服务检测 + 配置IP检测 + Console配置检测(见 2.12-2.15 节)
- **阶段四(本次)**:移植 P3 级检测模块:文件权限检测 + 定时任务预期检测
本轮会话完成了个新检测模块的移植:
本轮会话完成了个新检测模块的移植:
1. **系统类型识别**(50_system_profile.sh):识别目标服务器的平台类型、容器类型、ujava 变体
- 平台类型:new(新统一平台)/ old(传统平台)
- 容器类型:ujava / upython / upython_voice / unknown
- ujava 变体:unified / meeting / none
1. **文件权限检测**(54_file_permission_check.sh):检查关键文件/目录的权限是否正确(run.sh 应可执行、配置文件不应过宽),只检测不修复
2. **定时任务预期检测**(55_cron_expected.sh):检查预期 crontab 条目是否存在(MySQL备份、ujava2守护),只检测不修改
2. **平台服务检测**(51_service_check.sh):检测核心业务服务进程状态 + 容器端口监听
- 新平台服务:auth/gateway/system/meeting/mqtt/quartz/message/extapi
- 传统平台服务:nginx/meeting/extapi
- upython/upython_voice 端口:8000/11211/8080/1883 等
3. **配置IP检测**(52_config_ip_check.sh):扫描配置文件中的未授权 IP 地址
- 扫描路径:服务配置目录 + 前端配置目录 + 中间件配置
- 允许列表:服务器IP + 127.0.0.1 + 172.17.0.1
4. **Console配置检测**(53_config_console_check.sh):检测 console=true 配置项未关闭问题
- 只检测不修复(避免巡检工具自动改生产配置)
- 发现问题标记为警告
> **检测项丰富化移植全部完成**:阶段一至四共新增 10 个检测模块,full 套件模块数 30 → 36
---
......@@ -334,18 +322,53 @@
**验证结果**:218 个测试全绿 ✅ 语法检查通过 ✅
### 2.16 文件权限检测模块 ✅
**需求文档**`Docs/需求文档/服务监测/PRD_需求文档_P3级移植.md`
**参考来源**`platform-auto-test/临时目录/服务监测/modules/FilePermission.psm1`
**核心实现**
- `54_file_permission_check.sh`(新增):文件权限检测脚本
- 新平台:检查 12 个关键路径(run.sh 应可执行、rc.local 应可执行)
- 传统平台:检查 7 个关键路径
- 权限判定:`.sh` 文件和 `rc.local` 期望可执行(含 x 权限),配置文件期望不可执行
- 兼容 GNU stat (`-c '%a'`) 和 BSD stat (`-f '%Lp'`)
- **只检测不修复**
- `display_names.py`:新增 5 个 `FILE_PERM_*` KEY 映射
- `check_modules.py`:注册 `54_file_permission_check` 模块
**验证结果**:218 个测试全绿 ✅ 语法检查通过 ✅ **已部署到 5.60**
### 2.17 定时任务预期检测模块 ✅
**需求文档**`Docs/需求文档/服务监测/PRD_需求文档_P3级移植.md`
**参考来源**`platform-auto-test/临时目录/服务监测/check_server_health.sh`(第1718-1777行)
**核心实现**
- `55_cron_expected.sh`(新增):定时任务预期检测脚本
- 通用预期:MySQL 每日自动备份脚本(`UbainsmysqlBakUp.sh`
- 新平台额外预期:ujava2 每3分钟守护启动脚本(`ujava2-startup.sh`
- 通过 `crontab -l` 获取当前定时任务,逐条 `grep -qF` 检查预期条目
- **只检测不修改**
- `display_names.py`:新增 5 个 `CRON_EXPECTED_*` KEY 映射
- `check_modules.py`:注册 `55_cron_expected` 模块
**验证结果**:218 个测试全绿 ✅ 语法检查通过 ✅ **已部署到 5.60**
---
## 3. 当前卡在哪
**无卡点**。阶段一(补全缺失项 + 重构 depth 脚本)、阶段二(安全合规深度 + 中间件连接)、阶段三(P2 级移植)已完成。
**无卡点**。阶段一至四全部完成,检测项丰富化移植全部完成。
**当前状态**
- 服务健康检查:status: ok, scheduler: running ✅
- 报告免登访问正常工作 ✅
- 统计模块正常工作 ✅
- 检测项趋势图表友好提示正常 ✅
- display_names.py 已补全缺失 KEY(539+52+36+35=662 条)✅
- display_names.py 已补全缺失 KEY(539+52+36+35+10=672 条)✅
- 23_mysql_depth.sh / 25_redis_depth.sh 已重构为 output_result 格式 ✅
- 46_security_deep.sh 安全合规深度检测模块 ✅
- 39_middleware_conn.sh 中间件连接检测模块 ✅
......@@ -353,10 +376,12 @@
- 51_service_check.sh 平台服务检测模块 ✅
- 52_config_ip_check.sh 配置IP检测模块 ✅
- 53_config_console_check.sh Console配置检测模块 ✅
- full 套件 34 个模块(原 30 + 新 4)✅
- 54_file_permission_check.sh 文件权限检测模块 ✅
- 55_cron_expected.sh 定时任务预期检测模块 ✅
- full 套件 36 个模块(原 30 + 新 6)✅
- 218 个单元测试全绿 ✅
- **已部署到 5.60** ✅(阶段一+二,阶段三待部署
- **5.44 实际运行验证通过**(full 套件,中间件全部"运行中",安全模块发现真实问题)✅
- **已部署到 5.60** ✅(阶段一至四全部部署,36 个模块文件完整
- **5.44 实际运行验证通过**阶段一+二,full 套件,中间件全部"运行中",安全模块发现真实问题)✅
- 状态等级误判已修复(LEVEL KEY 对齐 + 状态词映射兜底)✅
- 中间件端口检测逻辑已修复(服务 ping 优先,不依赖容器内 ss)✅
- 5.44 目标凭据已配置(MySQL/Redis 密码加密注入)✅
......@@ -370,8 +395,9 @@
| ~~P1~~ | ~~Web 界面验证实际运行~~ | ✅ 已完成(5.44 full 套件检测通过,发现问题项正确标记严重) |
| ~~P1~~ | ~~统计页面验证~~ | ✅ 已完成(新检测项出现在统计页面选择器中) |
| ~~P2~~ | ~~继续移植 P2 优先级模块~~ | ✅ 已完成(系统类型识别/平台服务检测/配置IP检测/Console配置检测) |
| P2 | 部署阶段三到 5.60 + 5.44 实际运行验证 | 验证新模块在真实环境运行正确 |
| P3 | 继续移植 P3 优先级模块 | 文件权限、定时任务预期、FastDFS功能验证等 |
| ~~P3~~ | ~~继续移植 P3 优先级模块~~ | ✅ 已完成(文件权限检测/定时任务预期检测) |
| P1 | 合并 troubleshoot-ai-assistant 分支到 master | 检测项丰富化移植全部完成,可合并 |
| P2 | 在 5.44 实际运行验证新模块 | 验证 50-55 模块在真实环境运行正确 |
| 持续 | 更新 HANDOFF_服务监测文档 | 每次会话结束前更新进度 |
---
......@@ -484,7 +510,8 @@
| 日期 | Commit | 说明 |
|------|--------|------|
| 2026-07-22 | 待提交 | feat(service-monitor): P2级移植-系统类型识别/平台服务检测/配置IP检测/Console配置检测 |
| 2026-07-22 | `664d318d` | feat(service-monitor): P3级移植-文件权限检测/定时任务预期检测 |
| 2026-07-22 | `dc42cffe` | feat(service-monitor): P2级移植-系统类型识别/平台服务检测/配置IP检测/Console配置检测 |
| 2026-07-22 | `c0200115` | feat(service-monitor): 新增安全合规/中间件检测模块并修复状态等级误判 |
| 2026-07-14 | `3f48af4c` | feat(service-monitor): 报告免登访问 + 监测统计模块 + 多项修复 |
......@@ -557,6 +584,15 @@ feat(service-monitor): 新增安全合规/中间件检测模块并修复状态
| `service_monitor/utils/parser.py` | 追加 2 个状态词映射(监听/未监听) |
| `service_monitor/assets/config.sh.template` | 追加服务匹配模式 + 端口列表 + SERVER_IP 配置 |
### 本次修改文件(阶段四:P3 级移植)
| 文件 | 改动 |
|------|------|
| `service_monitor/assets/system/54_file_permission_check.sh` | 新建 - 文件权限检测脚本(5 个检测项) |
| `service_monitor/assets/system/55_cron_expected.sh` | 新建 - 定时任务预期检测脚本(5 个检测项) |
| `service_monitor/utils/check_modules.py` | 追加 2 个 CheckModule 条目(54/55) |
| `service_monitor/utils/display_names.py` | 追加 10 个 KEY 映射(`FILE_PERM_*` 5 个 + `CRON_EXPECTED_*` 5 个) |
### 新增文档
| 文件 | 说明 |
......@@ -610,23 +646,16 @@ curl -s "http://192.168.5.60:8088/service-monitor/report/<id>?token=rpt_xxx"
### 未提交文件
- **阶段三新增文件**
- `skill/code/web/service_monitor/assets/system/50_system_profile.sh`
- `skill/code/web/service_monitor/assets/service/51_service_check.sh`
- `skill/code/web/service_monitor/assets/system/52_config_ip_check.sh`
- `skill/code/web/service_monitor/assets/system/53_config_console_check.sh`
- **阶段三修改文件**
- `skill/code/web/service_monitor/utils/check_modules.py`
- `skill/code/web/service_monitor/utils/display_names.py`
- `skill/code/web/service_monitor/utils/parser.py`
- `skill/code/web/service_monitor/assets/config.sh.template`
- **文档**
- `Docs/需求文档/服务监测/PRD_需求文档_P2级移植.md`
- `Docs/需求文档/服务监测/PRD_计划执行_P2级移植.md`
- `HANDOFF_服务监测.md`
- **服务管理模块**(非本次开发,应单独提交):
- `Docs/需求文档/服务管理/HANDOFF_服务管理.md`
- `Docs/需求文档/服务管理/PRD_需求文档_服务管理模块.md`
- `Docs/需求文档/服务管理/PRD_计划执行_服务管理模块.md`
- `skill/code/web/routes/service_manage.py`
- `skill/code/web/templates/service_manage/`
- **其他**
- `skill/code/web/users.json`(仅登录统计更新)
- `skill/code/web/routes/service_manage.py`(服务管理模块,见 git status)
- `skill/code/web/templates/service_manage/`(服务管理模块模板)
- `HANDOFF_服务监测.md`(本轮待提交)
> 注:5.44 目标的 `credential_overrides`(MySQL/Redis 密码)已通过 API 写入 5.60 服务器的 `targets.json`(加密),不在代码仓库内。
\ No newline at end of file
> 注:
> - 检测项丰富化移植(阶段一至四)已全部提交并部署到 5.60
> - 5.44 目标的 `credential_overrides`(MySQL/Redis 密码)已通过 API 写入 5.60 服务器的 `targets.json`(加密),不在代码仓库内
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论