共用方式為


使用摘要規則彙總 Log Analytics 工作區中的資料 (預覽)

摘要規則可讓您定期彙總記錄資料,並將彙總的結果傳送至 Log Analytics 工作區中的自訂記錄資料表。 使用摘要規則來最佳化您的資料:

  • 分析和報告,特別是針對大型資料集和時間範圍,安全性與事件分析、每月或年度商務報告等情況下需要。 大型資料集上的複雜查詢通常會逾時。分析及報告已清理和已彙總摘要資料更為簡單且更有效率。

  • 詳細資訊記錄的成本節省,您可以保留低成本基本記錄資料表中的一小部分或所需部分,並將摘要資料傳送至 Analytics 資料表進行分析和報告即可。

  • 藉由移除或模糊化摘要共用資料中的隱私權詳細資料,以及限制對具有未經處理資料的資料表存取,來獲得安全性和資料隱私權

本文說明摘要規則的運作方式,以及如何定義和檢視摘要規則,並提供摘要規則使用方式和優點的一些範例。

摘要規則的運作方式

摘要規則會直接在 Log Analytics 工作區中執行批次處理。 摘要規則會根據 KQL 查詢來彙總資料區塊 (由間隔大小定義),並將摘要結果重新內嵌至具有 Log Analytics 工作區中 Analytics 記錄方案的自訂表格。

圖表顯示資料如何內嵌至 Log Analytics 工作區,並使用摘要規則彙總並重新擷取至工作區。

無論資料表是否具有 Analytics 或基本行動數據方案,您都可以彙總任何資料表的資料。 Azure 監視器會根據您定義的查詢來建立目的地資料表結構描述。 如果目的地資料表已經存在,Azure 監視器會新增支援查詢結果所需的任何資料行。 所有目的地資料表也包含一組具有摘要規則資訊的標準欄位,包括:

  • _RuleName:產生彙總記錄項目的摘要規則。
  • _RuleLastModifiedTime:上次修改規則的時間。
  • _BinSize:彙總間隔。
  • _BinStartTime 彙總開始時間。

您可以設定最多 30 個使用中規則,以彙總多個資料表的資料,並將彙總的資料傳送至不同的目的地資料表或相同的資料表。

您可以定義資料匯出規則,將摘要資料從自訂記錄資料表匯出至儲存體帳戶或事件中樞,以進一步整合。

範例:摘要 ContainerLogsV2 資料

如果您要監視容器,需要將大量的詳細資訊記錄內嵌至 ContainerLogsV2 資料表。

您可以在摘要規則中使用此查詢,在 60 分鐘內彙總所有唯一的記錄項目,以保留可用於分析的資料並卸除您不需要的資料:

ContainerLogV2 | summarize Count = count() by  Computer, ContainerName, PodName, PodNamespace, LogSource, LogLevel, Message = tostring(LogMessage.Message)

以下是 ContainerLogsV2 資料表中的未經處理資料:

顯示 ContainerLogsV2 資料表中未經處理記錄資料的螢幕擷取畫面。

以下是摘要規則傳送至目的地資料表的彙總資料:

摘要規則傳送至目的地資料表之彙總資料的螢幕擷取畫面。

目的地資料表會顯示每個唯一項目的計數,而不是在一小時內記錄數百個類似的項目,如 KQL 查詢中所定義。 在 ContainerLogsV2 資料表上設定基本行動數據方案,以用於未經處理資料的低成本保留,並針對分析需求使用目的地資料表中的摘要資料。

需要的權限

