- 增加中央与边缘完整配置和部署脚本 - 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明 - 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例 Co-authored-by: Cursor <cursoragent@cursor.com>
131 lines
4.2 KiB
Markdown
131 lines
4.2 KiB
Markdown
# 告警规则说明
|
||
|
||
## 告警规则概述
|
||
|
||
当前配置了两组告警规则,用于监控 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`)。
|