Receiver 配置
Alertmanager Config Secret 包含 Alertmanager 實例的配置,該實例會根據從 Prometheus 收到的告警發送通知。
本章節假設您熟悉監控元件如何協同工作。如需有關 Alertmanager 的更多資訊,請參閱此章節。
在 Rancher UI 中建立 Receivers
- 需要安裝監控應用程式。
- 如果您使用現有的 Alertmanager Secret 配置監控,它必須具有 Rancher UI 支援的格式。否則,您只能透過直接修改 Alertmanager Secret 來進行變更。注意:我們持續改進 Routes 和 Receivers UI 可以支援的 Alertmanager 配置類型,因此如果您有功能增強請求,請提交問題。
- Rancher v2.6.5+
- Rancher before v2.6.5
- 前往您要建立 receivers 的叢集。點選 Monitoring -> Alerting -> AlertManagerConfigs。
- 點選 Create。
- 為新的 AlertmanagerConfig 輸入 Name。
- 點選 Create。
- 建立 AlertManagerConfig 後,點選它以新增 receiver。
- 點選 Add Receiver。
- 為 receiver 輸入 Name。
- 為 receiver 配置一個或多個提供者。如需填寫表單的協助,請參閱下面的配置選項。
- 點選 Create。
- 前往您要建立 receivers 的叢集。點選 Monitoring 然後點選 Receiver。
- 為 receiver 輸入名稱。
- 為 receiver 配置一個或多個提供者。如需填寫表單的協助,請參閱下面的配置選項。
- 點選 Create。
結果: 可以配置告警以將通知發送到 receiver。
Receiver 配置
通知整合是使用 receiver 配置的,這在 Prometheus 文件中有說明。
原生與非原生 Receivers
預設情況下,AlertManager 提供與一些 receivers 的原生整合,這些 receivers 列在此章節中。所有原生支援的 receivers 都可以透過 Rancher UI 進行配置。
對於 AlertManager 原生不支援的通知機制(例如 Telegram),整合是使用 webhook receiver 實現的。提供此類整合的第三方驅動程式清單可以在此處找到。透過 Alerting Drivers 應用程式提供對這些驅動程式及其相關整合的存取。啟用後,配置非原生 receivers 也可以透過 Rancher UI 完成。
目前 Rancher Alerting Drivers 應用程式提供以下整合:
- Microsoft Teams,基於 prom2teams 驅動程式。
- Telegram,基於 Sachet 驅動程式。
以下類型的 receivers 可以在 Rancher UI 中配置:
自訂 receiver 選項可用於以 YAML 配置任何無法透過填寫 Rancher UI 中其他表單配置的 receiver。
Slack
| 欄位 | 類型 | 說明 |
|---|---|---|
| URL | String | 輸入您的 Slack webhook URL。如需建立 Slack webhook 的說明,請參閱 Slack 文件。 |
| Default Channel | String | 輸入您想要以下列格式發送告警通知的頻道名稱:#<channelname>。 |
| Proxy URL | String | webhook 通知的代理。 |
| Enable Send Resolved Alerts | Bool | 是否在告警已解決時發送後續通知(例如 [Resolved] High CPU Usage)。 |
Email
| 欄位 | 類型 | 說明 |
|---|---|---|
| Default Recipient Address | String | 將接收通知的電子郵件地址。 |
| Enable Send Resolved Alerts | Bool | 是否在告警已解決時發送後續通知(例如 [Resolved] High CPU Usage)。 |
SMTP 選項:
| 欄位 | 類型 | 說明 |
|---|---|---|
| Sender | String | 輸入您 SMTP 郵件伺服器上可用的電子郵件地址,您想要從該地址發送通知。 |
| Host | String | 輸入您 SMTP 伺服器的 IP 位址或主機名稱。範例:smtp.email.com。 |
| Use TLS | Bool | 使用 TLS 進行加密。 |
| Username | String | 輸入用於向 SMTP 伺服器進行身份驗證的使用者名稱。 |
| Password | String | 輸入用於向 SMTP 伺服器進行身份驗證的密碼。 |
PagerDuty
| 欄位 | 類型 | 說明 |
|---|---|---|
| Integration Type | String | Events API v2 或 Prometheus。 |
| Default Integration Key | String | 如需取得整合金鑰的說明,請參閱 PagerDuty 文件。 |
| Proxy URL | String | PagerDuty 通知的代理。 |
| Enable Send Resolved Alerts | Bool | 是否在告警已解決時發送後續通知(例如 [Resolved] High CPU Usage)。 |
Opsgenie
| 欄位 | 說明 |
|---|---|
| API Key | 如需取得 API 金鑰的說明,請參閱 Opsgenie 文件。 |
| Proxy URL | Opsgenie 通知的代理。 |
| Enable Send Resolved Alerts | 是 否在告警已解決時發送後續通知(例如 [Resolved] High CPU Usage)。 |
Opsgenie Responders:
| 欄位 | 類型 | 說明 |
|---|---|---|
| Type | String | Schedule、Team、User 或 Escalation。如需有關告警回應者的更多資訊,請參閱 Opsgenie 文件。 |
| Send To | String | Opsgenie 接收者的 Id、Name 或 Username。 |
Webhook
| 欄位 | 說明 |
|---|---|
| URL | 您選擇的應用程式的 Webhook URL。 |
| Proxy URL | webhook 通知的代理。 |
| Enable Send Resolved Alerts | 是否在告警已解決時發送後續通知(例如 [Resolved] High CPU Usage)。 |
Custom
此處提供的 YAML 將直接附加到 Alertmanager Config Secret 中的 receiver。
Teams
為 Rancher 管理的叢集啟用 Teams Receiver
Teams receiver 不是原生 receiver,使用前必須先啟用。您可以前往 Apps 頁面並安裝選擇了 Teams 選項的 rancher-alerting-drivers 應用程式,為 Rancher 管理的叢集啟用 Teams receiver。
- 在 Rancher UI 中,前往您要安裝 rancher-alerting-drivers 的叢集並點選 Apps。
- 點選 Alerting Drivers 應用程式。
- 點選 Helm Deploy Options 標籤。
- 選擇 Teams 選項並點選 Install。
- 記下使用的命名空間,因為在後續步驟中會需要。
配置 Teams Receiver
-
若要配置 Teams receiver,請更新其 ConfigMap。以下範例是最小的 Teams receiver 配置:
[Microsoft Teams]
connector: https://your-teams-webhook-url -
更新配置後,請遵循在 Rancher UI 中建立 Receivers 中的說明新增 receiver。使用下面的範例來組成您的 URL。確保將
<namespace>替換為rancher-alerting-drivers應用程式的命名空間:url: http://rancher-alerting-drivers-prom2teams.<namespace>.svc:8089/v2/connector
SMS
為 Rancher 管理的叢集啟用 SMS Receiver
SMS receiver 不是原生 receiver,使用前必須先啟用。您可以前往 Apps 頁面並安裝選擇了 SMS 選項的 rancher-alerting-drivers 應用程式,為 Rancher 管理的叢集啟用 SMS receiver。
- 在左上角,點選 ☰ > Cluster Management。
- 在 Clusters 頁面上,前往您要安裝
rancher-alerting-drivers的叢集並點選 Explore。 - 在左側導覽列中,點選
- 點選 Alerting Drivers 應用程式。
- 點選 Helm Deploy Options 標籤
- 選擇 SMS 選項並點選 Install。
- 記下使用的命名空間,因為在後續步驟中會需要。
配置 SMS Receiver
SMS receiver 可以透過更新其 ConfigMap 進行配置。例如,以下是最小的 SMS receiver 配置。
providers:
telegram:
token: 'your-token-from-telegram'
receivers:
- name: 'telegram-receiver-1'
provider: 'telegram'
to:
- '123456789'
配置完成後,使用此章節中的步驟新增 receiver。
使用下面的範例作為名稱和 URL,其中:
- 分配給 receiver 的名稱,例如
telegram-receiver-1,必須與 ConfigMap 中receivers.name欄位中的名稱相符,例如telegram-receiver-1 - URL 中的
ns-1替換為安裝rancher-alerting-drivers應用程式的命名空間
name: telegram-receiver-1
url http://rancher-alerting-drivers-sachet.ns-1.svc:9876/alert
Telegram
為 Rancher 管理的叢集啟用 Telegram Receiver
Telegram receiver 不是原生 receiver。使用前必須先啟用。您可以前往 Apps 頁面並安裝選擇了 Telegram 選項的 rancher-alerting-drivers 應用程式,為 Rancher 管理的叢集啟用 Telegram receiver:
- 在左上角,點選 ☰ > Cluster Management。
- 在 Clusters 頁面上,前往您要安裝
rancher-alerting-drivers的叢集並點選 Explore。 - 在左側導覽列中,點選 Apps。
- 點選 Alerting Drivers 應用程式。
- 點選 Install。
- 在接下來開啟的頁面中,確保已選擇 Enable SMS 核取方塊。Telegram 通知需要您啟用 SMS。
- 記下使用的命名空間,因為在後續步驟中會需要。
透過配置 PrometheusRule 測試配置
若要測試您的 Telegram 設定,請建立一個持續發出告警的 PrometheusRule。
此規則僅用於測試 Telegram 告警是否按預期工作。測試完成後請勿將其保持啟用狀態。
- 在左側導覽選單中,點選 Monitoring。
- 點選 Advanced。
- 點選 PrometheusRules > Create。
- 選擇一個命名空間以放置規則並適當命名該規則。
- 將群組名稱設定為
test。稍後在 AlertManagerConfig 中建立 Route 時使用此值。 - 在 Alerting Rules 下點選 Add。
- 設定適當的 Alert Name。
- 若要立即並持續觸發告警,請輸入以下 PromQL 表達式:
vector(1)。 - 在 Labels 下,點選 Add Label。輸入鍵
test和值alert。此鍵值對稍後也會使用。
配置 AlertManagerConfig
配置 AlertManagerConfig 以包含上面建立的 PrometheusRule 的 Receiver 和 Route 配置:
- 點選 Monitoring > Alerting,並開啟 AlertManagerConfigs。
- 點選 Create
在 AlertManagerConfig 中建立 Receiver
- 從下拉選單中選擇一個命名空間並設定適當的名稱。
- 點選 Create。
- 開啟新建立的 AlertManagerConfig 並點選 ⋮ > Edit Config。
- 點選 Add Receiver。
- 在 Create Receiver in AlertmanagerConfig 頁面上的清單中選擇 Webhook。
- 為 webhook 命名,並點選 Add Webhook。
- 在 Select Webhook Type 下拉選單中,選擇 SMS。這將自動將 Target 欄位填入為
http://rancher-alerting-drivers-sachet.cattle-monitoring-system.svc:9876/alert。如果您在cattle-monitoring-system以外的命名空間中安裝了 Alerting Drivers,目標 URL 將反映這一點。 - 點選 Create。
在 AlertManagerConfig 中建立 Route
- 點選 ⋮ > Edit Config。
- 點選 Route。
- 在下拉選單中,選擇您剛剛建立的 Receiver。
- 在 Labels to Group Alerts By 欄位中,輸入
test。 - 在 Waiting and Intervals 下,將 Group Wait 設定為
1s,將 Group Interval 設定為10s。這會觸發頻繁的告警。根據需要更改值。 - 在 Matchers 下點選 Add Matcher。在 Name 欄位中輸入
test,在 Value 欄位中輸入alert。從 Match Type 下拉選單中,選擇MatchEqual。 - 點選 Save。
配置 Telegram Receiver
您可以透過更新 cattle-monitoring-system 命名空間中的 rancher-alerting-drivers-sachet ConfigMap 來配置 Telegram receiver。例如,以下是最小的 Telegram receiver 配置:
providers:
telegram:
token: <your-token-from-telegram>
receivers:
- name: 'cattle-monitoring-system/test-amc/prom2tel'
provider: 'telegram'
to:
- '123456789'
若要取得 Telegram token,請設定 Telegram bot。詳細資訊請參閱官方 Telegram 指南。 完成 receiver 配置後,請新增它。
將 receiver 命名為 <namespace>/<alertmanagerconfig-name>/<receiver-name>。輸入 123456789 作為要發送通知的 Telegram 使用者 ID 的佔位符。若要查找您的 Telegram ID,請查看 Telegram userinfo bot。
您現在應該會收到發送到該使用者 ID 的 Telegram 通知。如果您沒有收到通知,請檢查 cattle-monitoring-system 命名空間下 Deployment rancher-alerting-drivers-sachet 的 Pod 中是否有任何錯誤報告。
配置多個 Receivers
透過在 Rancher UI 中編輯表單,您可以設定 Receiver 資源,其中包含 Alertmanager 發送告警到通知系統所需的所有資訊。
也可以將告警發送到多個通知系統。一種方法是使用自訂 YAML 配置 Receiver,在這種情況下,您可以新增多個通知系統的配置,只要您確定兩個系統都應該接收相同的訊息。
您還可以透過對路由使用 continue 選項來設定多個 receivers,以便發送到 receiver 的告警繼續在路由樹的下一層中進行評估,下一層可能包含另一個 receiver。
Alertmanager 配置範例
Slack
若要透過 Slack 設定通知,可以將以下 Alertmanager Config YAML 放入 Alertmanager Config Secret 的 alertmanager.yaml 鍵中,其中 api_url 應更新為使用您從 Slack 取得的 Webhook URL:
route:
group_by: ['job']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: 'slack-notifications'
receivers:
- name: 'slack-notifications'
slack_configs:
- send_resolved: true
text: '{{ template "slack.rancher.text" . }}'
api_url: <user-provided slack webhook url here>
templates:
- /etc/alertmanager/config/*.tmpl
PagerDuty
若要透過 PagerDuty 設定通知,請使用以下來自 PagerDuty 文件的範例作為指南。此範例設定了一個路由,用於捕獲資料庫服務的告警並將其發送到連結到服務的 receiver,該服務將直接在 PagerDuty 中通知 DBA,而所有其他告警將被導向到具有不同 PagerDuty 整合金鑰的預設 receiver。
以下 Alertmanager Config YAML 可以放入 Alertmanager Config Secret 的 alertmanager.yaml 鍵中。service_key 應更新為使用您的 PagerDuty 整合金鑰,並可以根據 PagerDuty 文件的「Integrating with Global Event Routing」章節找到。如需完整的配置選項清單,請參閱 Prometheus 文件。
route:
group_by: [cluster]
receiver: 'pagerduty-notifications'
group_interval: 5m
routes:
- match:
service: database
receiver: 'database-notifcations'
receivers:
- name: 'pagerduty-notifications'
pagerduty_configs:
- service_key: 'primary-integration-key'
- name: 'database-notifcations'
pagerduty_configs:
- service_key: 'database-integration-key'
合規掃描告警的範例路由配置
在配置 rancher-compliance 告警的路由時,您可以使用鍵值對 job: rancher-compliance-scan 指定匹配。
例如,以下範例路由配置可以與名為 test-compliance 的 Slack receiver 一起使用:
spec:
receiver: test-compliance
group_by:
# - string
group_wait: 30s
group_interval: 30s
repeat_interval: 30s
match:
job: rancher-compliance-scan
# key: string
match_re:
{}
# key: string
如需有關為 rancher-compliance-benchmark 啟用告警的更多資訊,請參閱此章節。
通知器的受信任 CA
如果您需要將受信任的 CA 新增到通知器,請遵循此章節中的步驟。