3.8 KiB
3.8 KiB
MoFin — 健康监控管线
版本: v1.0 | 部署目标: Linux 246
概述
两层监控,通过 crontab 调度,聚合到 Dashboard F Tab。
┌─────────────────────────────────┐
│ Dashboard F Tab │
│ /api/monitor 聚合展示 │
└──────────┬──────────────────────┘
│ 读取报告文件
┌──────────┴──────────┐
│ │
┌────▼─────┐ ┌────▼─────┐
│ Tier 1 │ │ Tier 2 │
│ 每 5 分钟 │ │ 每天 8:00│
└──────────┘ └──────────┘
│ │
agents_health_check agents_daily_health
│ (已部署 8/06)
┌────▼─────┐
│ TODO 文件 │
│ .jsonl │
└──────────┘
Tier 1: 快速健康检查(每 5 分钟)
脚本: agents_health_check.py
调度: crontab: */5 * * * *
检查内容:
- 4 个服务:MoFin API (:8899) / 知微 Gateway (:8643) / ejabberd (:5222) / MoFin DB
- 检查方式:socket 端口 + HTTP /health + SQLite connect
- 全正常时静默(不输出、不写日志)
异常处理:
- 写入
gateway/temp/health_todos.jsonl - 每条 TODO 包含:服务名、失败原因、时间戳
- 写入
gateway/temp/last_health_check.json供 Dashboard 读取
日志: gateway/logs/health_check.log
报告: gateway/temp/last_health_check.json
Tier 2: 每日全面检查(已部署)
脚本: agents_daily_health.py(位于 /home/hmo/AgentsMeeting/gateway/scripts/)
调度: crontab: 0 8 * * *(每日 8:00,2026-08-06 部署)
检查内容:
- 在 Tier 1 基础上增加:
- 磁盘空间检查(阈值 10G 警告 / 2G 严重)
- crontab 存活检查(验证关键定时任务)
- MoFin DB 大小和新鲜度检查
- 生成结构化 JSON 报告
注意: MoFin 已有 morning_health_check.py(交易日 8:00,8 类 40 项,历史存 health_check_log 表),Tier2 与其互补,不重复。
Dashboard 集成
/api/monitor 端点
聚合展示两层数据:
{
"tasks": [
{"name": "agents-health-check", "status": "cron_ok"},
{"name": "agents-daily-health", "status": "not_deployed"},
{"name": "dashboard", "status": "running"}
],
"tier1": { "services": [...], "summary": {"ok": 5, "total": 5} },
"tier2": { "services": [...], "summary": {"ok": 0, "total": 0} }
}
F Tab 展示
- 系统概览(Tier1 通过率)
- 定时任务状态(绿色=正常,黄色=未部署,红色=异常)
- Tier1 服务详情
如何新增监控
- 添加服务到 Tier 1 — 编辑
agents_health_check.py的SERVICES列表 - 更新 Dashboard — 在
dashboard.py的SERVICES中同步添加 - 写 Spec — 在
specs/创建或更新对应模块的 JSON
故障排查
| 现象 | 检查 |
|---|---|
| F Tab 无数据 | cat ~/MoFin/gateway/temp/last_health_check.json 确认文件存在 |
| Tier1 任务显示"未部署" | crontab -l | grep health 确认 crontab 条目 |
| TODO 堆积 | 手动检查失败服务的实际状态 |
| Dashboard 不显示新服务 | 确认 dashboard.py 的 SERVICES 列表和 health_check 同步 |