本文件介紹夜鶯監控(Nightingale)通知規則的功能說明及設定方法。通知規則支援按告警級別設定差異化通知策略,實現 Critical 級別告警通過電話/簡訊通知、Info 級別告警通過郵件通知等場景。
功能概述
夜鶯監控採用告警規則與通知規則分離的架構設計:
- 告警規則:負責檢測指標異常並生成告警事件
- 通知規則:負責定義告警事件的通知渠道、接收人及發送策略
該設計支援按告警級別設定差異化通知策略,例如:Critical 級別告警通過電話、簡訊、釘釘發送,Info 級別告警僅通過郵件發送。
架構優勢
相較於早期版本在告警規則中直接設定通知方式,當前架構具備以下優勢:
| 特性 | 說明 |
|---|---|
| 告警級別與通知媒介聯動 | 支援在啟用告警抑制的場景下,為不同級別的告警事件設定獨立的通知媒介 |
| 靈活的媒介接入方式 | 提供通用 HTTP 和指令碼發送方式,支援自訂 HTTP 參數、Header 及 Body |
| 通知設定集中管理 | 告警規則與通知規則解耦,修改通知策略僅需調整通知規則,即可批次生效至關聯的所有告警規則 |
| 訊息範本自訂 | 支援為同一通知媒介設定多個訊息範本,滿足不同團隊的個性化需求 |
工作流程
告警事件的發送流程如下圖所示:

流程說明:
- 告警規則檢測到異常指標後生成告警事件
- 告警事件根據關聯的通知規則確定發送策略
- 通知規則按照設定的媒介和接收人發送告警通知
多個告警規則可關聯同一通知規則,實現通知策略的統一管理。
通知規則設定
設定說明
通知規則支援為不同告警級別設定獨立的通知媒介。以下為設定範例:

設定項說明:
- 生效級別:指定該通知媒介適用的告警級別(Critical/Warning/Info)
- 通知媒介:選擇用於發送告警的渠道
- 接收人/接收團隊:指定告警通知的接收人或團隊
內建通知媒介
系統預置以下通知媒介,可直接使用:

通知媒介變數設定
應用場景
當多個團隊需要使用同一類型的通知媒介但設定不同參數時(例如:DBA 團隊和大資料團隊使用不同的企業微信機器人),可通過變數設定實現。
設定方法
以企業微信機器人為例,內建的企微通知媒介包含以下兩個變數參數:
| 變數名 | 說明 |
|---|---|
| Key | 企業微信機器人的唯一識別碼 |
| Bot Name | 機器人名稱(備註資訊,便於識別) |
在通知媒介的 HTTP 設定中引用變數(變數設定部分類似 function 的參數,下面部分類似 function 的實現,實現部分可以引用參數):

設定完成後,各團隊在建立通知規則時選擇企微媒介並填寫各自的機器人 Key 即可。
使用者聯絡方式關聯
對於簡訊、電話等需要使用使用者個人聯絡方式的場景,系統支援從使用者 Profile 中自動獲取聯絡資訊。
設定步驟:
- 在通知媒介的變數設定中,將聯絡方式設定為相應類型(如 Phone)

- 設定完成後,系統將自動實現以下功能:
- 通知規則設定介面支援選擇聯絡人或團隊作為接收物件
- HTTP 請求的 Body 或 Query String 中可使用
{{ $sendto }}變數引用接收人的聯絡方式
說明:
{{ $sendto }}為系統內建變數,用於動態獲取通知接收人的聯絡資訊。
媒介對接指南
IM 類媒介設定
請參考以下文件完成 IM 類通知媒介的對接:
| 通知媒介 | 設定文件 |
|---|---|
| 釘釘 | 對接釘釘告警 |
| 企業微信 | 對接企微告警 |
| 飛書 | 對接飛書告警 |
| 釘釘(含 @人功能) | 對接釘釘告警-設定 @人 |
| 多媒介綜合設定 | 對接釘釘、飛書、企微通知 |
| 阿里雲簡訊 | 對接阿里雲簡訊 |
提示:微信視訊號「SRETALK」提供飛書告警對接的影片教程,可搜尋查看。
郵件告警設定
郵件告警設定包含以下 4 個步驟:
步驟 1:設定 SMTP 發信伺服器
- 進入 系統設定 > 通知媒介 選單
- 選擇內建的 Email 通知媒介,點擊編輯
- 填寫 SMTP 伺服器設定資訊:

必填參數:
| 參數 | 說明 |
|---|---|
| 伺服器 | 郵件伺服器主機名或 IP 位址 |
| 連接埠 | 郵件伺服器連接埠號(通常為 25、465 或 587) |
| 使用者名稱 | SMTP 伺服器認證使用者名稱 |
| 密碼 | SMTP 伺服器認證密碼或授權碼 |
| 寄件者 | 用於發送告警郵件的郵箱位址 |
步驟 2:設定使用者收件郵箱
- 點擊頁面右上角使用者頭像
- 進入 個人資訊 設定頁面
- 在聯絡方式中填寫收件郵箱位址
步驟 3:建立郵件通知規則
- 進入 通知規則 選單
- 點擊 新建通知規則(或編輯現有規則)
- 設定通知規則參數:

設定項說明:
| 設定項 | 說明 |
|---|---|
| 生效級別 | 選擇需要郵件通知的告警級別 |
| 通知媒介 | 選擇 Email |
| 接收物件 | 選擇接收告警的使用者或團隊 |
- 點擊 通知測試,選擇一條歷史告警事件進行發送測試
- 在告警規則中關聯該通知規則
步驟 4:自訂郵件訊息範本(可選)
- 進入 訊息範本 選單
- 選擇 Email 訊息範本進行編輯
範本變數說明:
| 變數名 | 說明 |
|---|---|
| content | 郵件正文內容 |
| subject | 郵件主題 |
說明:訊息範本使用 Go Template 語法,可根據業務需求自訂郵件內容格式。
常見問題
Q1:設定好通知規則後告警沒發出去,怎麼排查?
A:按這個順序:
- 告警有沒有觸發:去 活躍告警 看事件是否存在;
- 通知規則綁定:在告警規則編輯頁「通知設定」區是否選了這條通知規則;
- 生效級別:通知規則的「生效級別」是否覆蓋告警事件的級別;
- 接收人有聯絡方式:使用者設定裡對應渠道的欄位(郵箱/手機號/IM webhook)是否填了;
- 通知記錄:去活躍告警詳情抽屜點「通知記錄」看具體發送結果。
Q2:通知媒介裡填的釘釘機器人收不到訊息?
A:
- 釘釘機器人的「安全設定」是否選了自訂關鍵詞 / 加簽 / IP 白名單?這些要和夜鶯這邊對應設定匹配;
- 機器人 Webhook URL 是否完整(含 access_token=xxx 的參數);
- 夜鶯 Server 能否出網存取
oapi.dingtalk.com。
Q3:能不能給不同業務組的告警走不同的通知規則?
A:可以。通知規則本身支援配「適用業務組」 — 多條規則各管自己的業務組,告警事件根據業務組歸屬命中對應規則。
Q4:通知規則修改了,已發出去的告警會重發嗎?
A:不會。通知規則只對未來新觸發的事件生效,已經發出的通知不會回放。