Files
Distributed-Prometheus/doc/EDGE_NODE_SETUP.md
Super User 95a09fd9d8 完善中央与边缘部署、远程写入与监控文档
- 增加中央与边缘完整配置和部署脚本
- 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明
- 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 04:24:40 -05:00

184 lines
4.4 KiB
Markdown
Raw 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.
# 边缘节点配置指南
## 在本机模拟边缘节点
### 前置条件
1. ✅ Docker 和 Docker Compose 已安装
2. ✅ 中央服务器已部署并运行
3. ✅ 网络连通性正常
### 配置步骤
#### 1. 配置中央服务器地址
编辑 `.env` 文件(如果不存在,从 `env.example` 复制):
```bash
cd edge-agent
cp env.example .env
nano .env
```
**重要配置**
```bash
# 如果中央服务器在本机使用本机IP或localhost
CENTRAL_SERVER_HOST=192.168.2.21 # 或使用 localhost
CENTRAL_SERVER_PORT=8428
# 边缘节点标识(每个节点唯一)
EDGE_NODE_ID=workernode_1
```
#### 2. 配置监控目标(统一配置)
**推荐使用统一的 `targets.csv` 配置文件**,可以在一个文件中同时配置 ONVIF 设备和网络 Ping 目标。
编辑 `config/targets.csv`
```csv
type,ip,device,group,network,device_type,model,location,username,password,onvif_port
ping,8.8.8.8,google_dns,external,external,,,,,,
ping,1.1.1.1,cloudflare_dns,external,external,,,,,,
# ONVIF 设备示例(取消注释并填写实际信息)
# onvif,192.168.1.100,,,front_door,camera,HIKVISION_DS-2CD2342WD-I,front_door,admin,password1,80
```
**说明**
- `type` 字段:`ping` 表示网络探测,`onvif` 表示 ONVIF 设备
- 如果没有 ONVIF 设备,可以只配置 `ping` 类型的目标
- 详细配置说明请参考:`doc/TARGETS_CSV_GUIDE.md`
**旧格式兼容**
如果使用旧的 `devices.csv``ping-targets.csv` 格式,脚本会自动识别并转换。
#### 3. 生成配置文件
```bash
cd config
chmod +x *.sh
./update-configs.sh
cd ..
```
这会生成:
- `config/onvif-targets.json` - ONVIF 设备配置
- `config/ping-targets.json` - 网络探测配置
#### 4. 修改端口映射(避免冲突)
**重要**:本机已有中央服务器运行,需要修改端口避免冲突。
编辑 `docker-compose.yml`,修改 Prometheus Edge 的端口:
**解决**:修改 `docker-compose.yml` 中的端口映射为 9092
#### 2. 无法连接到中央服务器
**问题**`CENTRAL_SERVER_HOST` 配置错误
**解决**
- 如果中央服务器在本机:使用 `localhost` 或本机 IP `192.168.2.21`
- 如果中央服务器在其他机器:使用正确的 IP 地址
- 确保防火墙开放 8428 端口
#### 3. ONVIF Exporter 报错
**问题**:没有真实的 ONVIF 设备或设备不可访问
**解决**
- 暂时可以忽略(不影响网络探测功能)
- 或配置正确的设备信息
#### 4. 数据未推送到中央服务器
**检查**
1. 查看边缘节点日志:`docker compose logs prometheus-edge`
2. 检查网络连通性:`curl http://192.168.2.21:8428/api/v1/write`
3. 检查中央服务器 VictoriaMetrics 是否运行:`docker ps | grep victoria`
### 测试配置
#### 最小化测试配置
如果只想测试数据推送功能,可以使用最小配置:
1. **清空 ONVIF 设备**`config/devices.csv` 留空)
2. **只配置网络探测**`config/ping-targets.csv` 添加几个公共 DNS
3. **部署并验证数据推送**
### 下一步
1. ✅ 边缘节点部署完成
2. ✅ 数据成功推送到中央服务器
3. 📊 在 Grafana 中创建仪表板查看数据
4. 🔔 配置告警规则(告警规则会自动激活)
```yaml
ports:
- "9092:9090" # 改为 9092避免与中央服务器冲突
```
#### 5. 修改 Prometheus Edge 配置
编辑 `prometheus-edge/prometheus.yml`
```yaml
global:
scrape_interval: 120s
evaluation_interval: 120s
external_labels:
region: workernode_1 # 边缘节点标识
user_group: "user-group-a" # 可选:添加用户组标签
```
#### 6. 部署边缘节点
```bash
bash deploy.sh
```
### 验证配置
#### 1. 检查服务状态
```bash
docker compose ps
```
应该看到:
- `prometheus-edge` - 运行中
- `onvif-exporter` - 运行中(如果没有设备可能报错,但不影响)
- `blackbox-exporter` - 运行中
#### 2. 检查数据推送
访问边缘节点 Prometheus
```bash
http://localhost:9092
```
查询指标:
```promql
up{job="network-ping"}
```
#### 3. 检查中央服务器接收数据
访问中央服务器 Grafana
```bash
http://localhost:3000
```
在 Prometheus 数据源中查询:
```promql
up{region="workernode_1"}
```
如果能看到数据,说明边缘节点已成功推送数据到中央服务器!
### 常见问题
#### 1. 端口冲突
**问题**:边缘节点 Prometheus 端口 9090 与中央服务器冲突