# 边缘节点配置指南 ## 在本机模拟边缘节点 ### 前置条件 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 与中央服务器冲突