M4-03 Server Monitor Module #37

Closed
opened 2026-05-22 21:09:50 +08:00 by wangdl · 1 comment
Owner

目标

设计知习服务器监控模块,为 Admin 提供两服务器(4核4G/8核32G)CPU、内存、磁盘以及 Docker、MySQL、Redis、Qdrant、Gitea 等服务健康状态的可视化面板。

本 Issue 只做模块架构设计,不直接实现代码。

背景说明

知习部署在两台服务器上,需要监控其运行状态。Server Monitor 看服务器和容器是否存活,Observability 看应用接口和 AI 调用是否正常——两者互补但不重叠。

模块职责

  1. 本模块负责:

    • 服务器基础指标采集(CPU/内存/磁盘使用率)
    • Docker 容器状态(运行中/停止/重启次数)
    • MySQL/Redis/Qdrant 连接状态检测
    • Gitea/Runner 状态检测
    • Worker 进程状态
    • Nginx 状态
    • 健康检查结果记录
  2. 本模块不负责:

    • 应用层性能监控(走 Observability)
    • 自动告警和通知(当前阶段手动查看)
    • 自动化运维操作

候选数据对象

  • ServerNode
  • ServiceHealth
  • MetricSnapshot
  • ContainerStatus
  • HealthCheckResult

禁止事项

  • 禁止 Server Monitor 做应用层性能采集(那是 Observability 的职责)
  • 禁止健康检查频率过高增加服务器负担

不建议当前阶段实现

  • Prometheus/Grafana 对接
  • Webhook/WebSocket 实时告警
  • 自动重启异常服务
## 目标 设计知习服务器监控模块,为 Admin 提供两服务器(4核4G/8核32G)CPU、内存、磁盘以及 Docker、MySQL、Redis、Qdrant、Gitea 等服务健康状态的可视化面板。 本 Issue 只做模块架构设计,不直接实现代码。 ## 背景说明 知习部署在两台服务器上,需要监控其运行状态。Server Monitor 看服务器和容器是否存活,Observability 看应用接口和 AI 调用是否正常——两者互补但不重叠。 ## 模块职责 1. 本模块负责: - 服务器基础指标采集(CPU/内存/磁盘使用率) - Docker 容器状态(运行中/停止/重启次数) - MySQL/Redis/Qdrant 连接状态检测 - Gitea/Runner 状态检测 - Worker 进程状态 - Nginx 状态 - 健康检查结果记录 2. 本模块不负责: - 应用层性能监控(走 Observability) - 自动告警和通知(当前阶段手动查看) - 自动化运维操作 ## 候选数据对象 - ServerNode - ServiceHealth - MetricSnapshot - ContainerStatus - HealthCheckResult ## 禁止事项 - 禁止 Server Monitor 做应用层性能采集(那是 Observability 的职责) - 禁止健康检查频率过高增加服务器负担 ## 不建议当前阶段实现 - Prometheus/Grafana 对接 - Webhook/WebSocket 实时告警 - 自动重启异常服务
wangdl added this to the M4:Admin 生产级运维深化(P3) milestone 2026-05-22 21:09:50 +08:00
wangdl self-assigned this 2026-05-22 21:09:50 +08:00
Author
Owner

M4-03 实施完成

已有基础

AdminServersService 此前已实现实时指标采集(CPU/内存/磁盘/进程),Servers 页面已展示两台服务器卡片。

本 Issue 新增

模块 说明
ServiceHealth Prisma 模型 记录服务健康检查结果
健康检查方法 本地+远程 SSH 双服务器检查
Health API GET /admin-api/servers/health
前端展示 Servers 页面新增服务健康检查标签

健康检查覆盖

服务 检查方式
Docker docker ps 命令
MySQL ss 端口 3306 监听
Redis ss 端口 6379 监听
Qdrant ss 端口 6333 监听
Nginx ss 端口 80 监听
Gitea HTTP API curl localhost:3000
NestJS API ps grep 进程
Gitea Runner ps grep 进程
Hermes Agent ps grep 进程

AAPI 端点

端点 方法 说明
/admin-api/servers/metrics GET 实时指标(已有)
/admin-api/servers/health GET 服务健康检查(新增)
## ✅ M4-03 实施完成 ### 已有基础 AdminServersService 此前已实现实时指标采集(CPU/内存/磁盘/进程),Servers 页面已展示两台服务器卡片。 ### 本 Issue 新增 | 模块 | 说明 | |------|------| | ServiceHealth Prisma 模型 | 记录服务健康检查结果 | | 健康检查方法 | 本地+远程 SSH 双服务器检查 | | Health API | GET /admin-api/servers/health | | 前端展示 | Servers 页面新增服务健康检查标签 | ### 健康检查覆盖 | 服务 | 检查方式 | |------|----------| | Docker | docker ps 命令 | | MySQL | ss 端口 3306 监听 | | Redis | ss 端口 6379 监听 | | Qdrant | ss 端口 6333 监听 | | Nginx | ss 端口 80 监听 | | Gitea | HTTP API curl localhost:3000 | | NestJS API | ps grep 进程 | | Gitea Runner | ps grep 进程 | | Hermes Agent | ps grep 进程 | ### AAPI 端点 | 端点 | 方法 | 说明 | |------|------|------| | /admin-api/servers/metrics | GET | 实时指标(已有) | | /admin-api/servers/health | GET | 服务健康检查(新增) |
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#37
No description provided.