- 支持 Windows Agent 构建、安装脚本和统一上报协议 - 增强 RDP 剪贴板、虚拟盘和文件传输能力 - 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口 - 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
128 lines
4.5 KiB
Markdown
128 lines
4.5 KiB
Markdown
# 监控中心设计说明
|
|
|
|
> 更新: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 回退。
|