# 告警与通知 本文说明告警规则、如何激活,以及 Alertmanager 的配置与通知渠道。 --- ## 告警规则(alert_rules.yml) 中央已内置 `central-server/config/prometheus/alert_rules.yml`,主要包含: | 规则 | 条件 | 说明 | |------|------|------| | ONVIFDeviceDown | `up{job="onvif-devices"} == 0` 持续 1m | ONVIF 设备离线 | | NetworkDeviceDown | `probe_success{job="network-ping"} == 0` 持续 2m | 网络设备 Ping 不通 | | HighNetworkLatency | `probe_duration_seconds{job="network-ping"} > 1` 持续 5m | Ping 延迟过高 | **为何显示 Inactive**:规则依赖边缘推送的指标。需先部署边缘、配置 Ping/ONVIF 目标,数据经 remote_write 到 VictoriaMetrics 后,规则才会评估;无数据时保持 inactive。 **激活步骤**:完成边缘部署(见 [README](README.md)、[DEPLOYMENT_GUIDE](DEPLOYMENT_GUIDE.md))→ 在 Grafana 选 VictoriaMetrics 数据源确认有 `probe_success{job="network-ping"}` 等 → Prometheus 会从 VictoriaMetrics 取数并评估规则。 --- ## Alertmanager 配置(alertmanager.yml) 路径:`central-server/config/alertmanager/alertmanager.yml`。 - **route**:分组(group_by)、等待时间(group_wait)、重复间隔(repeat_interval)、默认接收器(receiver)。 - **receivers**:当前示例为 webhook `http://127.0.0.1:5001/`。 **注意**:容器内 127.0.0.1 指向自身,若 webhook 在宿主机,应改为 `http://host.docker.internal:5001/` 或宿主机 IP。 - **inhibit_rules**:critical 抑制同实例的 warning,减少告警风暴。 **常用接收器类型**:`email_configs`、`wechat_configs`、`dingtalk_configs`、`webhook_configs`。按需替换为邮件、企业微信、钉钉或自建 webhook。 **验证**:`docker exec alertmanager amtool check-config /etc/alertmanager/alertmanager.yml`;Web UI:http://localhost:9093。 --- ## 自定义告警规则 在 `config/prometheus/alert_rules.yml` 中追加或修改规则,例如: ```yaml - alert: ExampleAlert expr: your_metric > threshold for: 5m labels: severity: warning annotations: summary: "示例告警" ``` 修改后若 Prometheus 启用了 `--web.enable-lifecycle`,可 `curl -X POST http://localhost:9091/-/reload` 重载。