Elastalert 報警規則
-
name:名稱,每個rule需要有自己獨立的name,一旦重複,進程將無法啓動。
-
type:規則匹配類型,選擇某一種數據驗證方式,下文會詳解。
-
index:ES索引,從某類索引裏讀取數據,目前已經支持Ymd格式,需要先設置 use_strftime_index:true,然後匹配索引,配置形如:index: logstash-es-test%Y.%m.%d,表示匹配logstash-es-test名稱開頭,以年月日作爲索引後綴的index。
-
filter:基於ES的條件篩選,設置向ES請求的過濾條件。
-
timeframe:時間段選擇,累積觸發報警的時長。
- alert:配置,設置觸發報警時執行哪些報警手段。不同的type還有自己獨特的配置選項,下文中會有提及。
規則type詳解:
-
any:只要有匹配就報警;
-
blacklist:compare_key字段的內容匹配上 blacklist數組裏任意內容;
-
whitelist:compare_key字段的內容一個都沒能匹配上whitelist數組裏內容;
-
change:在相同query_key條件下,compare_key字段的內容,在 timeframe範圍內發送變化;
-
frequency:在相同 query_key條件下,timeframe 範圍內有num_events個被過濾出來的異常;
-
spike:在相同query_key條件下,前後兩個timeframe範圍內數據量相差比例超過spike_height。其中可以通過spike_type設置具體漲跌方向是up,down,both 。還可以通過threshold_ref設置要求上一個週期數據量的下限,threshold_cur設置要求當前週期數據量的下限,如果數據量不到下限,也不觸發;
-
flatline:timeframe 範圍內,數據量小於threshold閾值;
-
new_term:fields字段新出現之前terms_window_size(默認30天)範圍內最多的terms_size (默認50)個結果以外的數據;
-
cardinality:在相同 query_key條件下,timeframe範圍內cardinality_field的值超過 max_cardinality 或者低於min_cardinality
- Percentage Match: 在buffer_time 中匹配所設置的字段的百分比高於或低於閾值時,此規則將匹配。默認情況下爲全局的buffer_time。