共用方式為


從 HTTP 資料收集器 API 移轉至記錄擷取 API,以將資料傳送至 Azure 監視器記錄

Azure 監視器記錄擷取 API 可以較舊版 HTTP 資料收集器 API 提供更優秀的記錄擷取和資料表管理處理能力與更大的彈性。 本文說明資料收集器 API 與記錄擷取 API 之間的差異,並提供移轉至新記錄擷取 API 的指引和最佳做法。

注意

身為 Microsoft MVP 的 Morten Waltorp Knudsen 不僅為本文撰稿,還提供了實質性的意見反應。 如需如何將記錄擷取 API 的設定和可行性自動化的範例,請參閱 Morten 公開發佈的 AzLogDcrIngestPS PowerShell 模組

記錄擷取 API 的優點

記錄擷取 API 提供勝過資料收集器 API 的下列優點:

  • 支援轉換,可讓您先修改資料,再將資料擷取至目的地資料表,包括篩選和資料操作。
  • 可讓您將資料傳送至多個目的地。
  • 可讓您管理目的地資料表結構描述,包括資料行名稱,以及是否要在來源資料結構描述變更時新增資料行到目的地資料表。

必要條件

本文說明的移轉程序假設您具備下列條件:

需要的權限

動作 需要的權限
建立資料收集端點。 例如,監視參與者的內建角色提供的 Microsoft.Insights/dataCollectionEndpoints/write 權限。
建立或修改資料收集規則。 例如,監視參與者的內建角色提供的 Microsoft.Insights/DataCollectionRules/Write 權限。
將使用資料收集器 API 的資料表轉換成資料收集規則和記錄擷取 API。 例如,Log Analytics 參與者的內建角色提供的 Microsoft.OperationalInsights/workspaces/tables/migrate/action 權限。
建立新的資料表或修改資料表結構描述。 例如,Log Analytics 參與者的內建角色提供的 microsoft.operationalinsights/workspaces/tables/write 權限。
呼叫記錄擷取 API。 請參閱將權限指派給 DCR

建立記錄擷取 API 所需的新資源

記錄擷取 API 需要您建立 HTTP 資料收集器 API 不需要的兩種新型別資源:

移轉現有的自訂資料表或建立新的資料表

如果您的現有自訂資料表可以用來接收目前使用資料收集器 API 傳送的資料,您可以:

  • 移轉資料表以利用記錄擷取 API 繼續將資料擷取到相同的資料表。

  • 維護現有的資料表和資料,並設定新資料表,以便使用記錄擷取 API 將擷取的資料傳送至該資料表。 然後,在準備好時刪除舊的資料表。

    這是慣用的選項,特別是在您必須變更現有資料表時。 現有資料類型變更和現有資料收集器 API 自訂資料表的多個結構描述變更,可能會導致錯誤。

提示

若要識別哪些資料表使用資料收集器 API,請檢視資料表屬性。 使用資料收集器 API 之資料表的 Type 屬性會設定為 [自訂資料表 (傳統)]。 請注意,使用舊版 Log Analytics 代理程式 (MMA) 擷取資料的資料表也會將 Type 屬性設定為 [自訂資料表 (傳統)]。 在轉換 MMA 資料表之前,務必從 Log Analytics 代理程式移轉至 Azure 監視器代理程式。 否則,在資料表轉換之後,您將停止將資料內嵌到這些資料表的自訂欄位中。

下表摘要說明每個選項應注意的考量事項:

資料表移轉 並存實作
資料表與資料行命名 重覆使用現有的資料表名稱。
資料行命名選項:
- 使用新的資料行名稱,並定義轉換以將傳入資料導向至新命名的資料行。
- 繼續使用舊名稱。
任意設定新的資料表名稱。
切換至新的資料表之前,必須先調整整合、儀表板和警示。
移轉程序 一次性資料表移轉。 無法復原已移轉的資料表。 移轉可以按資料表逐一執行。
移轉後 您可以使用 HTTP 資料收集器 API 搭配現有資料行繼續擷取資料。
僅使用記錄擷取 API 將資料擷取到新的資料行。
舊資料表中的資料可在保留期間結束之前提供使用。
當您第一次設定新的資料表或進行結構描述變更時,可能需要 10-15 分鐘的時間,資料變更才會開始出現在目的地資料表中。

將使用資料收集器 API 的資料表轉換成資料收集規則和記錄擷取 API,向資料表發出此 API 呼叫:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}/migrate?api-version=2021-12-01-preview

此呼叫是等冪性質,所以如果資料表已經轉換,則不會有任何作用。

API 呼叫會啟用資料表上的所有 DCR 型自訂記錄功能。 資料收集器 API 會繼續將資料擷取到現有的資料行,但不會建立任何新資料行。 系統不會繼續在任何之前定義的自訂欄位中填入資料。 另一個不一定要使用記錄擷取 API 而移轉現有資料表以使用資料收集規則的方式,是將工作區轉換套用至資料表。

重要

  • 資料行名稱必須以字母開頭,且最多可以包含 45 個英數字元和底線 (_)。
  • _ResourceIdid_ResourceId_SubscriptionIdTenantIdTypeUniqueIdTitle 是保留的資料行名稱。
  • 您新增至 Azure 資料表的自訂資料行必須有 _CF 尾碼。
  • 如果您在 Log Analytics 工作區中更新資料表結構描述,則還必須更新資料收集規則中的輸入資料流定義,以便將資料擷取到新的或修改的資料行。

呼叫記錄擷取 API

記錄擷取 API 可讓您在每個呼叫中傳送最多 1 MB 的壓縮或未壓縮資料。 如果您需要傳送超過 1 MB 的資料,則可以採用平行方式傳送多個呼叫。 這是資料收集器 API 的變更,可讓您每個呼叫最多傳送 32 MB 的資料。

如需如何呼叫記錄擷取 API 的詳細資訊,請參閱記錄擷取 REST API 呼叫

根據來源資料物件的變更修改資料表結構描述和資料收集規則

雖然資料收集器 API 會在來源資料物件結構描述變更時自動調整目的地資料表結構描述,但記錄擷取 API 不會。 這可確保您不會將新資料收集到您不想建立的資料行中。

當來源資料結構描述變更時,您可以:

注意

若資料行名稱的資料類型不同於該資料行已定義的原始資料類型,則您無法重複使用該資料行名稱。

下一步