Prometheus 告警分配到指定接收組


Prometheus 告警分配到指定接收組

route屬性用來設置報警的分發策略,它是一個樹狀結構,按照深度優先從左向右的順序進行匹配。

 

主要處理流程:
1. 接收到Alert,根據labels判斷屬於哪些Route(可存在多個Route,一個Route有多個Group,一個Group有多個Alert)。
2. 將Alert分配到Group中,沒有則新建Group。
3. 新的Group等待group_wait指定的時間(等待時可能收到同一Group的Alert),根據resolve_timeout判斷Alert是否解決,然后發送通知。
4. 已有的Group等待group_interval指定的時間,判斷Alert是否解決,當上次發送通知到現在的間隔大於repeat_interval或者Group有更新時會發送通知。

route:
  receiver: 'default-receiver'  
  # 為一個組發送通知的初始等待時間,默認30s、等待是時間內為了合並更多同類郵件
  group_wait: 30s
  # 在發送新告警前的等待時間。通常5m或以上、第二組發送郵件間隔時間
  group_interval: 5m
  # 發送重復告警的周期。如果已經發送了通知,再次發送之前需要等待多長時間。通常3小時或以上
  repeat_interval: 4h
  # 報警分組依據,根據標簽進行分組
  group_by: [cluster, alertname]

  # 所有不匹配以下子路由的告警都將保留在根節點,並發送到“default-receiver”
  routes:
    
    # 所有service=mysql或者service=cassandra的告警分配到數據庫接收端
  - receiver: 'database-pager'
    group_wait: 10s
    match_re:
      # 使用正則匹配告警包含兩個服務,發送到database-page
      service: mysql|cassandra
    
    # 所有帶有team=frontend標簽的告警都與此子路由匹配
    # 它們是按產品和環境分組的,而不是集群
  - receiver: 'frontend-pager'
    group_by: [product, environment]
    match:
      # 所有告警標簽帶有frontend發送到frontend-pager
      team: frontend

# receiver標記:告警接受者 
receivers:
# name:報警來源自定義名稱
- name: 'database-pager'
      # email_configs:通過郵箱發送報警
      email_configs:
        # to:指定接收端email
        - to: 'xiangsikai@126.com'
- name: 'frontend-pager'
      # email_configs:通過郵箱發送報警
      email_configs:
        # to:指定接收端email
        - to: 'xiangsikai@126.com'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM