完善中央与边缘部署、远程写入与监控文档
- 增加中央与边缘完整配置和部署脚本 - 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明 - 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
161
doc/DEPLOYMENT_GUIDE.md
Normal file
161
doc/DEPLOYMENT_GUIDE.md
Normal file
@@ -0,0 +1,161 @@
|
||||
# 部署指南
|
||||
|
||||
部署顺序见 **[doc/README.md](README.md)#部署顺序**:**第一步 中央服务器 → 第二步 边缘节点 → 第三步(可选)多用户与告警**。本文为各步的详细说明、检查清单与常见问题。
|
||||
|
||||
---
|
||||
|
||||
## 第一步:部署中央服务器
|
||||
|
||||
### 前置要求
|
||||
|
||||
- Docker 与 Docker Compose 已安装
|
||||
- 根分区至少约 1GB 可用;数据目录所在分区至少约 2GB
|
||||
- 端口未被占用:3000(Grafana)、9091(Prometheus)、8428(VictoriaMetrics)、9093(Alertmanager)
|
||||
- 若需外网访问:防火墙开放上述端口
|
||||
|
||||
### 操作步骤
|
||||
|
||||
1. 进入目录并准备环境(可选):
|
||||
```bash
|
||||
cd central-server
|
||||
cp env.example .env # 可选:修改端口、Traefik、网络等
|
||||
```
|
||||
|
||||
2. 执行部署:
|
||||
```bash
|
||||
bash deploy.sh
|
||||
```
|
||||
|
||||
3. 等待约 15 秒后检查:
|
||||
```bash
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
4. 验证访问:
|
||||
- Grafana: http://localhost:3000(默认 admin / admin123)
|
||||
- Prometheus: http://localhost:9091
|
||||
- VictoriaMetrics: http://localhost:8428
|
||||
- Alertmanager: http://localhost:9093
|
||||
|
||||
### 中央服务器检查清单
|
||||
|
||||
- [ ] Docker、Docker Compose 已安装
|
||||
- [ ] 磁盘空间充足(根分区约 1GB+,数据分区约 2GB+)
|
||||
- [ ] 端口 3000、9091、8428、9093 未被占用
|
||||
- [ ] 需要时已开放防火墙
|
||||
- [ ] 部署后能打开 Grafana、Prometheus
|
||||
|
||||
---
|
||||
|
||||
## 第二步:部署边缘节点
|
||||
|
||||
**前提**:第一步中央服务器已部署并正常运行(尤其 VictoriaMetrics 8428 可访问)。
|
||||
|
||||
### 前置要求
|
||||
|
||||
- Docker、Docker Compose 已安装
|
||||
- `jq` 已安装(用于生成 JSON 配置)
|
||||
- 边缘节点能访问中央服务器(能访问中央 IP:8428)
|
||||
- 如需监控 ONVIF/网络设备:网络可达这些设备
|
||||
|
||||
### 情形 A:本机同机部署(中央与边缘在同一台机器)
|
||||
|
||||
```bash
|
||||
cd edge-agent
|
||||
bash run-edge-local.sh
|
||||
```
|
||||
|
||||
脚本会自动将中央地址设为 `host.docker.internal:8428` 并执行部署。边缘 Prometheus UI:http://localhost:9092。
|
||||
|
||||
### 情形 B:边缘在另一台机器
|
||||
|
||||
1. 进入目录并配置中央地址:
|
||||
```bash
|
||||
cd edge-agent
|
||||
cp env.example .env
|
||||
```
|
||||
编辑 `.env`:
|
||||
- `CENTRAL_SERVER_HOST=` 中央服务器 IP 或域名
|
||||
- `CENTRAL_SERVER_PORT=8428`
|
||||
|
||||
2. 配置监控目标并生成配置:
|
||||
```bash
|
||||
# 编辑 config/targets.csv(Ping / ONVIF),详见 TARGETS_CSV_GUIDE.md
|
||||
cd config && chmod +x *.sh && ./update-configs.sh && cd ..
|
||||
```
|
||||
|
||||
3. 部署:
|
||||
```bash
|
||||
bash deploy.sh
|
||||
```
|
||||
|
||||
4. 验证:
|
||||
- 边缘 Prometheus: http://localhost:9092(或边缘机器 IP:9092)
|
||||
- 在中央 Grafana 中**选择数据源「VictoriaMetrics」**,查询如 `up{job="network-ping"}` 或 `up{region="workernode_1"}` 应能看到边缘数据
|
||||
|
||||
### 边缘节点检查清单
|
||||
|
||||
- [ ] 中央服务器已部署且 VictoriaMetrics 可访问(端口 8428)
|
||||
- [ ] `.env` 中 `CENTRAL_SERVER_HOST`、`CENTRAL_SERVER_PORT` 正确
|
||||
- [ ] `config/targets.csv` 已配置(或已生成 `onvif-targets.json`、`ping-targets.json`)
|
||||
- [ ] 已执行 `config/update-configs.sh`
|
||||
- [ ] 边缘能访问中央 8428 端口
|
||||
- [ ] 部署后在 Grafana 的 VictoriaMetrics 数据源中能看到边缘指标
|
||||
|
||||
---
|
||||
|
||||
## 第三步(可选):多用户与告警
|
||||
|
||||
- **Grafana 多用户**:在中央服务器上执行 `cd central-server/grafana && bash setup-users.sh`,然后按 [USER_MANAGEMENT.md](USER_MANAGEMENT.md) 配置组织、用户与数据源。
|
||||
- **告警规则**:中央已内置 `alert_rules.yml`;如需调整见 [ALERT_RULES_EXPLANATION.md](ALERT_RULES_EXPLANATION.md)。
|
||||
- **告警通知**:编辑 `central-server/alertmanager/alertmanager.yml` 配置接收端,见 [ALERTMANAGER_CONFIG.md](ALERTMANAGER_CONFIG.md)。
|
||||
|
||||
---
|
||||
|
||||
## 部署后验证
|
||||
|
||||
### 中央
|
||||
|
||||
- `docker compose ps` 中 prometheus-central、grafana、victoria-metrics、alertmanager 为 Up
|
||||
- 能打开 Grafana、Prometheus、Alertmanager、VictoriaMetrics 的 Web 界面
|
||||
- Grafana 中「Prometheus」数据源可查询到中央自身指标(如 `up`)
|
||||
|
||||
### 边缘
|
||||
|
||||
- `docker compose ps` 中 prometheus-edge、onvif-exporter、blackbox-exporter 为 Up
|
||||
- 边缘 Prometheus http://localhost:9092/targets 中目标状态正常
|
||||
- 中央 Grafana 中**选择数据源「VictoriaMetrics」**,能查到边缘相关指标(如 `up{job="network-ping"}`)
|
||||
|
||||
---
|
||||
|
||||
## 常见部署问题
|
||||
|
||||
### 端口冲突
|
||||
|
||||
- 现象:容器启动失败,提示端口已被占用。
|
||||
- 处理:`netstat -tulpn | grep <端口>` 或 `ss -tulpn` 查看占用;修改对应 `docker-compose.yml` 端口映射或关闭占用进程。
|
||||
|
||||
### 磁盘空间不足
|
||||
|
||||
- 现象:拉镜像或启动失败。
|
||||
- 处理:`df -h` 检查空间;`docker system prune -a --volumes` 清理(注意会删未用卷);保证数据目录所在分区空间充足。
|
||||
|
||||
### 边缘无法连接中央
|
||||
|
||||
- 现象:边缘数据未出现在中央 Grafana 的 VictoriaMetrics 中。
|
||||
- 处理:从边缘节点 `telnet <中央IP> 8428` 或 `curl -s -o /dev/null -w "%{http_code}" http://<中央IP>:8428/health`;检查防火墙与 `.env` 中 `CENTRAL_SERVER_HOST`、`CENTRAL_SERVER_PORT`。
|
||||
|
||||
### Grafana 中看不到边缘数据
|
||||
|
||||
- 确认在 Grafana 里选择的是**数据源「VictoriaMetrics」**,不是「Prometheus」(中央自抓数据在 Prometheus)。
|
||||
- 确认边缘已部署且 remote_write 指向中央 8428;边缘 Prometheus 日志无推送错误。
|
||||
|
||||
---
|
||||
|
||||
## 相关文档
|
||||
|
||||
- 部署顺序总览:[README.md#部署顺序](README.md)
|
||||
- 中央配置:[CENTRAL_SERVER_CONFIG.md](CENTRAL_SERVER_CONFIG.md)、[central-server/CONFIGURATION.md](../central-server/CONFIGURATION.md)
|
||||
- 边缘配置与目标:[EDGE_NODE_SETUP.md](EDGE_NODE_SETUP.md)、[EDGE_AGENT_CONFIG.md](EDGE_AGENT_CONFIG.md)、[TARGETS_CSV_GUIDE.md](TARGETS_CSV_GUIDE.md)
|
||||
- 架构:[ARCHITECTURE.md](ARCHITECTURE.md)
|
||||
- 故障排查:[TROUBLESHOOTING.md](TROUBLESHOOTING.md)
|
||||
Reference in New Issue
Block a user