refactor: config/apps 目录重组、文档重构、架构图收窄

- 中央: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
This commit is contained in:
2026-02-28 22:05:43 -05:00
parent 650e5145f1
commit ab1515dffb
48 changed files with 2071 additions and 509 deletions

View File

@@ -1,67 +1,91 @@
# Distributed-Prometheus
分布式 Prometheus 监控系统,支持多用户多设备监控
分布式 Prometheus 监控系统:中央收集、边缘上报、多用户多设备。
---
## 部署顺序
## 架构概览
**先中央,后边缘**(边缘向中央上报,中央必须先就绪)。
```
边缘 targets.csv → update-configs.sh → target-onvif / target-ping / target-topology
边缘 vmagent 抓取 → remote_write → 中央 VictoriaMetrics
中央 Prometheus 抓取本地 + 查 VictoriaMetrics → 告警 + Grafana
```
| 步骤 | 做什么 | 命令摘要 |
|------|--------|----------|
| **第一步** | 部署中央服务器 | `cd central-server && bash deploy.sh` |
| **第二步** | 部署边缘节点(可选,可多台) | 本机同机:`cd edge-agent && bash deploy.sh --local`;远程:配 `.env``bash deploy.sh` |
| **第三步** | 多用户 / 告警(可选) | Grafana`central-server/grafana/setup-users.sh`;告警:编辑 `alertmanager/alertmanager.yml` |
**完整说明、验证方式与文档入口****[doc/README.md](doc/README.md)**(建议先看其中的「部署顺序」)。
边缘将指标推送到中央 VictoriaMetrics8428Grafana 查询边缘数据选 **VictoriaMetrics**,中央自抓选 **Prometheus**
---
## 项目结构
- **central-server/** — 中央Prometheus、Grafana、VictoriaMetrics、Alertmanager
- **edge-agent/** — 边缘vmagent、ONVIF Exporter、Blackbox Exporter
```
Distributed-Prometheus/
├── central-server/ # 中央节点
│ ├── config/ # 配置prometheus、alertmanager、grafana
│ ├── apps/ # 自建应用tile-cache、topology-editor
│ └── data/ # 运行时数据gitignore
├── edge-agent/ # 边缘节点(可多台)
│ ├── config/ # 配置vmagent、blackbox、targets.csv
│ └── apps/ # 自建应用onvif-exporter
└── doc/ # 文档
```
---
## 快速开始(对应第一步 + 第二步)
## 快速开始
1. **第一步:部署中央**
```bash
cd central-server
cp env.example .env # 可选
bash deploy.sh
```
访问 Grafanahttp://localhost:3000admin / admin123
2. **第二步:部署边缘**(可选)
- 本机同机:`cd edge-agent && bash deploy.sh --local`
- 边缘在别台机器:在 `edge-agent` 里配 `.env` 后 `bash deploy.sh`
**顺序**:中央 → 边缘(边缘上报中央,中央须先就绪)
边缘数据在 Grafana 中需选择数据源 **「VictoriaMetrics」** 才能看到中央自身指标在数据源「Prometheus」。
```bash
# 1. 中央
cd central-server && cp env.example .env && bash deploy.sh
3. **第三步(可选)**:多用户见 `doc/USER_MANAGEMENT.md`,告警见 `doc/ALERTING.md`。
# 2. 边缘(本机同机)
cd edge-agent && bash deploy.sh --local
# 2. 边缘(跨机)
cd edge-agent && cp env.example .env
# 编辑 .env 中 CENTRAL_SERVER_HOST=中央IP
bash deploy.sh
```
---
## 访问地址(默认)
- Grafana: http://localhost:3000
- Prometheus: http://localhost:9091
- VictoriaMetrics: http://localhost:8428
- Alertmanager: http://localhost:9093
- 边缘 Prometheus端口 9092http://localhost:9092
| 服务 | 端口 | URL |
|------|------|-----|
| Grafana | 3000 | http://localhost:3000 |
| Prometheus | 9091 | http://localhost:9091 |
| VictoriaMetrics | 8428 | http://localhost:8428 |
| Alertmanager | 9093 | http://localhost:9093 |
| GPS 标注助手 | 4080 | http://localhost:4080 |
| 边缘 vmagent | 9092 | http://localhost:9092 |
Grafana 默认 admin/admin123查边缘数据选数据源 **VictoriaMetrics**
---
## 多用户与数据隔离
## 监控目标targets.csv
Grafana 支持多组织、多用户;通过 Prometheus 标签做数据隔离(如 `user_group`)。管理员可查看全部数据。详见 **doc/USER_MANAGEMENT.md**
边缘监控目标在 `edge-agent/config/targets.csv`,部署时自动生成 `target-onvif.json``target-ping.json`
**修改 targets.csv 后**:手动执行 `cd edge-agent/config && ./update-configs.sh`(或重新 `deploy.sh`vmagent 每 5 分钟自动重载,无需重启。
详见 [doc/TARGETS_AND_MONITORING.md](doc/TARGETS_AND_MONITORING.md)。
---
## 文档
**入口与部署顺序****[doc/README.md](doc/README.md)**
其他文档均在 `doc/` 下架构ARCHITECTURE、中央/边缘配置、告警、部署指南、故障排查等,见 [doc/README.md#文档列表](doc/README.md)
| 类别 | 文档 |
|------|------|
| **部署与配置** | [doc/README.md](doc/README.md) 部署步骤、[DEPLOYMENT_GUIDE](doc/DEPLOYMENT_GUIDE.md) |
| **架构** | [ARCHITECTURE](doc/ARCHITECTURE.md) 容器关系、数据流 |
| **中央** | [CENTRAL_SERVER_CONFIG](doc/CENTRAL_SERVER_CONFIG.md)、[central-server/CONFIGURATION.md](central-server/CONFIGURATION.md) |
| **边缘** | [EDGE_AGENT_CONFIG](doc/EDGE_AGENT_CONFIG.md)、[TARGETS_AND_MONITORING](doc/TARGETS_AND_MONITORING.md) |
| **告警** | [ALERTING](doc/ALERTING.md) 规则与 Alertmanager |
| **扩展** | [ONVIF_ALTERNATIVES](doc/ONVIF_ALTERNATIVES.md)、[TIANDITU_CONFIG](doc/TIANDITU_CONFIG.md)、[USER_MANAGEMENT](doc/USER_MANAGEMENT.md) |
| **运维** | [TROUBLESHOOTING](doc/TROUBLESHOOTING.md)、[BEST_PRACTICES](doc/BEST_PRACTICES.md) |