事件抑制處理器(Inhibit)— 自動辨識並抑制相關聯的次要告警,讓值班同事專注於最重要的問題。
概述
告警抑制(Inhibit)是一種告警降噪的機制,它能夠自動辨識並抑制相關聯的次要告警,讓您專注於處理最重要的問題。當系統出現嚴重故障時,往往會觸發大量的關聯告警,告警抑制功能可以協助您減少不必要的告警噪音,提升故障處理效率。
核心價值
1. 減少告警風暴
當核心服務故障時,依賴它的下游服務也會產生大量告警。告警抑制能夠根據設定,自動抑制衍生的次要告警。
2. 聚焦關鍵問題
透過抑制低優先順序告警,讓維運人員能夠專注於處理高優先順序的核心問題,避免被大量告警資訊淹沒。
使用場景
場景一:依嚴重等級抑制
問題描述:同一個服務同時觸發了 P1、P2、P3 等級的告警,但只想收到最嚴重的 P1 告警通知。
設定範例:
- 新告警條件:severity >= 2(P2 或 P3 等級)
- 活躍告警條件:severity = 1(P1 等級)
- 相同項比對:標籤 service、host
- 效果:當存在 P1 等級告警時,相同服務和主機的 P2、P3 告警將被抑制
場景二:服務依賴鏈抑制
問題描述:資料庫故障導致多個應用服務告警,您希望只收到資料庫的告警,抑制應用層的告警。
設定範例:
- 新告警條件:service_type = “application”
- 活躍告警條件:service_type = “database”
- 相同項比對:標籤 cluster、env
- 效果:當資料庫層出現告警時,同叢集同環境的應用層告警將被抑制
設定步驟
步驟 1:進入事件流水線設定
- 登入監控平台
- 導覽至 通知管理 > 編輯通知規則
- 點選 事件流水線設定 或使用現有流水線

步驟 2:新增抑制處理器
- 在處理器管理清單,點選 新增
- 選擇處理器類型為 Inhibit(告警抑制)

步驟 3:設定抑制條件
3.1 設定新告警過濾條件
定義哪些新產生的告警需要被評估是否應該抑制。
設定項說明:
- 標籤條件:基於告警標籤的過濾條件
- 範例:
severity="warning"或priority>=2
- 範例:
- 屬性條件:基於告警屬性的過濾條件
- 範例:
业务组="电商平台"
- 範例:

3.2 設定活躍告警篩選條件
定義什麼樣的活躍告警會觸發抑制機制。
設定項說明:
- 時間視窗:在多少秒內存在符合條件的活躍告警(預設 300 秒)
- 標籤條件:活躍告警需要滿足的標籤條件
- 範例:
severity="critical"或priority=1
- 範例:
- 屬性條件:活躍告警需要滿足的屬性條件

3.3 設定比對規則
定義新告警和活躍告警之間需要有哪些相同的標籤或屬性。
關鍵設定:
- 相同標籤:需要完全比對的標籤鍵
- 常用標籤:service、host、cluster、env、region
- 相同屬性:需要完全比對的屬性
- 常用屬性:業務組、資料來源

步驟 4:測試設定
- 點選處理器卡片右下角的 測試 按鈕
- 選擇或輸入測試用的告警事件
- 檢視處理結果,確認抑制邏輯是否符合預期
步驟 5:儲存並啟用
- 確認所有設定無誤後,點選 儲存
- 確保事件流水線狀態為 啟用
- 設定將立即生效
進階技巧
1. 組合使用多個處理器
您可以在同一個事件流水線中組合使用多個處理器,例如:
- 先使用 Relabel 處理器規範化標籤
- 再使用 Inhibit 處理器進行告警抑制
- 最後使用 AI Summary 產生告警摘要
2. 分層抑制策略
對於複雜的系統架構,可以建立多層抑制策略:
- 基礎設施層:網路、儲存告警抑制主機告警
- 平台層:資料庫、中介軟體告警抑制應用告警
- 應用層:核心服務告警抑制邊緣服務告警
常見問題
Q1:告警被誤抑制了怎麼辦?
A:請檢查以下幾點:
- 檢視抑制條件是否過於寬泛
- 確認標籤比對是否正確
- 檢查時間視窗設定是否合理
- 使用測試功能驗證設定
Q2:如何檢視被抑制的告警?
A:被抑制的告警會在事件詳情的通知記錄中現在被抑制,您可以:
- 開啟對應的告警事件詳情頁面
- 點選下面的通知記錄,可以檢視是否被抑制
Q3:抑制規則的優先順序如何決定?
A:當設定多個抑制處理器時:
- 按照處理器在流水線中的順序依次執行
- 一旦告警被抑制,後續的抑制處理器將不再處理
- 可以透過拖曳調整處理器順序