Elasticsearch X-Pack Watcher是一個基於Elasticsearch實現的監控警示服務,可跟蹤網路,具備對基礎設施、索引資料和叢集健康等指標進行監控和警示的能力。通過為Elasticsearch添加X-Pack Watcher,可以實現當滿足某些條件時執行指定操作。
功能介紹
X-Pack Watcher主要由Trigger、Input、Condition和Actions組成。
Trigger:Watcher定時觸發器。
多久觸發一次Watcher,相當於多久執行一次input,支援多種調度觸發器。詳細資料,請參見Schedule Trigger。
Input:將資料載入到執行內容。
用於後續的Watcher執行階段,如果input沒有指定,將會載入一個空上下文。詳細資料,請參見Inputs。
Watcher支援以下input類型:
simple:將輸入待用資料載入到執行內容。例如手動輸入一段簡單的資料進行警示。
search:將搜尋結果載入到執行內容。例如全文檢索搜尋關鍵詞,對搜尋結果進行統計實現警示。
http:將HTTP請求結果載入到執行內容。例如通過Elasticsearch請求介面擷取叢集健康狀態、節點狀態等實現警示。
chain:將一系列的輸入資料載入到執行內容,這些資料一般是來自多個源。
Condition:執行Actions的條件。
滿足條件將會觸發下一步操作,如果不指定條件,預設為always。詳細資料,請參見Conditions。
Watcher支援以下condition類型:
always:條件總為true,始終執行Watcher Actions。
nerver:條件總為false,從不執行Watcher Actions。
compare:對Watcher承載中的值進行簡單比較,以確定是否執行Watcher Actions。
array_compare:將Watcher承載中的值數組與給定值進行比較,以確定是否執行Watcher Actions。
script:使用指令碼確定是否執行Watcher Actions。
Actions:警示接收對象。
常見的警示接收對象包括郵件、Webhook 、index和logging等。詳細資料,請參見Actions。
說明通過郵件接收警示存在連接埠限制,Elasticsearch不支援,建議通過Webhook進行郵件轉寄。
應用情境
當ES執行個體中的logs索引出現error日誌時,觸發系統自動發送警示郵件或DingTalk、企業微信訊息。具體操作,請參見配置DingTalk機器人接收X-Pack Watcher警示和配置企業微信機器人接收X-Pack Watcher警示。
實現CCR異常警示通知。具體操作,請參見通過X-Pack Watcher實現CCR異常警示通知。
注意事項
Elasticsearch執行個體的X-Pack Watcher功能預設關閉,需要您主動開啟。 具體操作,請參見配置YML參數。
舊網路架構下,X-Pack Watcher功能僅支援單可用性區域Elasticsearch執行個體,不支援多可用性區域執行個體。更多資訊,請參見【通知】網路架構調整。
新網路架構下,X-Pack Watcher功能受到網路限制,需要藉助私網串連功能打通網路限制。更多資訊,請參見配置執行個體私網串連和【通知】網路架構調整。
Elasticsearch的X-Pack Watcher功能不支援直接與公網通訊,需要基於執行個體的私網地址通訊。