本文件介紹夜鶯監控(Nightingale)通知規則的功能說明及設定方法。通知規則支援按告警級別設定差異化通知策略,實現 Critical 級別告警通過電話/簡訊通知、Info 級別告警通過郵件通知等場景。

功能概述

夜鶯監控採用告警規則與通知規則分離的架構設計:

  • 告警規則:負責檢測指標異常並生成告警事件
  • 通知規則:負責定義告警事件的通知渠道、接收人及發送策略

該設計支援按告警級別設定差異化通知策略,例如:Critical 級別告警通過電話、簡訊、釘釘發送,Info 級別告警僅通過郵件發送。

架構優勢

相較於早期版本在告警規則中直接設定通知方式,當前架構具備以下優勢:

特性 說明
告警級別與通知媒介聯動 支援在啟用告警抑制的場景下,為不同級別的告警事件設定獨立的通知媒介
靈活的媒介接入方式 提供通用 HTTP 和指令碼發送方式,支援自訂 HTTP 參數、Header 及 Body
通知設定集中管理 告警規則與通知規則解耦,修改通知策略僅需調整通知規則,即可批次生效至關聯的所有告警規則
訊息範本自訂 支援為同一通知媒介設定多個訊息範本,滿足不同團隊的個性化需求

工作流程

告警事件的發送流程如下圖所示:

通知規則和告警規則的聯動邏輯

流程說明

  1. 告警規則檢測到異常指標後生成告警事件
  2. 告警事件根據關聯的通知規則確定發送策略
  3. 通知規則按照設定的媒介和接收人發送告警通知

多個告警規則可關聯同一通知規則,實現通知策略的統一管理。

通知規則設定

設定說明

通知規則支援為不同告警級別設定獨立的通知媒介。以下為設定範例:

通知規則設定範例

設定項說明

  • 生效級別:指定該通知媒介適用的告警級別(Critical/Warning/Info)
  • 通知媒介:選擇用於發送告警的渠道
  • 接收人/接收團隊:指定告警通知的接收人或團隊

內建通知媒介

系統預置以下通知媒介,可直接使用:

內建媒介列表

通知媒介變數設定

應用場景

當多個團隊需要使用同一類型的通知媒介但設定不同參數時(例如:DBA 團隊和大資料團隊使用不同的企業微信機器人),可通過變數設定實現。

設定方法

以企業微信機器人為例,內建的企微通知媒介包含以下兩個變數參數:

變數名 說明
Key 企業微信機器人的唯一識別碼
Bot Name 機器人名稱(備註資訊,便於識別)

在通知媒介的 HTTP 設定中引用變數(變數設定部分類似 function 的參數,下面部分類似 function 的實現,實現部分可以引用參數):

通知媒介變數定義

設定完成後,各團隊在建立通知規則時選擇企微媒介並填寫各自的機器人 Key 即可。

使用者聯絡方式關聯

對於簡訊、電話等需要使用使用者個人聯絡方式的場景,系統支援從使用者 Profile 中自動獲取聯絡資訊。

設定步驟

  1. 在通知媒介的變數設定中,將聯絡方式設定為相應類型(如 Phone)

通知媒介管理使用者 Profile

  1. 設定完成後,系統將自動實現以下功能:
    • 通知規則設定介面支援選擇聯絡人或團隊作為接收物件
    • HTTP 請求的 Body 或 Query String 中可使用 {{ $sendto }} 變數引用接收人的聯絡方式

說明{{ $sendto }} 為系統內建變數,用於動態獲取通知接收人的聯絡資訊。

媒介對接指南

IM 類媒介設定

請參考以下文件完成 IM 類通知媒介的對接:

通知媒介 設定文件
釘釘 對接釘釘告警
企業微信 對接企微告警
飛書 對接飛書告警
釘釘(含 @人功能) 對接釘釘告警-設定 @人
多媒介綜合設定 對接釘釘、飛書、企微通知
阿里雲簡訊 對接阿里雲簡訊

提示:微信視訊號「SRETALK」提供飛書告警對接的影片教程,可搜尋查看。

郵件告警設定

郵件告警設定包含以下 4 個步驟:

步驟 1:設定 SMTP 發信伺服器

  1. 進入 系統設定 > 通知媒介 選單
  2. 選擇內建的 Email 通知媒介,點擊編輯
  3. 填寫 SMTP 伺服器設定資訊:

郵件通知媒介設定

必填參數

參數 說明
伺服器 郵件伺服器主機名或 IP 位址
連接埠 郵件伺服器連接埠號(通常為 25、465 或 587)
使用者名稱 SMTP 伺服器認證使用者名稱
密碼 SMTP 伺服器認證密碼或授權碼
寄件者 用於發送告警郵件的郵箱位址

步驟 2:設定使用者收件郵箱

  1. 點擊頁面右上角使用者頭像
  2. 進入 個人資訊 設定頁面
  3. 在聯絡方式中填寫收件郵箱位址

步驟 3:建立郵件通知規則

  1. 進入 通知規則 選單
  2. 點擊 新建通知規則(或編輯現有規則)
  3. 設定通知規則參數:

郵件通知規則設定

設定項說明

設定項 說明
生效級別 選擇需要郵件通知的告警級別
通知媒介 選擇 Email
接收物件 選擇接收告警的使用者或團隊
  1. 點擊 通知測試,選擇一條歷史告警事件進行發送測試
  2. 在告警規則中關聯該通知規則

步驟 4:自訂郵件訊息範本(可選)

  1. 進入 訊息範本 選單
  2. 選擇 Email 訊息範本進行編輯

範本變數說明

變數名 說明
content 郵件正文內容
subject 郵件主題

說明:訊息範本使用 Go Template 語法,可根據業務需求自訂郵件內容格式。

常見問題

Q1:設定好通知規則後告警沒發出去,怎麼排查?

A:按這個順序:

  1. 告警有沒有觸發:去 活躍告警 看事件是否存在;
  2. 通知規則綁定:在告警規則編輯頁「通知設定」區是否選了這條通知規則;
  3. 生效級別:通知規則的「生效級別」是否覆蓋告警事件的級別;
  4. 接收人有聯絡方式:使用者設定裡對應渠道的欄位(郵箱/手機號/IM webhook)是否填了;
  5. 通知記錄:去活躍告警詳情抽屜點「通知記錄」看具體發送結果。

Q2:通知媒介裡填的釘釘機器人收不到訊息?

A:

  • 釘釘機器人的「安全設定」是否選了自訂關鍵詞 / 加簽 / IP 白名單?這些要和夜鶯這邊對應設定匹配;
  • 機器人 Webhook URL 是否完整(含 access_token=xxx 的參數);
  • 夜鶯 Server 能否出網存取 oapi.dingtalk.com

Q3:能不能給不同業務組的告警走不同的通知規則?

A:可以。通知規則本身支援配「適用業務組」 — 多條規則各管自己的業務組,告警事件根據業務組歸屬命中對應規則。

Q4:通知規則修改了,已發出去的告警會重發嗎?

A:不會。通知規則只對未來新觸發的事件生效,已經發出的通知不會回放。

參考資料

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云