# 监控中心设计说明 > 更新: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 文档](../client-agent/README.md#与中间件监控的边界)。 --- ## 告警引擎模型 ```text 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 等维度 | --- ## 与日志中心关系 日志中心负责非结构化日志查询和日志告警;监控中心负责结构化指标和状态告警。两者在告警中心汇聚,事件模型应统一: ```text Metrics Alert Log Alert Site Alert SNMP Alert → Alert Event → Notify Policy → Channel Dispatch ``` --- ## 验收清单 1. Agent 上报后主机监控页面能看到最新指标。 2. Redis/MySQL 监控目标能手动测试连接和定时采集。 3. Prometheus/Zabbix 数据源能保存、测试、查询。 4. 告警规则触发后生成事件,并能恢复。 5. 静默规则生效后不发送通知。 6. 通知渠道失败不影响告警事件入库。 7. local 模式无 Redis 时,历史聚合能从 MySQL 回退。