Prometheus: 配置 Alert Manager

此文件屬於警報指南的一部分。請在此處查看完整指南:Prometheus 警報的運作方式及其配置方法

👋 歡迎來到 Stackhero 文件!

Stackhero 提供一個即用型的 Prometheus cloud 解決方案,帶來多項好處,包括:

  • 包含 Alert Manager,可發送警報至 SlackMattermostPagerDuty 等。
  • 專用電郵伺服器發送無限電郵警報
  • Blackbox 用於探測 HTTPICMPTCP 等。
  • 使用線上配置文件編輯器進行簡易配置
  • 只需點擊即可輕鬆完成更新
  • 專用私有 VM提供的最佳性能和強大安全性

節省時間簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Prometheus cloud hosting 解決方案!

要配置 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 實例中預配置了一些路由。要開始接收警報,只需更新 email_configs 和/或 slack_configs 部分,填寫您的通知詳情。