- 增加中央与边缘完整配置和部署脚本 - 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明 - 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例 Co-authored-by: Cursor <cursoragent@cursor.com>
4.4 KiB
4.4 KiB
边缘节点配置指南
在本机模拟边缘节点
前置条件
- ✅ Docker 和 Docker Compose 已安装
- ✅ 中央服务器已部署并运行
- ✅ 网络连通性正常
配置步骤
1. 配置中央服务器地址
编辑 .env 文件(如果不存在,从 env.example 复制):
cd edge-agent
cp env.example .env
nano .env
重要配置:
# 如果中央服务器在本机,使用本机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:
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. 生成配置文件
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或本机 IP192.168.2.21 - 如果中央服务器在其他机器:使用正确的 IP 地址
- 确保防火墙开放 8428 端口
3. ONVIF Exporter 报错
问题:没有真实的 ONVIF 设备或设备不可访问
解决:
- 暂时可以忽略(不影响网络探测功能)
- 或配置正确的设备信息
4. 数据未推送到中央服务器
检查:
- 查看边缘节点日志:
docker compose logs prometheus-edge - 检查网络连通性:
curl http://192.168.2.21:8428/api/v1/write - 检查中央服务器 VictoriaMetrics 是否运行:
docker ps | grep victoria
测试配置
最小化测试配置
如果只想测试数据推送功能,可以使用最小配置:
- 清空 ONVIF 设备(
config/devices.csv留空) - 只配置网络探测(
config/ping-targets.csv添加几个公共 DNS) - 部署并验证数据推送
下一步
- ✅ 边缘节点部署完成
- ✅ 数据成功推送到中央服务器
- 📊 在 Grafana 中创建仪表板查看数据
- 🔔 配置告警规则(告警规则会自动激活)
ports:
- "9092:9090" # 改为 9092,避免与中央服务器冲突
5. 修改 Prometheus Edge 配置
编辑 prometheus-edge/prometheus.yml:
global:
scrape_interval: 120s
evaluation_interval: 120s
external_labels:
region: workernode_1 # 边缘节点标识
user_group: "user-group-a" # 可选:添加用户组标签
6. 部署边缘节点
bash deploy.sh
验证配置
1. 检查服务状态
docker compose ps
应该看到:
prometheus-edge- 运行中onvif-exporter- 运行中(如果没有设备可能报错,但不影响)blackbox-exporter- 运行中
2. 检查数据推送
访问边缘节点 Prometheus:
http://localhost:9092
查询指标:
up{job="network-ping"}
3. 检查中央服务器接收数据
访问中央服务器 Grafana:
http://localhost:3000
在 Prometheus 数据源中查询:
up{region="workernode_1"}
如果能看到数据,说明边缘节点已成功推送数据到中央服务器!
常见问题
1. 端口冲突
问题:边缘节点 Prometheus 端口 9090 与中央服务器冲突