全部產品
Search
文件中心

Simple Log Service:設定動態接收人

更新時間:May 13, 2025

Log Service提供動態接收人功能,您可以通過Webhook服務設定警示通知的動態接收人。

使用情境

一般情況下,您在Log Service警示中建立使用者或使用者組後,可以在行動策略中選擇對應的使用者或使用者組作為警示通知的接收人,但是此方式並不能滿足特殊情境。例如:

  • 對接第三方的使用者管理系統:某些企業擁有自建的使用者管理系統,確保使用者管理系統與Log Service警示使用者即時同步存在較大困難。 並且企業擁有自己的組織架構,Log Service警示使用者、使用者組模型並不能完全適用。

  • 通知給動態連絡人:當您的系統中存在很多服務,且每個服務的警示需要通知給不同的接收人時,如果使用行動策略的動態指派機制,需要配置很多分支,也會增加維護成本。

工作原理

針對上述特殊情境,您可以使用動態接收人完成警示通知的接收人設定。通過動態接收人方式,您只需提供一個Webhook服務,Log Service警示發送時,會調用該Webhook服務,然後由該服務返回需要通知的使用者資訊。您無需在Log Service警示中維護接收人。

  • 動態接收人

  • 靜態接收人

配置說明

行動策略時,設定接收人類型動態接收人,然後配置如下參數。動態連絡人

參數

說明

接收人類型

選擇動態接收人

接收人回調地址

設定為Webhook服務地址。Webhook介面規範說明,請參見介面規範。相關限制說明如下:

  • 必須是公網可訪問的地址。

  • 介面延遲不超過10秒。

  • 返回的資料不超過2 KB。

  • 返回的狀態代碼必須是200。

  • 調用失敗時,最多重試3次。

重要

調用動態連絡人的Webhook與調用警示通知的Webhook類似,當您需要設定訪問限制時,可以通過設定IP白名單或設定HTTP Header的方式。更多資訊,請參見如何設定存取權限校正

要求標頭

在Log Service向接收人回調地址發送請求時,需要添加的要求標頭。

預設添加Content-Type: application/json要求標頭,因此設定Content-Type為其它值時不會生效。

介面規範

Request資訊

  • 要求方法:POST

  • 要求標頭:

    • 您自訂設定的要求標頭。

    • 預設要求標頭Content-Type: application/json

  • 請求資料格式樣本

    alerts為警示資訊(數群組類型),表示警示合并後的一個警示集合,最多包含10條警示,參數說明,詳細請參見內容範本變數說明(新版)。當您的Webhook服務接收到該資料後,會根據該資料判斷警示通知接收人,並將接收人資訊返回給Log Service。

    {
      "alerts": [
        {
          "alert_id": "test-alert-1",                  // 警示唯一標識
          "alert_instance_id": "jid-**********-a578-441e-8d25-42e92aef506c",  // 執行個體ID
          "alert_name": "Test Alert 1",                // 警示規則名稱
          "alert_time": 1646808904,                    // 本次評估時間
          "alert_type": "sls_alert",                   // 警示類型
          "aliuid": "123****3424",                     // 阿里雲帳號ID
          
          // 標註資訊
          "annotations": {
            "desc": "Test alert triggered",            // 描述
            "title": "Test Title"                      // 標註
          },
          
          // 觸發警示的資料
          "fire_results": [                            
            {"message": "error occurs"}                
          ],
          "fire_results_count": 1,                     // 觸發警示的資料的總條數
          "fire_time": 1646808904,                     // 首次觸發時間
          
          // 標籤資訊
          "labels": {
            "app": "nginx",                            // 應用標籤
            "env": "prod",                             // 環境標籤
            "team": "sre"                              // 責任團隊
          },
          
          "next_eval_interval": 60,                    // 下次評估間隔(秒)
          "project": "demo-alert",                     // 警示規則所屬Project
          "region": "cn-hangzhou",                     // 地區
          "resolve_time": 0,                           // 警示恢復(如果警示狀態是firing,取值為0。如果警示狀態是resolved,取值為具體恢復。)
          "severity": 8,                               // 警示嚴重度(10:嚴重;8:高;6:中;4:低;2:僅報告)
          "status": "firing"                           // 警示狀態(firing:觸發警示;resolved:恢複通知)
        }
      ]
    }

Response資訊

  • 狀態代碼:200

  • 回應標頭:必須包含Content-Type: application/json

  • 返回資料格式樣本:

    {
        "receivers": [{
            "code": "86",
            "phone": "137****34",
            "email": "****@example.com"
        }]
    }

    屬性

    資料類型

    是否必須存在

    說明

    code

    string

    如果返回結果中無此欄位,則Log Service預設code為86。

    phone

    string

    對於簡訊、語音、DingTalk和企業微信通知生效。如果為郵件通知,可忽略該欄位。

    email

    string

    僅對郵件通知渠道生效。如果為其它渠道,可忽略該欄位。