- 中央:config/(prometheus,alertmanager,grafana)、apps/(tile-cache,topology-editor) - 边缘:config/(vmagent,blackbox,targets)、apps/(onvif-exporter) - env: TRAEFIK_PROVIDER、prometheus/env.example 详细说明 - 文档:README/doc 重构,EDGE_CACHE 合并到 EDGE_AGENT_CONFIG - targets.csv 更新流程说明,ARCHITECTURE 图收窄 Made-with: Cursor
2.2 KiB
告警与通知
本文说明告警规则、如何激活,以及 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、DEPLOYMENT_GUIDE)→ 在 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 中追加或修改规则,例如:
- alert: ExampleAlert
expr: your_metric > threshold
for: 5m
labels:
severity: warning
annotations:
summary: "示例告警"
修改后若 Prometheus 启用了 --web.enable-lifecycle,可 curl -X POST http://localhost:9091/-/reload 重载。