完善中央与边缘部署、远程写入与监控文档
- 增加中央与边缘完整配置和部署脚本 - 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明 - 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
183
doc/EDGE_NODE_SETUP.md
Normal file
183
doc/EDGE_NODE_SETUP.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# 边缘节点配置指南
|
||||
|
||||
## 在本机模拟边缘节点
|
||||
|
||||
### 前置条件
|
||||
|
||||
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 与中央服务器冲突
|
||||
Reference in New Issue
Block a user