Alertmanager
Alertmanager 负责处理由客户端应用程序(如 Prometheus 服务器)发送的告警。它负责去重、分组并将其路由到正确的集成接收器,例如电子邮件、PagerDuty 或 OpsGenie。此外,它还负责静默和抑制告警。
以下描述了 Alertmanager 实现的核心概念。参阅配置文档以了解更详细的使用方法。
分组
分组(grouping)将相似性质的告警归类为单个通知。这在大规模故障期间特别有用,此时多个系统同时失败,可能同时触发数百至数千个告警。
示例:集群中运行着数十或数百个服务实例,当发生网络分区,服务实例中的一半无法再与数据库通信。Prometheus 中配置的告警规则为:如果服务实例无法与数据库通信,则会发送告警。结果将是数百个告警被发送到 Alertmanager。
作为用户,你只希望获得一个列表去看到哪些服务实例受到影响。因此,你可以配置 Alertmanager 按集群和告警名称对告警进行分组,以便发送单个更加紧凑的通知。
分组告警、分组通知的时间以及通知的接收者可以通过配置文件中的路由树进行配置。
抑制
抑制(inhibition)是一个概念,即在某些其他告警正在触发时抑制特定告警的通知。
示例:告知整个集群不可达的告警。Alertmanager 可以配置为如果该特定告警正在触发,则静默所有与此集群相关的其他告警。这防止了与实际问题无关的数百或数千个告警通知的发送。
抑制通过 Alertmanager 的配置文件进行配置。
静默
静默(silences)是一种静默给定时间内接收到的告警的简单方法。静默基于匹配器进行配置,就像路由树一样。当告警传入时,Alertmanager 会检查其是否匹配活动静默规则的所有等值或正则表达式匹配器。如果匹配,则不会发送任何通知。
静默可以在 Alertmanager 的 Web 界面中进行配置。
客户端行为
Alertmanager 对其客户端的行为有特殊要求,这些仅适用于高级用例,其中 Prometheus 不用于发送告警。
高可用
Alertmanager 支持配置创建高可用性集群。这可以通过使用 --cluster-*
标志进行配置。
较为重要的是,请不要在 Prometheus 和其 Alertmanagers 之间负载均衡流量,而是将 Prometheus 指向 Alertmanagers 列表。
该文档基于 Prometheus 官方文档翻译而成。