Alertmanager

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

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

分组

分组将性质相似的警报归类到单个通知中。当发生大型中断时,尤其有用,此时许多系统同时发生故障,并且可能会同时触发数百到数千个警报。

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

作为用户,您只想收到一个单独的页面,同时仍然能够确切地看到哪些服务实例受到了影响。因此,您可以配置 Alertmanager 按其集群和警报名称对警报进行分组,以便它发送一个简洁的通知。

警报的分组、分组通知的时间以及这些通知的接收器由配置文件中的路由树配置。

抑制

抑制是指,如果某些其他警报已在触发,则抑制某些警报的通知的概念。

示例: 正在触发一个警报,指示整个集群不可访问。如果正在触发该特定警报,则可以配置 Alertmanager 来使所有其他与该集群有关的警报静音。这可以防止数百或数千个与实际问题无关的触发警报的通知。

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

静默

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

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

客户端行为

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

高可用性

Alertmanager 支持配置以创建高可用性集群。可以使用 --cluster-* 标志进行配置。

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

此文档是开源的。请提交问题或拉取请求来帮助改进它。