Alertmanager
Alertmanager 会处理由 Prometheus 服务器等客户端应用程序发出的告警。它负责去重、分组并将告警路由到正确的接收者集成,如电子邮件、PagerDuty 或 OpsGenie。它还负责告警的静默和抑制。
以下描述了 Alertmanager 实现的核心概念。有关如何更详细地使用它们的更多信息,请参阅 配置文档。
分组
分组将性质相似的告警归类到单个通知中。这在发生大范围的故障时特别有用,因为许多系统可能同时出现故障,导致数百甚至数千条告警同时触发。
示例:当发生网络分区时,您的集群中运行着数十甚至数百个服务实例。一半的服务实例无法访问数据库。Prometheus 中的告警规则被配置为在每个服务实例无法与数据库通信时发送告警。结果,数百条告警被发送到 Alertmanager。
用户只想收到一个页面通知,同时又能看到具体受影响的服务实例。因此,可以配置 Alertmanager 按集群和告警名称对告警进行分组,从而发送单个精简的通知。
告警的分组、分组通知的计时以及这些通知的接收者是通过配置文件中的路由树进行配置的。
抑制
抑制是一种在某些告警已经触发时阻止发送其他告警通知的概念。
示例:一个告警触发,表明整个集群都无法访问。当该特定告警触发时,Alertmanager 可以配置为静默该集群的所有其他告警。这可以防止发送数百甚至数千条与实际问题无关的告警通知。
抑制通过 Alertmanager 的配置文件进行配置。
静默
静默是一种简单地在给定时间内屏蔽告警的方法。静默是基于匹配器配置的,就像路由树一样。传入的告警会与活动静默的所有相等或正则表达式匹配器进行检查。如果匹配,则不会为该告警发送任何通知。
静默是在 Alertmanager 的 Web 界面中配置的。
客户端行为
Alertmanager 对其客户端的行为有 特殊要求。这些仅与不使用 Prometheus 发送告警的高级用例相关。
高可用性
Alertmanager 支持配置以创建高可用性集群。这可以使用 --cluster-* 标志进行配置。
重要的是不要在 Prometheus 和其 Alertmanager 之间进行负载均衡,而是将 Prometheus 指向所有 Alertmanager 的列表。