- 中央:config/(prometheus,alertmanager,grafana)、apps/(tile-cache,topology-editor) - 边缘:config/(vmagent,blackbox,targets)、apps/(onvif-exporter) - env: TRAEFIK_PROVIDER、prometheus/env.example 详细说明 - 文档:README/doc 重构,EDGE_CACHE 合并到 EDGE_AGENT_CONFIG - targets.csv 更新流程说明,ARCHITECTURE 图收窄 Made-with: Cursor
4.9 KiB
4.9 KiB
系统架构图
容器关系图
┌─ 边缘节点 (Edge Node 1/2/…/N) ─────────────────┐
│ vmagent | ONVIF Exporter | Blackbox Exporter │
└──────────────────┬────────────────────────────┘
│ remote_write (HTTP POST)
▼
┌─ 中央服务器 ───────────────────────────────────┐
│ VictoriaMetrics (8428) 接收边缘推送、存储 │
│ │ 数据查询 │
│ ▼ │
│ Prometheus (9091) 抓取本地、告警评估 │
│ ├── 告警 ──> Alertmanager (9093) │
│ └── 查询 ──> Grafana (3000) │
└──────────────────┬─────────────────────────────┘
│ HTTP 访问
▼
管理员 / 用户组A / 用户组B
数据流向
1. 数据收集流程
边缘节点设备
│
├─ ONVIF 设备 (摄像头等)
│ └─> ONVIF Exporter ──┐
│ │
├─ 网络设备 (IP地址) │
│ └─> Blackbox Exporter ─┤
│ │
└─> Prometheus Edge ───────┘
│
│ remote_write (HTTP POST)
▼
VictoriaMetrics (8428)
│
│ 数据存储
▼
Prometheus Central (9091)
│
├─> 告警规则评估
│ └─> Alertmanager (9093)
│
└─> 数据查询
└─> Grafana (3000)
2. 告警流程
设备异常
│
▼
Prometheus 检测到指标异常
│
▼
告警规则触发 (alert_rules.yml)
│
▼
发送告警到 Alertmanager
│
▼
Alertmanager 处理告警
├─> 告警分组
├─> 告警抑制
└─> 发送通知 (webhook/邮件等)
3. 查询流程
- 中央自抓指标:Grafana → Prometheus 数据源 → Prometheus 返回结果。
- 边缘数据:Grafana → VictoriaMetrics 数据源 → VictoriaMetrics 返回结果(不经过 Prometheus 查询 VM)。
容器详细说明
1. VictoriaMetrics (8428)
- 作用:远程写入接收器,存储时序数据
- 接收:边缘节点通过
remote_write推送的数据 - 提供:数据查询接口
- 数据路径:
/storage/victoria-metrics-data
2. Prometheus Central (9091)
- 作用:指标收集、查询和告警评估
- 数据源:
- 从 VictoriaMetrics 读取边缘节点数据(用于告警规则评估与部分查询)
- 抓取本地服务(自身、Grafana、Alertmanager、VictoriaMetrics)
- 功能:
- 评估告警规则 (
alert_rules.yml) - 提供 PromQL 查询接口
- 发送告警到 Alertmanager
- 评估告警规则 (
- 数据路径:
/storage/prometheus-data
3. Alertmanager (9093)
- 作用:告警管理和通知
- 接收:来自 Prometheus 的告警
- 功能:
- 告警分组和去重
- 告警抑制
- 发送通知(当前配置:webhook
http://127.0.0.1:5001/)
4. Grafana (3000)
- 作用:数据可视化和仪表板
- 数据源:Prometheus(中央自抓指标)、VictoriaMetrics(边缘推送数据;查边缘 Ping/ONVIF 等请选此数据源)
- 功能:
- 创建图表和仪表板
- 多用户管理(组织隔离)
- 中文界面
- 权限控制
- 数据路径:
/storage/grafana-data
网络关系
monitoring_net (Docker Bridge)
├─ prometheus-central:9090 -> 宿主机 9091
├─ grafana:3000 -> 宿主机 3000
├─ alertmanager:9093 -> 宿主机 9093
└─ victoria-metrics:8428 -> 宿主机 8428
端口映射
| 容器 | 内部端口 | 外部端口 | 用途 |
|---|---|---|---|
| Prometheus | 9090 | 9091 | PromQL 查询和 Web UI |
| Grafana | 3000 | 3000 | 可视化仪表板 |
| Alertmanager | 9093 | 9093 | 告警管理界面 |
| VictoriaMetrics | 8428 | 8428 | 远程写入和查询接口 |
数据存储
central-server/data/
├── prometheus-data/ # Prometheus 时序数据
├── grafana-data/ # Grafana 配置与仪表板
└── victoria-metrics-data/ # VictoriaMetrics 时序数据
依赖关系
VictoriaMetrics <── Prometheus
├─ 告警 ──> Alertmanager
└─ 查询 ──> Grafana
启动顺序:
- VictoriaMetrics(数据存储)
- Prometheus(依赖 VictoriaMetrics)
- Alertmanager(接收 Prometheus 告警)
- Grafana(查询 Prometheus 数据)