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: '
database-pager'#
email_configs:通過郵箱傳送報警
email_configs:
#to:指定接收端email
- to: '
'- name: '
frontend-pager'#
email_configs:通過郵箱傳送報警
email_configs:
#to:指定接收端email
- to: '
'
Prometheus告警收斂
告警面臨的最大問題 就是告警訊息太多,很可能會導致運維人員遺漏重要的告警資訊,或者一些無關緊要的小警報太多,收件人很容易麻木,可能不再理會。如果遺漏關鍵警報沒有及時處理可能會對系統業務造成重大故障。在這個問題上,alertmanager的告警收斂配置就變得尤為重要了。合理的分組將類似的警報進行分類。...
Prometheus 告警收斂
prometheus 告警收斂 告警面臨最大問題,是警報太多,相當於狼來了的形式。收件人很容易麻木,不再繼續理會。關鍵的告警常常被淹沒。在一問題中,alertmanger在一定程度上得到很好解決。prometheus成功的把一條告警發給了altermanager,而altermanager並不是簡簡...
Prometheus告警簡介
告警能力在prometheus的架構中被劃分成兩個獨立的部分。如下所示,通過在prometheus中定義alertrule 告警規則 prometheus會週期性的對告警規則進行計算,如果滿足告警觸發條件就會向alertmanager傳送告警資訊。在prometheus中一條告警規則主要由以下幾部分...