夜鶯 v9 抑制規則:在特定標籤/資料來源/時間視窗內壓制告警通知,處理計畫性維護、已知問題、非關鍵時段噪音。
概述
抑制規則 在指定標籤 / 資料來源 / 時間視窗內壓制告警通知。被命中的事件不會推送、不會出現在活躍告警列表,但告警引擎仍在評估(不影響告警狀態判定本身)。
側欄路徑:告警 → 規則管理 → 抑制規則 Tab,URL /alert-mutes。
適用場景:
- 計畫性維護:升級/重啟視窗期間,相關告警暫時不吵;
- 已知問題在處理:故障復盤中、暫未根治,不再重複通知;
- 非關鍵時段的低優先告警:夜間/節假日暫時靜默非核心告警;
- 測試環境噪音:開發/測試環境的高頻告警長期抑制,只透過儀表板看。
和**全局抑制(PLUS 獨有)的關鍵區別:抑制規則綁業務組**、只對本業務組生效;全局抑制跨所有業務組生效,是 Admin 用的「大開關」。
工作機制:層層過濾的漏斗
抑制規則像一個漏斗,事件必須全部滿足所有篩選條件才被壓制。邏輯關係是 業務組 AND 資料來源類型 AND 資料來源 AND 事件等級 AND 所有標籤條件 AND 時間視窗 — 缺一不可。
如果一條事件只命中其中部分條件,規則不生效。
表單欄位
| 區塊 | 欄位 | 必填 | 說明 |
|---|---|---|---|
| 基本資訊 | 抑制原因 | 否(建議) | 寫清楚「為什麼抑制 + 負責人 + 預期恢復時間」;列表裡的標題就是它 |
| 篩選條件 | 業務組 | 是 | 自動綁目前業務組,不可改 |
| 資料來源類型 | 否 | 不填 = 不限類型(Prometheus / Elasticsearch / MySQL…) | |
| 資料來源 | 否 | 不填 = 該類型下的所有實例 | |
| 事件級別 | 否 | 不填 = 不限級別(S1 / S2 / S3) | |
| 事件標籤 | 至少 1 條 | 標籤匹配條件,可以加多行 — 詳見下方「匹配運算符」 | |
| 抑制時長 | 抑制時間類型 | 是 | 固定時間 / 週期時間 |
| 起止時間 | 看類型 | 固定:選起止時間視窗;週期:選星期幾 + HH:MM 區間 |
匹配運算符(6 種)
事件標籤條件支援 6 種運算符,全部針對標籤的 value:
| 運算符 | 含義 | 範例 |
|---|---|---|
== |
等值匹配 | rulename == 測試伺服器掛載多個業務組告警 |
=~ |
正則匹配 | ident =~ flashcat|v63-192.168.0.2 |
!= |
等值不匹配(取反) | ident != pushgw-flashcat02-192.168.0.2 |
!~ |
正則不匹配(取反) | ident !~ flashcat(不含 flashcat 關鍵詞的全抑制) |
in |
屬於一個列表 | ident in (flashcat01-192.168.0.2, pushgw-flashcat02-192.168.0.2) |
not in |
不屬於一個列表 | ident not in (...) |
多條事件標籤條件之間是 AND(且)關係 — 一條事件需要同時滿足所有標籤條件才被抑制。
想用 OR 關係?把不同條件拆成多條抑制規則即可(任一規則命中就抑制)。
抑制時長:固定 vs 週期
固定時間
- 抑制時長:1h / 6h / 24h / 7d 等快捷選項;
- 抑制開始 / 結束時間:選時長後自動算出,也可手工改成任意區間;
- 預設時長快捷選項是 1h;想精確到分秒,手工編輯起止時間欄位。
週期時間
每週固定時段都抑制,長期生效。常用於「夜間維護視窗長期靜默」、「工作日午休時段不吵」等。
- 選週幾(多選週一到週日);
- 選起止時間(當天 HH:MM);
- 可加多個時段。
重要:被抑制事件的 TriggerTime 必須落在抑制時間範圍內。如果事件觸發於視窗前但持續到視窗內,不會被抑制 — 抑制看的是觸發時刻。
實操:臨時抑制某條已知告警
經典用法 — 從活躍告警裡帶標籤預填新建抑制:
- 去 活躍告警 → 點選該事件標題開啟詳情抽屜;
- 詳情抽屜底部點選「抑 制」按鈕 → 自動跳轉到
/alert-mutes/add,事件的標籤已預填到表單的事件標籤條件裡; - 調整抑制時長(預設 1h),填抑制原因;
- 儲存即可。
這條事件以及未來匹配相同標籤的事件都會被壓制。
常見問題
Q1:抑制規則儲存後,對應的告警事件還在活躍告警列表,正常嗎?
A:抑制規則只對新觸發的告警生效。已經存在的活躍告警不會被立即移除,需要等它自然恢復後才消失。如果想立刻讓它消失,詳情抽屜裡手工刪除該事件(注意:僅在確定指標不會再上報的情況下做,否則規則會再產生新事件)。
Q2:抑制規則和訂閱規則、全局抑制之間什麼關係?
A:
- 全局抑制(PLUS):跨所有業務組的抑制,最先評估,命中就過濾掉;
- 業務組抑制規則(本頁):只對本業務組生效;
- 訂閱規則(文件):相反 — 把別人業務組的事件訂閱過來;
三者關係是:先全局抑制過濾、再本地抑制過濾、最後剩下的發通知 / 訂閱給其他業務組。任一抑制命中事件就被壓制,不會重複抑制。
Q3:週期抑制跨天(如每天 22:00 到次日 06:00)怎麼寫?
A:拆成兩段:週一到週日 22:00-23:59 + 週一到週日 00:00-06:00。目前 UI 不支援單段跨日。
Q4:抑制規則生效後,被抑制事件還會被告警引擎評估嗎?會不會導致引擎壓力增加?
A:會評估 — 抑制規則只過濾通知和事件入庫,引擎照常 每個評估週期跑 PromQL。抑制對引擎本身幾乎零負擔,區別只在事件後端處理那一步。
Q5:怎麼批次設定抑制規則?比如運維週末把所有核心業務都抑制?
A:UI 沒有批次入口,兩種方式: