Prometheus 一條告警的觸發流程、等待時間

Prometheus 一條告警的觸發流程、等待時間vim

報警處理流程以下:
1. Prometheus Server監控目標主機上暴露的http接口(這裏假設接口A),經過上述Promethes配置的'scrape_interval'定義的時間間隔,按期採集目標主機上監控數據。
2. 當接口A不可用的時候,Server端會持續的嘗試從接口中取數據,直到"scrape_timeout"時間後中止嘗試。這時候把接口的狀態變爲「DOWN」。
3. Prometheus同時根據配置的"evaluation_interval"的時間間隔,按期(默認1min)的對Alert Rule進行評估;當到達評估週期的時候,發現接口A爲DOWN,即UP=0爲真,激活Alert,進入「PENDING」狀態,並記錄當前active的時間;
4. 當下一個alert rule的評估週期到來的時候,發現UP=0繼續爲真,而後判斷警報Active的時間是否已經超出rule裏的‘for’ 持續時間,若是未超出,則進入下一個評估週期;若是時間超出,則alert的狀態變爲「FIRING」;同時調用Alertmanager接口,發送相關報警數據。
5. AlertManager收到報警數據後,會將警報信息進行分組,而後根據alertmanager配置的「group_wait」時間先進行等待。等wait時間事後再發送報警信息。
6. 屬於同一個Alert Group的警報,在等待的過程當中可能進入新的alert,若是以前的報警已經成功發出,那麼間隔「group_interval」的時間間隔後再從新發送報警信息。好比配置的是郵件報警,那麼同屬一個group的報警信息會彙總在一個郵件裏進行發送。
7. 若是Alert Group裏的警報一直沒發生變化而且已經成功發送,等待‘repeat_interval’時間間隔以後再重複發送相同的報警郵件;若是以前的警報沒有成功發送,則至關於觸發第6條條件,則須要等待group_interval時間間隔後重復發送。
同時最後至於警報信息具體發給誰,知足什麼樣的條件下指定警報接收人,設置不一樣報警發送頻率,這裏有alertmanager的route路由規則進行配置。lua

 

一、等待時間1spa

查看配置文件:vim prometheus.ymlcode

global:
  # 數據採集間隔
  scrape_interval:     15s 
  # 評估告警週期
  evaluation_interval: 15s 
 # 數據採集超時時間默認10s
 # scrape_timeout

 

二、等待時間2blog

配置文件:vim alertmanager.yml接口

# route標記:告警如何發送分配
route:
  # group_by:採用哪一個標籤做爲分組的依據
  group_by: ['alertname']
  # group_wait:分組等待的時間
  group_wait: 10s
  # group_interval:上下兩組發送告警的間隔時間
  group_interval: 10s
  # repeat_interval:重複發送告警時間。默認1h
  repeat_interval: 1m
  # receiver 定義誰來通知報警
  receiver: 'mail'
相關文章
相關標籤/搜索