故障自癒處理器(Event Recover)— 在告警觸發後執行修復指令稿,蒐集更多上下文或自動嘗試修復。
概述
告警自癒處理器(Event recover)是一種告警自癒的手段。在告警發生後,它透過執行設定指令稿,可用於取得更多告警相關資訊或執行自癒任務。
使用場景
場景一:服務回應慢告警查詢主機負載
如果產生服務回應時間慢相關告警,可以在指令稿中取得機器負載相關資料。
場景二:主機磁碟使用率告警,使用指令稿進行查詢或處理
如果產生磁碟使用率告警,在某些維運場景下,例如某些服務日誌是明確需要定時清理的,可以在指令稿中查詢相關目錄日誌大小,並自動進行日誌清理。
設定說明
1. 設定 Event Recover 事件處理器

這裡輸入自癒範本、執行機器與參數。 執行機器如果為空,執行的時候會使用告警中的 ident 標籤指定的機器。如果開啟儲存執行結果,結果將會被儲存到告警訊息中。目前的機制會同步等待結果執行完成後,再傳送告警訊息。如果超過執行等待時間後,自癒任務還未執行完成,則不會繼續等待,直接傳送告警訊息。
2. 設定自癒範本
如果未設定自癒範本,可以在告警自癒選單中設定自癒範本。
3. 執行結果
自癒任務執行完成後,可在告警詳情頁面中檢視自癒任務執行結果。

注意事項
在實踐中,等待自癒任務完成的時間,不建議設定太長。告警在等待時間結束後才會傳送,過長的等待時間會影響告警訊息的時效性。
常見問題
Q1:自癒任務執行後告警還是發出去了,是不是沒生效?
A:故障自癒處理器不會自動阻止告警通知 — 它只是觸發一個指令稿 + 等結果。是否發通知由通知規則決定。常見做法:
- 想「先嘗試修復、修復成功就不發通知」:用 事件抑制(基於查詢),讓指令稿修復後寫一個標記指標,下一週期發現指標存在就抑制告警;
- 單純想給告警附加診斷資訊:本處理器開啟「儲存執行結果」即可,結果會作為註解出現在通知裡。
Q2:自癒指令稿的執行機器從哪裡取?
A:處理器設定時填寫:
- 指定主機:手動選一台或一組機器;
- 留空:預設用告警事件中
ident標籤指代的主機 — 即「告警是哪台機器,就在哪台執行」。要求事件標籤裡必須有ident。
Q3:逾時後任務還會繼續跑嗎?
A:會。處理器只等「設定的等待時間」到了就放行告警通知,自癒任務在目標機器上繼續跑。結果可以稍後在 歷史任務 / 自癒指令稿 裡檢視。
Q4:能不能同時觸發多個自癒指令稿?
A:單個處理器節點只設定一個指令稿。要平行多個指令稿,可以新增多個 Event Recover 節點在同一流水線裡。