Prometheus: 配置 Alert Manager

本文件是警报指南的一部分。您可以在这里查看完整指南:Prometheus 警报的工作原理及其配置方法

👋 欢迎来到 Stackhero 文档!

Stackhero 提供即用型 Prometheus 云 解决方案,具有多种优势,包括:

  • 包含 Alert Manager,可发送警报到 SlackMattermostPagerDuty 等。
  • 专用邮件服务器发送无限制邮件警报
  • Blackbox 用于探测 HTTPICMPTCP 等。
  • 使用在线配置文件编辑器进行轻松配置
  • 只需点击即可轻松更新
  • 专用私有 VM提供的最佳性能和强大安全性

节省时间简化生活:只需 5 分钟即可试用 Stackhero 的 Prometheus 云托管 解决方案!

要配置 Alert Manager,请编辑 alert-manager.yml 文件。在您的 Stackhero 仪表板中,选择您的 Prometheus 服务,然后点击“Alert Manager 配置”。

下面,我们介绍基础知识。有关更多详细信息,请参阅官方文档

第一步是配置 receivers。每个 receiver 是一组通知集成(如电子邮件、Slack 等),由唯一的 name 标识。

例如,您可以创建一个名为 "critical_alert" 的接收器,用于由严重警报触发的通知。或者,您可以创建一个像 "devops_team" 的接收器,将警报定向到您的 DevOps 团队。

仅将 receiver 名称设置为 "critical_alert" 不会发送警报。警报与接收器之间的关联是在下面描述的 routes 配置中完成的。

定义接收器后,您需要设置相应的通知集成。这些可能包括电子邮件、Slack/Mattermost 通知、PagerDuty、Opsgenie、Webhook 等。

以下是一个名为 "critical_alert" 的 receiver 示例,它向两个用户发送电子邮件,并向 #alerts 频道发送 Slack 消息:

receivers:
- name: "critical_alert"

  # 通过电子邮件发送严重警报
  email_configs:
    - send_resolved: true
      to: "[email protected]"

  # 向 Slack 或 Mattermost 发送严重警报
  slack_configs:
    - send_resolved: true
      api_url: "<your Slack or Mattermost API URL>"
      channel: "#alerts"
      title: "{{ range .Alerts }}{{ .Annotations.summary }}\n{{ end }}"
      text: "{{ range .Alerts }}{{ .Annotations.description }}\n{{ end }}"

您可以定义多个接收器来处理不同类型的警报。例如,您可能有一个用于严重警报,另一个用于错误警报,还有一个用于其他类型的警报。

Stackhero for Prometheus 实例包括一个专用和私有的电子邮件服务器,允许您无限制地发送电子邮件警报,无需额外费用。

配置完接收器后,您需要设置 routes。路由告诉 Alert Manager 如何处理来自 Prometheus 的传入警报以及将其发送到哪里(通常是到您预配置的接收器之一)。

以下是一个基本示例,将严重性为 "critical" 的警报定向到名为 "critical_alert" 的接收器:

route:
  routes:
    - match:
        severity: "critical"
      receiver: "critical_alert"

我们已在提供的 Stackhero for Prometheus 实例的 alert-manager.yml 文件中预配置了一些路由。要开始接收警报,只需更新 email_configs 和/或 slack_configs 部分,填写您的通知详细信息。