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

4.4 KiB
Raw Blame History

边缘节点配置指南

在本机模拟边缘节点

前置条件

  1. Docker 和 Docker Compose 已安装
  2. 中央服务器已部署并运行
  3. 网络连通性正常

配置步骤

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.csvping-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 或本机 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. 🔔 配置告警规则(告警规则会自动激活)
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 与中央服务器冲突