[英]Prometheus AlertManager - Send Alerts to different clients based on routes
[英]Prometheus and Alertmanager - route based on env label
我正在嘗試配置警報管理器,以便它根據特定 label 的值將警報發送到正確的通道。 我有 3 個松弛通道 - dev/staging/prod,我希望來自將“env”label 設置為 dev 的實例發送到 dev 松弛通道的警報。 Staging 和 prod 顯然會以相同的方式工作。 這是我的配置的一部分:
global:
resolve_timeout: 1m
slack_api_url: 'https://slack-url'
route:
group_by: [...]
receiver: 'default'
routes:
- match:
env: 'prod'
receiver: 'slack-notifications-prod'
- match:
env: 'staging'
receiver: 'slack-notifications-staging'
- match:
env: 'dev'
receiver: 'slack-notifications-dev'
receivers:
- name: 'default'
- name: 'slack-notifications-prod'
...
- name: 'slack-notifications-staging'
...
- name: 'slack-notifications-dev'
...
slack-notifications 接收器都是相同的,它們只有一件事不同,那就是適當的頻道名稱。
當前行為:所有警報都發送到 prod slack 通道
預期行為:來自“dev”env 的警報被發送到 dev 頻道,“staging”到 staging 頻道,“prod”到 prod 頻道。
Alertmanager 可以很好地看到這些標簽(從 alertmanager webUI 的信息來看)。
結果我的配置很好,我使用了一個只與一個松弛通道相關聯的 webhook URL,我不知道這一點。
您必須在第一場比賽中添加continue: true
屬性:
global:
resolve_timeout: 1m
slack_api_url: 'https://slack-url'
route:
group_by: [...]
receiver: 'default'
routes:
- match:
env: 'prod'
receiver: 'slack-notifications-prod'
continue: true
- match:
env: 'staging'
receiver: 'slack-notifications-staging'
- match:
env: 'dev'
receiver: 'slack-notifications-dev'
receivers:
- name: 'default'
- name: 'slack-notifications-prod'
...
- name: 'slack-notifications-staging'
...
- name: 'slack-notifications-dev'
...
AlertManager 將評估子路由,直到沒有路由或給定級別的路由與當前警報匹配。
在這種情況下,AlertManager 將采用評估的當前節點的配置。
continue 屬性是一個值,用於定義如果同一級別的路由已經匹配,是否要評估路由兄弟(屬於同一級別)。
https://devconnected.com/alertmanager-and-prometheus-complete-setup-on-linux/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.