Alertmanager

Alertmanager 处理由客户端应用程序(例如 Prometheus 服务器)发送的告警。它负责对告警进行去重、分组,并将其路由到正确的接收器集成,例如电子邮件、PagerDuty 或 OpsGenie。它还负责告警的静默和抑制。

以下描述了 Alertmanager 实现的核心概念。请查阅配置文档以了解如何更详细地使用它们。

分组

分组将性质相似的告警归类到一个通知中。这在发生大规模中断时尤其有用,因为许多系统会同时发生故障,可能同时触发数百到数千个告警。

示例:当发生网络分区时,您的集群中正在运行数十或数百个服务实例。其中一半的服务实例无法再访问数据库。Prometheus 中的告警规则配置为,如果每个服务实例无法与数据库通信,则发送一条告警。结果,数百条告警被发送到 Alertmanager。

作为用户,您只希望收到一页通知,同时仍能准确查看哪些服务实例受到影响。因此,可以将 Alertmanager 配置为按集群和告警名称对告警进行分组,以便发送单个紧凑的通知。

告警分组、分组通知的时间以及这些通知的接收者,都是通过配置文件中的路由树进行配置的。

抑制

抑制是一种概念,用于在某些告警已触发的情况下,抑制其他特定告警的通知。

示例:一条告警正在触发,通知整个集群无法访问。如果该特定告警正在触发,可以将 Alertmanager 配置为静音所有与此集群相关的其他告警。这可以防止收到与实际问题无关的数百或数千条触发告警的通知。

抑制是通过 Alertmanager 的配置文件配置的。

静默

静默是一种简单直接的方式,可以在给定时间内静音告警。静默的配置基于匹配器,就像路由树一样。Alertmanager 会检查传入的告警是否与活动静默的所有等式或正则表达式匹配器匹配。如果匹配,则不会发送该告警的通知。

静默在 Alertmanager 的 Web 界面中配置。

客户端行为

Alertmanager 对其客户端的行为有特殊要求。这些仅适用于不使用 Prometheus 发送告警的高级用例。

高可用性

Alertmanager 支持配置集群以实现高可用性。这可以通过使用`--cluster-*` 标志进行配置。

重要的是不要在 Prometheus 和其 Alertmanager 之间进行负载均衡,而是将 Prometheus 指向所有 Alertmanager 的列表。

本页内容