Files
Distributed-Prometheus/doc/ALERT_RULES_EXPLANATION.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.2 KiB
Raw Blame History

告警规则说明

告警规则概述

当前配置了两组告警规则,用于监控 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部署边缘节点代理

cd ../edge-agent
bash deploy.sh

步骤 2配置监控目标

  1. 配置 ONVIF 设备

    • 编辑 edge-agent/config/devices.csv
    • 添加要监控的 ONVIF 设备信息
  2. 配置网络探测目标

    • 编辑 edge-agent/config/ping-targets.csv
    • 添加要监控的网络设备 IP 地址

步骤 3更新配置

cd edge-agent/config
./update-configs.sh

步骤 4验证数据推送

  1. 在 Prometheus 中查询指标:

    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 中添加更多告警规则,例如:

- alert: CustomAlert
  expr: your_metric > threshold
  for: 5m
  labels:
    severity: warning
  annotations:
    summary: "自定义告警"
    description: "描述信息"

修改后Prometheus 会自动重新加载配置(如果启用了 --web.enable-lifecycle)。