- 支持 Windows Agent 构建、安装脚本和统一上报协议 - 增强 RDP 剪贴板、虚拟盘和文件传输能力 - 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口 - 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
4.5 KiB
4.5 KiB
监控中心设计说明
更新:2026-07-05 范围:客户端 Agent 指标、Prometheus/Zabbix 数据源、SNMP、站点拨测、中间件监控、告警引擎、通知策略、监控大屏。// Logan.Li
定位
监控中心是 AIOps 的可观测数据中台,负责采集、查询、展示和告警。当前项目中监控来源分为五类:
| 来源 | 采集方式 | 代表能力 |
|---|---|---|
| 客户端 Agent | 被管主机主动上报 | CPU、内存、磁盘、网络、进程、端口 |
| 中间件监控 | 后端主动直连 | Redis/MySQL 内部指标 |
| Prometheus | 后端代理查询 | PromQL、时序指标、Grafana 风格看板 |
| Zabbix | 后端代理查询 | Host/Item/Trigger 数据 |
| SNMP / 站点拨测 | 后端主动采集 | 网络设备、HTTP/TCP 可用性 |
能力矩阵
| 能力 | 当前状态 | 说明 |
|---|---|---|
| Agent 主机监控 | 已完成 | 指标上报、实时状态、历史趋势 |
| Agent 告警规则 | 已完成 | CPU/内存/磁盘/网络等规则 |
| 告警中心 | 已完成 | 事件、规则、联系人、渠道、静默 |
| 告警引擎 | 已完成 | 阈值/恢复/通知调度 |
| 日志告警 | 已完成 | 从日志查询触发告警 |
| Prometheus 数据源 | 已完成 | 数据源管理和代理查询 |
| Zabbix 数据源 | 已完成 | 数据源管理和代理查询 |
| 中间件监控 | 已完成 | Redis/MySQL 后端直连采集 |
| SNMP | 已完成 | SNMP 采集和历史 |
| 站点拨测 | 已完成 | HTTP/TCP 站点视图 |
| 指标目录 | 已完成 | 告警规则可选指标元数据 |
主要代码落点
| 模块 | 后端 | 前端 |
|---|---|---|
| Agent 指标 | backend/controller/agent.go |
frontend/src/components/agent/ |
| Agent 任务/规则 | backend/controller/agent_task.go、monitor_alert_rule.go |
AgentAlerts.tsx、AgentRuleDialog.tsx |
| 告警中心 | alert*.go、alert_notify_*.go |
frontend/src/components/monitor/alert-center/ |
| 指标目录 | alert_metric_catalog.go |
MetricCatalogTab.tsx |
| Prometheus | prometheus_datasource.go、prometheus_proxy.go |
PrometheusDatasourceManager.tsx、PrometheusDashboard.tsx |
| Zabbix | zabbix_datasource.go、zabbix_proxy.go |
ZabbixDatasourceManager.tsx、ZabbixDashboard.tsx |
| 中间件监控 | middleware_monitor*.go |
监控页面中间件视图 |
| SNMP | snmp*.go |
SNMP 页面 |
| 站点拨测 | site*.go |
frontend/src/api/monitor/site.ts |
指标分层
| 层级 | 指标示例 | 存储/查询 |
|---|---|---|
| 主机最新值 | CPU、内存、磁盘、Agent 状态 | asset_servers 实时字段 |
| 主机历史 | Agent 原始上报 | monitor_agent_reports |
| 热数据 | CPU/Mem/Load ZSet | Redis 可选,local 模式回退 MySQL |
| 中间件历史 | redis_qps、mysql_connections |
metric_histories |
| 外部数据源 | Prometheus/Zabbix | 实时代理查询 |
| 告警事件 | firing/resolved | 告警事件表 |
Redis/MySQL 边界见 客户端 Agent 文档。
告警引擎模型
Rule
├── metric / source / target
├── operator / threshold
├── duration
├── severity
├── notify policy
└── silence policy
Engine
├── load enabled rules
├── query latest metric
├── evaluate condition
├── create/update alert event
├── recovery check
└── dispatch notification
建议统一字段:
| 字段 | 说明 |
|---|---|
source_type |
agent / middleware / prometheus / zabbix / log / site / snmp |
target_id |
资产、监控目标或数据源内对象 |
metric |
统一指标 key |
value |
触发时的数值 |
labels |
环境、业务、集群、namespace 等维度 |
与日志中心关系
日志中心负责非结构化日志查询和日志告警;监控中心负责结构化指标和状态告警。两者在告警中心汇聚,事件模型应统一:
Metrics Alert
Log Alert
Site Alert
SNMP Alert
→ Alert Event
→ Notify Policy
→ Channel Dispatch
验收清单
- Agent 上报后主机监控页面能看到最新指标。
- Redis/MySQL 监控目标能手动测试连接和定时采集。
- Prometheus/Zabbix 数据源能保存、测试、查询。
- 告警规则触发后生成事件,并能恢复。
- 静默规则生效后不发送通知。
- 通知渠道失败不影响告警事件入库。
- local 模式无 Redis 时,历史聚合能从 MySQL 回退。