完善中央与边缘部署、远程写入与监控文档

- 增加中央与边缘完整配置和部署脚本
- 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明
- 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Super User
2026-02-25 04:24:40 -05:00
parent 9e37f79a36
commit 95a09fd9d8
52 changed files with 5978 additions and 0 deletions

View File

@@ -0,0 +1,130 @@
# 告警规则说明
## 告警规则概述
当前配置了两组告警规则,用于监控 ONVIF 设备和网络设备的状态。
## 告警规则详解
### 1. ONVIF 设备告警组 (onvif_alerts)
#### ONVIFDeviceDown - ONVIF设备离线
- **触发条件**`up{job="onvif-devices"} == 0`
- **持续时间**1分钟
- **严重程度**critical严重
- **说明**:当 ONVIF 设备如摄像头无法访问或离线超过1分钟时触发
- **告警信息**:显示哪个设备实例离线
#### ONVIFDeviceHighTemperature - ONVIF设备温度过高
- **触发条件**`onvif_device_temperature > 70`
- **持续时间**2分钟
- **严重程度**warning警告
- **说明**当设备温度超过70°C时触发防止设备过热损坏
- **告警信息**:显示设备实例和当前温度值
#### ONVIFDeviceLowStorage - ONVIF设备存储空间不足
- **触发条件**`onvif_storage_usage_percent > 90`
- **持续时间**5分钟
- **严重程度**warning警告
- **说明**当设备存储使用率超过90%时触发,提醒需要清理存储空间
- **告警信息**:显示设备实例和存储使用率
### 2. 网络设备告警组 (network_alerts)
#### NetworkDeviceDown - 网络设备离线
- **触发条件**`probe_success{job="network-ping"} == 0`
- **持续时间**2分钟
- **严重程度**critical严重
- **说明**:当网络设备无法通过 ping 连通时触发
- **告警信息**:显示哪个网络设备实例无法访问
#### HighNetworkLatency - 网络延迟过高
- **触发条件**`probe_duration_seconds{job="network-ping"} > 1`
- **持续时间**5分钟
- **严重程度**warning警告
- **说明**当网络延迟超过1秒时触发表示网络质量下降
- **告警信息**:显示设备实例和延迟时间
## 为什么告警规则是 Inactive非活跃状态
告警规则显示为 **inactive** 的原因:
1. **缺少数据源**
- 这些告警依赖于边缘节点推送的数据
- 需要配置 `edge-agent` 并部署到边缘节点
- 边缘节点需要配置 ONVIF 设备和网络探测目标
2. **指标不存在**
- `up{job="onvif-devices"}` - 需要边缘节点运行 ONVIF Exporter
- `probe_success{job="network-ping"}` - 需要边缘节点运行 Blackbox Exporter
- 如果这些指标不存在,告警规则无法评估,所以是 inactive
3. **数据未推送**
- 边缘节点的数据需要通过 `remote_write` 推送到中央服务器
- 检查边缘节点是否正常连接并推送数据
## 如何激活告警规则?
### 步骤 1部署边缘节点代理
```bash
cd ../edge-agent
bash deploy.sh
```
### 步骤 2配置监控目标
1. **配置 ONVIF 设备**
- 编辑 `edge-agent/config/devices.csv`
- 添加要监控的 ONVIF 设备信息
2. **配置网络探测目标**
- 编辑 `edge-agent/config/ping-targets.csv`
- 添加要监控的网络设备 IP 地址
### 步骤 3更新配置
```bash
cd edge-agent/config
./update-configs.sh
```
### 步骤 4验证数据推送
1. 在 Prometheus 中查询指标:
```promql
up{job="onvif-devices"}
probe_success{job="network-ping"}
```
2. 如果能看到数据,告警规则会自动变为 **active** 状态
## 告警状态说明
- **Inactive非活跃**:告警规则已加载,但没有匹配的数据或条件未满足
- **Pending待触发**:条件满足,但未达到持续时间阈值
- **Firing触发中**:条件满足且持续时间达到阈值,告警已触发
- **Resolved已解决**:告警条件不再满足,告警已恢复
## 告警通知
当告警触发时,会发送到 Alertmanager然后根据配置发送通知
- 当前配置:发送到 webhook `http://127.0.0.1:5001/`
- 可以修改 `alertmanager/alertmanager.yml` 配置邮件、钉钉、企业微信等通知方式
## 自定义告警规则
可以在 `alert_rules.yml` 中添加更多告警规则,例如:
```yaml
- alert: CustomAlert
expr: your_metric > threshold
for: 5m
labels:
severity: warning
annotations:
summary: "自定义告警"
description: "描述信息"
```
修改后Prometheus 会自动重新加载配置(如果启用了 `--web.enable-lifecycle`)。