Prometheus 的警报分为两个部分。Prometheus 服务器中的警报规则向 Alertmanager 发送警报。然后Alertmanager 管理这些警报,包括静音、抑制、聚合以及通过电子邮件、值班通知系统和聊天平台等方式发送通知。
Prometheus 的报警功能在 Prometheus 的架构中被划分为俩个独立的部分,如下图所示:
上图中,通过在 Prometheus 中定义 AlertRule(告警规则),Prometheus 会周期性的对告警规则进行计算,如果满足告警触发条件就会向 Alertmanager 发送告警信息。
AlertManager 作为一个独立的组件,主要负责接收并处理来自 Prometheus 服务的告警信息。
AlertManager 可以对这些告警信息进行进一步的处理,比如:当接收到大量重复告警时能够消除重复的告警信息,同时对告警信息进行分组并且路由到正确的通知方。
Prometheus 内置了对邮件,Slack 等多种通知方式的支持,同时还支持与 Webhook 的集成,以支持更多定制化的场景。同时,AlertManager 还提供了静默和告警抑制机制来对告警通知行为进行优化。
AlertManager 组件在 Prometheus 架构中的位置,如下图:
在 Prometheus 中,设置警报和通知的主要步骤是:
(1)设置和配置 Alertmanager
(2)配置 Prometheus 与 Alertmanager 对话
(3)在 Prometheus 中创建警报规则
注意:在后续章节中,我们将通过 Webhook 来接收 AlarmManager 发送的通知信息。