全部產品
Search
文件中心

Simple Log Service:定向寫入LogStore

更新時間:Mar 14, 2026

資料分發是指通過資料加工任務,將一份源日誌按照預設的SPL規則處理後,寫入一個或多個目標LogStore,支援跨帳號、跨地區寫入。本文介紹如何?日誌內容的靜態分發,即將源日誌分發到固定的目標地址。如需根據日誌內容(如level、tenant_id)動態決定目標地址請參考按內容動態分流

重要

單個資料加工任務最多支援20個輸出目標。

準備源LogStore資料

確保源 LogStore 已正確接入原始日誌,並包含可用於過濾和分類的關鍵字段。原始日誌範例:

{
  "status": 503,
  "method": "POST",
  "uri": "/api/submit",
  "error_message": "service unavailable",
  "stack_trace": "..."
}

編寫SPL規則

使用SPL對原始日誌進行處理,並根據商務邏輯定義出最終需要分發到不同目標的多個結果集。

  1. 登入Log Service控制台

  2. 單擊源Project名稱,進入源Project。

  3. 在左側導覽列,單擊image任務管理

  4. 資料加工頁簽下,單擊建立資料加工任務,選擇源日誌庫,單擊確認

  5. 選擇資料的時間範圍,SPL規則。

一對一:按狀態代碼精確分發

將訪問日誌按狀態代碼分為“成功請求”和“服務端錯誤”兩個結果集,分發到不同的LogStore。

-- 成功請求 (2xx)
.let success_logs = *
  | where cast(status as int) >= 200 and cast(status as int) < 300
  | project __time__, method, uri, status, response_time;

-- 服務端錯誤 (5xx)
.let server_error_logs = *
  | where cast(status as int) >= 500
  | project __time__, method, uri, status, error_message, stack_trace;

-- 輸出所有資料集
$success_logs; $server_error_logs;

調試SPL並配置預設儲存目標:

  1. 原始日誌中選擇日誌資料加入測試資料

  2. 測試資料頁簽中,單擊調試SPL,查看加工結果

  3. 當加工結果符合預期後,單擊儲存資料加工(新版)

  4. 建立資料加工任務(新版)面板中,儲存目標配置如下:

    • 目標Region:選擇目標Project所在地區。

    • 必須確保對目標Project和目標庫存在且有權訪問。

    image

  5. 驗證分髮結果:啟動任務後,在各目標 LogStore 查詢資料,確認日誌是否按預設目標分發。樣本:

    輸入日誌特徵

    實際寫入位置

    status=200

    Project: sls-project-beijing,

    LogStore: access-success

    status=502

    Project: sls-project-beijing, LogStore: server-error-logs

一對多:備份錯誤記錄檔(跨帳號跨地區)

將所有錯誤記錄檔跨地區、跨帳號寫入不同的目標庫。

-- 所有錯誤記錄檔
.let all_errors = *
  | where cast(status as int) >= 400
  | project __time__, method, uri, status, error_message;

-- 輸出資料集
$all_errors;

調試SPL並配置預設儲存目標:

  1. 原始日誌中選擇日誌資料加入測試資料

  2. 測試資料頁簽中,單擊調試SPL,查看加工結果

  3. 當加工結果符合預期後,單擊儲存資料加工(新版)

  4. 建立資料加工任務(新版)面板中,儲存目標配置如下:

    • 目標Region:選擇目標Project所在地區。

    • 角色ARN

      • 同帳號操作:選擇預設角色,使用阿里雲系統角色AliyunLogETLRole,該角色已包含訪問當前帳號下Log Service資源的通用許可權,適用於源和目標LogStore均在當前帳號下的情境。

      • 跨帳號操作:選擇自訂角色,當目標LogStore屬於其他阿里雲帳號時,需要手動建立一個RAM角色,為其授予讀取源LogStore和寫入所有目標LogStore的許可權,並在目標帳號側為該角色配置信任策略。詳細授權資訊請參考資料加工任務許可權配置

    image

  5. 驗證分髮結果:啟動任務後,在各目標 LogStore 查詢資料,確認日誌是否按預設目標分發。樣本:

    輸入日誌特徵

    實際寫入位置

    status=502

    Project: sls-project-beijing ,

    LogStore: error-logs

    Project: sls-project-hangzhou, LogStore: error-logs-backup

多對一:集中審計

將不同行為日誌寫入同一個目標庫。

-- 敏感動作記錄
.let audit_logs = *
  | where (uri like '/api/*/delete')  or ( uri like '/api/*/create');

-- 登入行為日誌
.let login_logs = *
  | where  uri = '/login' or uri = '/logout';

-- 輸出資料集
$audit_logs;$login_logs;

調試SPL並配置預設儲存目標:

  1. 原始日誌中選擇日誌資料加入測試資料

  2. 測試資料頁簽中,單擊調試SPL,查看加工結果

  3. 當加工結果符合預期後,單擊儲存資料加工(新版)

  4. 建立資料加工任務(新版)面板中,儲存目標配置如下:

    image

  5. 驗證分髮結果:啟動任務後,在各目標 LogStore 查詢資料,確認日誌是否按預設目標分發。樣本:

    輸入日誌特徵

    實際寫入位置

    uri = /login

    Project: sls-project-beijing ,

    LogStore: security-audit

    uri=/api/user/delete

支援的映射模式

寫入結果集指需要寫入至當前目標LogStore的SPL資料集

  • 一對一:一個資料集 → 一個目標 LogStore。

  • 一對多:一個資料集 → 多個目標。

  • 多對一:多個資料集 → 同一個目標。

  • 多對多:多個資料集分別寫入多個目標