Files
root c4825c2d27 feat: 引入 vmauth 鉴权与严格多租户
- 对外端口统一为 18428(vmauth 入口),VM 不再直接暴露宿主机端口
- 边缘 vmagent 与中央 Prometheus remote_write 增加 basic auth
- 支持 tenants.csv 驱动的 per-tenant 写入/查询隔离,并提供管理员跨租户只读查询
- 更新 Grafana provisioning 与部署/文档

Made-with: Cursor
2026-04-22 11:41:13 +00:00

94 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Distributed-Prometheus
分布式 Prometheus 监控系统:中央收集、边缘上报、多用户多设备。
---
## 架构概览
```
边缘 targets.csv → update-configs.sh → target-onvif / target-ping / target-topology
边缘 vmagent 抓取 → remote_write → 中央 VictoriaMetrics
中央 Prometheus 抓取本地 + 查 VictoriaMetrics → 告警 + Grafana
```
边缘将指标推送到中央 vmauth18428带鉴权再转发到 VictoriaMetrics如果启用严格多租户`central-server/config/vmauth/tenants.csv`),每个边缘节点用独立账号并写入各自 tenant实现数据与查询隔离。
管理员要看所有租户:在 `central-server/.env` 配置 `VMAUTH_ADMIN_USER/VMAUTH_ADMIN_PASSWORD`。该账号可跨租户读取(通过 `/select/<tenant_id>/prometheus/...`Grafana 建议用“数据源变量”在多租户数据源之间切换查看。
---
## 项目结构
```
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/ # 文档
```
---
## 快速开始
**顺序**:中央 → 边缘(边缘上报中央,中央须先就绪)
```bash
# 1. 中央
cd central-server && cp env.example .env && bash deploy.sh
# 2. 边缘(本机同机)
cd edge-agent && bash deploy.sh --local
# 2. 边缘(跨机)
cd edge-agent && cp env.example .env
# 编辑 .env 中 CENTRAL_SERVER_HOST=中央IP
bash deploy.sh
```
---
## 访问地址(默认)
| 服务 | 端口 | URL |
|------|------|-----|
| Grafana | 3000 | http://localhost:3000 |
| Prometheus | 9091 | http://localhost:9091 |
| vmauthVictoriaMetrics 入口) | 18428 | http://localhost:18428 |
| Alertmanager | 9093 | http://localhost:9093 |
| GPS 标注助手 | 4080 | http://localhost:4080 |
| 边缘 vmagent | 9092 | http://localhost:9092 |
Grafana 默认 admin/admin123查边缘数据选数据源 **VictoriaMetrics**
---
## 监控目标targets.csv
边缘监控目标在 `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) 部署步骤、[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) |