九、监控与告警运维

1. 监控数据链路

单节点和 HA 均使用 VictoriaMetrics 代替 Prometheus 存储。默认保留周期为 30 天。

HA 环境的监控架构数据流如下:

  • 业务服务拉取云平台监控数据,通过 Remote Write 发送到 node1 vmagent(:8429)和 node2 vmagent(:8429);
  • Exporter 与中间件指标被 node1 vmagent 和 node2 vmagent 抓取;
  • node1 vmagent将数据同时写入本机 VictoriaMetrics :9090 和对端 node2 VictoriaMetrics :9090;
  • node2 vmagent将数据同时写入本机 VictoriaMetrics :9090 和对端 node1 VictoriaMetrics :9090;
  • node1 vmalert 读取 node1 VictoriaMetrics,计算后通知 node1 Alertmanager 和 node2 Alertmanager;
  • node2 vmalert 读取 node2 VictoriaMetrics,计算后通知 node1 Alertmanager 和 node2 Alertmanager;
  • 两个 Alertmanager 通过 Gossip 协议(:9094)组成集群,同步并去重告警,最终通过 Webhook 回调发送到 Portal 告警回调接口。

关键机制:

  • vmagent 将数据同时写入本机和对端 VictoriaMetrics;
  • VictoriaMetrics 使用 10 秒去重窗口处理双写数据;
  • 两个 vmalert 分别读取本地 VictoriaMetrics,并同时通知两个 Alertmanager;
  • 两个 Alertmanager 使用 9094 端口组成集群并同步、去重告警;
  • vmalert 每 30 秒检查规则配置变化;
  • vmagent 每 30 秒检查抓取配置变化;
  • HA 节点每 3 分钟同步 rules、targets 和上传资源。

2. 组件健康检查

curl -fsS http://127.0.0.1:9090/health
curl -fsS http://127.0.0.1:8429/health
curl -fsS http://127.0.0.1:8880/health
curl -fsS http://127.0.0.1:9093/-/ready

查看规则:

curl -fsS http://127.0.0.1:8880/api/v1/rules

查看当前告警:

curl -fsS http://127.0.0.1:9093/api/v2/alerts

查看 Alertmanager 集群:

curl -fsS http://127.0.0.1:9093/api/v2/status

查询指标:

curl -fsSG \
  --data-urlencode 'query=count(up)' \
  http://127.0.0.1:9090/api/v1/query

3. 告警回调

当前告警回调地址为:

http://127.0.0.1:8200/portal/v4/pub/webhook/alertManager

Alertmanager 日志中出现 webhook 4xx/5xx 时,说明规则可能已经触发,但业务系统没有成功接收告警。排查顺序:

  1. 在 vmalert API 中确认规则是否为 pendingfiring
  2. 在 Alertmanager API 中确认是否存在 active alert;
  3. 检查 Alertmanager 日志中的 webhook HTTP 状态;
  4. 检查 app-gateway、app-portal 的容器和日志;
  5. 确认两个 HA 节点的 Alertmanager 配置一致。
运维手册 | ZStack CMP · ZCF | ZStack 资源中心