📋 早班巡检报告 · IT 智能服务台

📅 2026-08-05 06:00(GMT+8) 🛰️ 服务器 10.90.5.110 📄 看板 v1.7 (08-03) 🤖 执行 Duckula
🔍 分类筛选

🔴 P0 必做(高优先级)

本次巡检最高优先级阻塞 / 待修复项

编号任务类别说明
P0-1 /itportal/ 入口 500 错误复燃 ♻️ 历史遗留 看板 v1.7 标 "commit 21830d5 已修复(待部署)" 08-03;但 实际未部署。实测:/itportal/ → 500,/itportal → 404。根因:nginx location /itportal/ (line 133/306) 仍指向空 dist。dist 自 2026-07-08 空 28 天
P0-2 sensitive_words.py 13 端点无鉴权 ♻️ 历史遗留 GET/POST/PUT/DELETE /sensitive-words*、/privacy-patterns*、/moderation-logs[/stats]、/moderation-config 全部缺 @require_admin。08-04 已指出未治理。完全可复用 08-03 troubleshooting_templates.py 治理方案
P0-3 closing_service.py:467 datetime 时区错位 🆕 新增 datetime.now() - close_timeTypeError: can't subtract offset-naive and offset-aware datetimes。影响 POST /h5/conversations/current/reopen。2026-08-03 16:08 连续 3 次 500
P0-4 h5_ai_task.py:1198 SessionLocal NoneType 🆕 新增 _push_asset_recommendsget_employee_profile_service()db = SessionLocal() 返回 None → TypeError: 'NoneType' object is not callable。影响 IT 资产推荐异步推送。2026-08-04 01:36 + 02:29 两次

🟡 P1 重要

编号任务类别说明
P1-1 前端 console 残留 208 行 🆕 新增 frontend-h5/src 26 文件 + frontend-agent/src 14 文件含 console.log/warn/debug。建议 vite 构建时 terser drop_console: true + 加 lint 规则

🟢 等用户决策(阻塞项)

均超 3 天阈值,需 PM 升级催办

编号任务阻塞时长卡点 / Owner
BLK-A 企微会议室 Secret ⚠️ 25 天(自 2026-07-11) 需企业微信管理后台申请。Owner: 平台组
BLK-B ITSM API 授权 ⚠️ 25 天(自 2026-07-11) 需向 ITSM 平台方申请 app_id/app_secret。Owner: 平台组

⏳ 进行中 (In Progress)

编号任务状态说明
#81 敏感词检测 + 语气优化 v1.2 待排期 v1.1 阶段 1 已于 2026-07-28 完成(词库入库 + 后台管理 UI + 12 配套 API)。剩余"语气优化、灰度策略细化"待 v1.2 排期

🖥️ 服务器运行状态

组件状态实测数据
Docker 容器正常5/5 healthy:nginx (Up 15h) / backend (Up 35h) / redis (Up 2w) / postgres (Up 3w) / neo4j (Up 3w)。无 Exited/Restarting/Unhealthy
后端 health正常/health → HTTP 200 in 3.9ms;/docs → 200
后端 5xx 错误异常24h 内 3 类真实 Traceback(见 P0-3 / P0-4)
PostgreSQL正常pg_isready → accepting connections
Redis正常redis_version:7.4.9 / 独立模式 + 密码认证
Nginx 配置正常nginx -t → syntax OK
前端入口异常/itportal/ 500/itportal 404/itdesk/itagent/itadmin 200 OK
磁盘 / 内存正常130G 可用(13% 用)/ 15.7G→3.5G used / 负载 0.99 / 已运行 53 天
日志正常wecom-it-desk.log 9.1M (34294 行),5 个轮转日志各 21M,轮转正常

🔍 代码规范与质量检查

问题位置建议
console.log 残留 208 行 / 40 文件 frontend-h5/src(26) + frontend-agent/src(14) 加 lint 规则禁用 production console;或构建时 terser drop_console: true
datetime.now() 混用 naive/aware closing_service.py: 7 处 + SQL 比较 3 处 引入项目内统一工具函数 utcnow() 替代 datetime.now(),DB 列 TIMESTAMPTZ 强制 aware 语义
历史残留目录 /opt/wecom-it-desk/app.bak-eveningdist-backup-2026-06-21backups/_backups/ 清理以减少运维误判(避免"宿主残留目录误导校验"陷阱)
后端无 print() 调试残留 src/backend/app/** grep 排除后通过

🔐 安全检查

风险位置修复
P0 13 端点全部无鉴权 src/backend/app/api/admin/sensitive_words.py 全部加 Depends(get_current_user) + @require_admin,参照 troubleshooting_templates.py 治理
OK CORS 配置合理 main.py CORSMiddleware allow_origins=settings.cors_origins_list / allow_credentials=True / methods 限 5 种 / headers 仅 3 个。需验证 cors_origins_list 配置源未放开 *
OK 前端 src/** 无硬编码密钥 grep api_key/access_token/app_secret 仅命中 node_modules,通过
建议 依赖过期 cryptography==42.0.8pydantic==2.7.4 升至 cryptography ≥ 43.x / pydantic ≥ 2.8.x 并跑回归
OK 日志未见敏感信息 后端日志扫描 仅含 errcode、code masked、stack,通过

⚠️ PM 立即关注

1. 【最关键】/itportal/ 500 错误已持续 28 天 看板 v1.7 标 "commit 21830d5 已修复(待部署)",但 jumpserver 实测仍未部署。建议:① 立即部署 commit 21830d5(docker compose up -d --force-recreate nginx);② 或评估 /itportal/ 入口是否还需保留(看板记忆未提,按设计 #81 PRD 应走 /itdesk/ H5 入口)
2. sensitive_words.py 13 端点零鉴权(同昨日巡检结论,未治理) 与 08-03 troubleshooting_templates.py 5 端点是同类问题。建议立即复制其治理方案:GET → get_current_user;POST/PUT/DELETE → @require_admin
3. 3 类后端真实 5xx 24h 内集中爆发 ① closing_service.py:467 → 改 utcnow() 并保证 DB 列 aware
② h5_ai_task.py:1198 → 检查为什么 get_employee_profile_service() 没拿到 db
③ OAuth2 errcode=40029 凌晨 3 次 → 评估是否企微回调 code 短时过期,或客户端重复刷新
4. 2 项长期阻塞(25 天)需升级 企微会议室 Secret + ITSM API 授权已超 3 天阈值。建议 PM 主动对接平台组负责人,或调整为"降级方案 + P0 重启"
5. 看板分区缺失 v1.7 仅"进行中/待开始/暂停"三个分区,无 P0/P1/等决策正式分区,导致巡检定位困难。建议 PM 提一版 v1.8 恢复分级分区(草稿已生成:docs/07-项目管理/项目状态看板.md v1.8 草稿)

🔄 与昨日(2026-08-04)对比

指标08-04 巡检08-05 巡检变化
容器健康5/5 healthy5/5 healthy持平
/itportal/ 入口🔴 500🔴 500未修复
sensitive_words 鉴权🔴 12 端点缺失🔴 13 端点缺失未治理
5xx 错误未列🔴 3 类新发现新增
阻塞项时长24 天25 天+1 天
依赖版本cryptography 42.0.8 / pydantic 2.7.4同上未升级

🔗 相关链接