Files
aiops/docs/monitoring/README.md
T
Logan.Li e0d652d211 feat: 完善堡垒机与 Agent 智能运维能力
- 支持 Windows Agent 构建、安装脚本和统一上报协议

- 增强 RDP 剪贴板、虚拟盘和文件传输能力

- 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口

- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
2026-07-05 23:49:36 +08:00

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 回退。