動作 需要的權限
建立或更新摘要規則 例如,Log Analytics 參與者內建角色所提供的 Log Analytics 工作區 Microsoft.Operationalinsights/workspaces/summarylogs/write 權限
建立或更新目的地資料表 例如,Log Analytics 參與者內建角色所提供的 Log Analytics 工作區 Microsoft.OperationalInsights/workspaces/tables/write 權限
在工作區中啟用查詢 例如,Log Analytics 讀者內建角色所提供的 Log Analytics 工作區 Microsoft.OperationalInsights/workspaces/query/read 權限
查詢工作區中的所有記錄 例如,Log Analytics 讀者內建角色所提供的 Log Analytics 工作區 Microsoft.OperationalInsights/workspaces/query/*/read 權限
資料表中的查詢記錄 例如,Log Analytics 讀者內建角色所提供的 Log Analytics 工作區 Microsoft.OperationalInsights/workspaces/query/<table>/read 權限
資料表中的查詢記錄 (資料表動作) 例如,Log Analytics 讀者內建角色所提供的 Log Analytics 工作區 Microsoft.OperationalInsights/workspaces/tables/query/read 權限
使用在客戶自控儲存體帳戶中加密的查詢 儲存體帳戶的 Microsoft.Storage/storageAccounts/* 權限,例如儲存體帳戶參與者內建角色所提供的權限

限制事項

類別 限制
工作區中的使用中規則數上限 30
每個間隔的結果數上限 500,000
結果集容量上限 100 MB
進行間隔處理的查詢逾時 10 分鐘
  • 摘要規則目前僅適用於公用雲端。

  • 摘要規則會處理傳入資料,且無法在歷程記錄時間範圍內設定。

  • 當間隔執行重試用盡時,系統會跳過間隔,且無法重新執行。

  • 不支援使用 Lighthouse 查詢另一個租用戶中的 Log Analytics 工作區。

  • KQL 限制取決於來源資料表的資料表方案。

    • 分析:支援所有 KQL 命令,除了:

    • 基本:支援單一資料表上的所有 KQL 命令。 您可以使用查閱運算子來聯結最多五個 Analytics 資料表。

    • Azure Functions:不支援使用者定義函式。 支援 Microsoft 所提供的系統函式。

計價模式

摘要規則沒有額外的成本。 您只需根據查詢中使用的資料表方案,支付查詢和結果擷取至目的地資料表的費用:

來源資料表方案 查詢成本 摘要結果擷取成本
分析 無成本 分析內嵌的 GB
基本 掃描的 GB 分析內嵌的 GB

例如,每個間隔所傳回 100 筆記錄的每小時規則成本計算為:

來源資料表方案 每月價格計算
分析 擷取價格 x 記錄大小 x 記錄數目 x 24 小時 x 30 天
基本 掃描的 GB 價格 x 掃描大小 + 擷取價格 x 記錄大小 x 記錄數目 x 24 小時 x 30 天

如需詳細資訊,請參閱 Azure 監視器計量價格

建立或更新摘要規則

在建立規則之前,請先實驗 Log Analytics 中的查詢。 確認查詢未達到或接近查詢限制。 檢查查詢是否會產生預期的結構描述和預期的結果。 如果查詢接近查詢限制,請考慮使用較小的 binSize 來處理每個間隔的資料。 您也可以修改查詢以傳回較少的記錄,或移除具有較高磁碟區的欄位。

注意

摘要規則在成本方面最有利,且會在大幅降低時產生使用量。 例如,結果磁碟區是 0.01% 或小於來源。

當您更新查詢並移除結果集中的輸出欄位時,Azure 監視器不會自動從目的地資料表移除資料行。 您必須手動刪除資料表中的資料行

若要建立或更新摘要規則,請發出此 PUT API 呼叫:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName}?api-version=2023-01-01-preview
Authorization: {credential}

{
  "properties": {
      "ruleType": "User",
      "description": "My test rule",
      "ruleDefinition": {
          "query": "StorageBlobLogs | summarize count() by AccountName",
          "binSize": 30,
          "destinationTable": "MySummaryLogs_CL"
      }
  }
}

下表描述摘要規則參數:

參數 有效值 描述
ruleType UserSystem 指定規則的類型。
- User:您定義的規則。
- System:由 Azure 服務管理的預先定義規則。
description String 描述規則及其函式。 當您有數個規則且可協助管理規則時,此參數會很有幫助。
binSize 2030601201803607201,440 (分鐘) 定義彙總間隔和回顧時間範圍。 例如,如果您設定 "binSize": 120,則可能會取得 02:00 to 04:0004:00 to 06:00 的項目。
query Kusto 查詢語言 (KQL) 查詢 定義在規則中執行的查詢。 您不需要指定時間範圍,因為 binSize 參數會決定彙總間隔 - 例如,如果為 "binSize": 60 則為 02:00 to 03:00。 如果您在查詢中新增時間篩選,則查詢中使用的時間範圍是篩選條件與間隔大小之間的交集。
destinationTable tablename_CL 指定目的地自訂記錄資料表的名稱。 名稱值必須具有尾碼 _CL。 Azure 監視器會根據您在規則中設定的查詢,在工作區中建立資料表 (如果尚未存在的話)。 如果資料表已存在於工作區中,Azure 監視器會新增查詢中導入的任何新資料行。

如果摘要結果包含保留的資料行名稱,例如 TimeGenerated_IsBillable_ResourceIdTenantIdType - Azure 監視器會將 _Original 前置詞附加至原始欄位,以保留其原始值。
binDelay (選用) 整數 (分鐘) 針對延遲抵達的資料設定間隔執行之前的延遲時間,也稱為擷取延遲。 延遲可讓大部分的資料到達,且適用於服務負載分佈。 預設延遲是從 3 分半到 10% binSize 的值。

如果您知道查詢的資料通常是以延遲擷取,請使用已知的延遲值或更高值來設定 binDelay 參數。 如需詳細資訊,請參閱設定彙總時間
在某些情況下,Azure 監視器可能會稍微在設定間隔延遲之後開始執行間隔,以確保服務可靠性和查詢成功。
binStartTime (選用) 日期時間內
%Y-%n-%eT%H:%M %Z format
指定初始間隔執行的日期和時間。 值可以從規則建立日期時間減去 binSize 值,或稍後以及整數小時內開始。 例如,如果日期時間是 2023-12-03T12:13ZbinSize 為 1,440,則最早的有效 binStartTime 值為 2023-12-02T13:00Z,而彙總會包含在 02T13:00 和 03T13:00 之間記錄的資料。 在此案例中,規則會開始彙總 03T13:00 加上預設或指定的延遲。

binStartTime 參數在每日摘要案例中很有用。 假設您位於 UTC-8 時區,並在 2023-12-03T12:13Z 建立每日規則。 您希望規則在 8:00 (00:00 UTC) 開始一天工作之前完成。 將 binStartTime 參數設定為 2023-12-02T22:00Z。 第一個彙總包含在本機時間 02T:06:00 和 03T:06:00 之間記錄的所有資料,而規則會在每天的相同時間執行。 如需詳細資訊,請參閱設定彙總時間

當您更新規則時,您可以:
- 使用現有的 binStartTime 值或移除 binStartTime 參數,在此情況下,會根據初始定義繼續執行。
- 以新的 binStartTime 值更新規則,以設定新的日期時間值。
timeSelector (選用) TimeGenerated 定義 Azure 監視器用來彙總資料的時間戳記欄位。 例如,如果您設定 "binSize": 120,則可能會取得介於 02:0004:00 之間 TimeGenerated 值的項目。

設定彙總時間

根據預設,摘要規則會在下一個整數小時後不久建立第一個彙總。

簡短延遲 Azure 監視器會新增帳戶來擷取延遲 - 或介於資料在受監視系統中建立以及在 Azure 監視器中可供分析的時間。 根據預設,此延遲介於 3 分半到 10% binSize 的值之間,再彙總每個資料區塊。 在大部分情況下,此延遲可確保 Azure 監視器會彙總每個間隔期間內記錄的所有資料。

例如:

  • 您會在 14:44 建立間隔大小為 30 分鐘的摘要規則。

    針對在 14:30 到 15:00 之間記錄的資料,規則會在 15:00 之後不久建立第一個彙總 - 例如在 15:04。

  • 您會在 14:44 建立間隔大小為 720 分鐘 (12 小時) 的摘要規則。

    針對在 03:00 到 15:00 之間記錄的資料,規則會在 16:12 - 即 13:00 的 72 分鐘之後 (720 間隔大小的 10%) 建立第一個彙總。

使用 binStartTimebinDelay 參數來變更第一次彙總的時間,以及 Azure 監視器在每次彙總之前新增的延遲。

下一節提供預設彙總時間和更進階的彙總時間選項範例。

使用預設彙總時間

在此範例中,摘要規則會在 2023-06-07 14:44 建立,而 Azure 監視器會新增預設延遲 4 分鐘

binSize (分鐘) 初始規則執行 第一次彙總 第二次彙總
1440 2023-06-07 15:04 2023-06-06 15:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-08 15:00
720 2023-06-07 15:04 2023-06-07 03:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-08 03:00
360 2023-06-07 15:04 2023-06-07 09:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 21:00
180 2023-06-07 15:04 2023-06-07 12:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 18:00
120 2023-06-07 15:04 2023-06-07 13:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 17:00
60 2023-06-07 15:04 2023-06-07 14:00 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 16:00
30 2023-06-07 15:04 2023-06-07 14:30 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 15:30
20 2023-06-07 15:04 2023-06-07 14:40 - 2023-06-07 15:00 2023-06-07 15:00 - 2023-06-07 15:20

設定選擇性彙總時間參數

在此範例中,摘要規則是在 2023-06-07 14:44 建立,而規則包含下列進階組態設定:

  • binStartTime:2023-06-08 07:00
  • binDelay8 分鐘
binSize (分鐘) 初始規則執行 第一次彙總 第二次彙總
1440 2023-06-09 07:08 2023-06-08 07:00 - 2023-06-09 07:00 2023-06-09 07:00 - 2023-06-10 07:00
720 2023-06-08 19:08 2023-06-08 07:00 - 2023-06-08 19:00 2023-06-08 19:00 - 2023-06-09 07:00
360 2023-06-08 13:08 2023-06-08 07:00 - 2023-06-08 13:00 2023-06-08 13:00 - 2023-06-08 19:00
180 2023-06-08 10:08 2023-06-08 07:00 - 2023-06-08 10:00 2023-06-08 10:00 - 2023-06-08 13:00
120 2023-06-08 09:08 2023-06-08 07:00 - 2023-06-08 09:00 2023-06-08 09:00 - 2023-06-08 11:00
60 2023-06-08 08:08 2023-06-08 07:00 - 2023-06-08 08:00 2023-06-08 08:00 - 2023-06-08 09:00
30 2023-06-08 07:38 2023-06-08 07:00 - 2023-06-08 07:30 2023-06-08 07:30 - 2023-06-08 08:00
20 2023-06-08 07:28 2023-06-08 07:00 - 2023-06-08 07:20 2023-06-08 07:20 - 2023-06-08 07:40

檢視摘要規則

使用此 GET API 呼叫來檢視特定摘要規則的組態:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName1}?api-version=2023-01-01-preview
Authorization: {credential}

使用此 GET API 呼叫來檢視設定,以檢視 Log Analytics 工作區中所有摘要規則的設定:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs?api-version=2023-01-01-preview
Authorization: {credential}

停止並重新啟動摘要規則

您可以停止規則一段時間 - 例如,如果您想要確認資料已內嵌至資料表,且不想要影響摘要資料表和報表。 當您重新啟動規則時,Azure 監視器會從下一個整數小時開始處理資料,或根據定義的 binStartTime (選擇性) 參數。

若要停止規則,請使用此 POST API 呼叫:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName}/stop?api-version=2023-01-01-preview
Authorization: {credential}

若要重新啟動規則,請使用此 POST API 呼叫:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName}/start?api-version=2023-01-01-preview
Authorization: {credential}

刪除摘要規則

您可以在 Log Analytics 工作區中擁有最多 30 個使用中的摘要規則。 如果您要建立新的規則,但您已經有 30 個使用中規則,則必須停止或刪除使用中的摘要規則。

若要刪除規則,請使用此 DELETE API 呼叫:

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.OperationalInsights/workspaces/{workspace}/summarylogs/{ruleName}?api-version=2023-01-01-preview
Authorization: {credential}

監視摘要規則

若要監視摘要規則,請在 Log Analytics 工作區的 [診斷設定] 中啟用 [摘要記錄] 類別。 Azure 監視器會將摘要規則執行詳細資料,包括摘要規則執行 [開始]、[成功] 和 [失敗] 資訊傳送至工作區中的 LASummaryLogs 資料表。

建議您設定記錄警示規則來接收間隔失敗或間隔執行即將逾時時的通知,如下所示。 視失敗原因而定,您可以減少間隔大小以在每次執行處理較少的資料,或修改查詢以傳回較少的記錄或具有較高磁碟區的欄位。

此查詢會傳回失敗的執行:

LASummaryLogs | where Status == "Failed"

此查詢會傳回間隔執行,其中 QueryDurationMs 值大於 0.9 x 600,000 毫秒:

LASummaryLogs | where QueryDurationMs > 0.9 * 600000

確認資料完整性

摘要規則是專為調整而設計,並包含重試機制,以克服與查詢限制等相關的暫時性服務或查詢失敗。 重試機制是在八小時內彙總失敗間隔的 10 次嘗試,並在耗盡時跳過間隔。 規則會設定為 isActive: false,並在連續八次間隔重試後保留。 如果您啟用監視摘要規則,Azure 監視器會在工作區的 LASummaryLogs 資料表中記錄事件。

您無法重新執行失敗的間隔執行,但您可以使用下列查詢來檢視失敗的執行:

let startTime = datetime("2024-02-16");
let endtTime = datetime("2024-03-03");
let ruleName = "myRuleName";
let stepSize = 20m; // The stepSize value is equal to the bin size defined in the rule
LASummaryLogs
| where RuleName == ruleName
| where Status == 'Succeeded'
| make-series dcount(BinStartTime) default=0 on BinStartTime from startTime to endtTime step stepSize
| render timechart

此查詢會將結果轉譯為時間圖:

螢幕擷取畫面顯示圖表,圖表顯示摘要規則中失敗間隔的查詢結果。

如需規則補救選項和主動式警示,請參閱監視摘要規則一節。

使用客戶自控金鑰加密摘要規則查詢

KQL 查詢可以在註解或查詢語法中包含敏感性資訊。 若要加密摘要規則查詢,請將儲存體帳戶連結至 Log Analytics 工作區,並使用客戶自控密鑰

使用加密查詢時的考量事項:

  • 連接儲存體帳戶來加密查詢並不會中斷現有的規則。
  • 根據預設,Azure 監視器會將摘要規則查詢儲存在 Log Analytics 儲存體中。 如果您在將儲存體帳戶連結至 Log Analytics 工作區之前已有現有的摘要規則,請更新摘要規則,讓查詢將現有的查詢儲存在儲存體帳戶中。
  • 您在儲存體帳戶中儲存的查詢位於 CustomerConfigurationStoreTable 資料表中。 這些查詢會被視為服務成品,且其格式可能會變更。
  • 您可以將相同的儲存體帳戶用於摘要規則查詢、Log Analytics 中儲存的查詢,以及記錄警示

針對摘要規則進行疑難排解

本節提供疑難排解摘要規則的提示。

意外刪除摘要規則目的地資料表

如果您在摘要規則為使用中時刪除目的地資料表,則規則會暫停,而 Azure 監視器會將事件傳送至 LASummaryLogs 資料表,並顯示指出規則已暫停的訊息。

如果您不需要目的地資料表中的摘要結果,請刪除規則和資料表。 如果您需要復原摘要結果,請遵循「建立或更新摘要規則」一節中的步驟來重新建立資料表。 目的地資料表會還原,包括刪除之前內嵌的資料,視資料表中的保留原則而定。

如果您不需要目的地資料表中的摘要結果,請刪除規則和資料表。 如果您需要摘要結果,請依照建立或更新摘要規則一節中的步驟重新建立目的地資料表並還原所有資料,包括刪除前內嵌的資料,視資料表中的保留原則而定。

查詢會使用在目的地資料表中建立新資料行的運算子

當您建立或更新摘要規則時,會定義目的地資料表結構描述。 如果摘要規則中的查詢包含運算子,這些運算子允許根據傳入資料進行輸出結構描述擴充 - 例如,如果查詢使用 arg_max(expression, *) 函式,則 Azure 監視器不會在建立或更新摘要規則之後,將新增資料行至目的地資料表,且將會卸除需要這些資料行的輸出資料。 若要將新欄位新增至目的地資料表,請更新摘要規則,或手動將資料行新增至資料表

已移除資料行的資料會保留在工作區中,受限於保留期間

當您移除查詢中的資料行時,資料行和資料會保留在目的地資料表中,並受限於資料表或工作區上定義的保留期間。 如果目的地資料表中不需要移除的資料行,請據以更新結構描述並移除資料行。 在保留期間,如果您新增具有相同名稱的資料行,則顯示尚未達到保留原則的舊資料。