從 HTTP 資料收集器 API 移轉至記錄擷取 API,以將資料傳送至 Azure 監視器記錄
Azure 監視器記錄擷取 API 可以較舊版 HTTP 資料收集器 API 提供更優秀的記錄擷取和資料表管理處理能力與更大的彈性。 本文說明資料收集器 API 與記錄擷取 API 之間的差異,並提供移轉至新記錄擷取 API 的指引和最佳做法。
注意
身為 Microsoft MVP 的 Morten Waltorp Knudsen 不僅為本文撰稿,還提供了實質性的意見反應。 如需如何將記錄擷取 API 的設定和可行性自動化的範例,請參閱 Morten 公開發佈的 AzLogDcrIngestPS PowerShell 模組。
記錄擷取 API 的優點
記錄擷取 API 提供勝過資料收集器 API 的下列優點:
- 支援轉換,可讓您先修改資料,再將資料擷取至目的地資料表,包括篩選和資料操作。
- 可讓您將資料傳送至多個目的地。
- 可讓您管理目的地資料表結構描述,包括資料行名稱,以及是否要在來源資料結構描述變更時新增資料行到目的地資料表。
必要條件
本文說明的移轉程序假設您具備下列條件:
- 您至少擁有 Log Analytics 工作區的參與者權限。
- 在 Log Analytics 工作區建立資料收集規則的權限。
- Microsoft Entra 應用程式以驗證 API 呼叫或任何其他 Resource Manager 驗證配置。
需要的權限
動作 | 需要的權限 |
---|---|
建立資料收集端點。 | 例如,監視參與者的內建角色提供的 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 個英數字元和底線 (
_
)。 _ResourceId
、id
、_ResourceId
、_SubscriptionId
、TenantId
、Type
、UniqueId
和Title
是保留的資料行名稱。- 您新增至 Azure 資料表的自訂資料行必須有
_CF
尾碼。 - 如果您在 Log Analytics 工作區中更新資料表結構描述,則還必須更新資料收集規則中的輸入資料流定義,以便將資料擷取到新的或修改的資料行。
呼叫記錄擷取 API
記錄擷取 API 可讓您在每個呼叫中傳送最多 1 MB 的壓縮或未壓縮資料。 如果您需要傳送超過 1 MB 的資料,則可以採用平行方式傳送多個呼叫。 這是資料收集器 API 的變更,可讓您每個呼叫最多傳送 32 MB 的資料。
如需如何呼叫記錄擷取 API 的詳細資訊,請參閱記錄擷取 REST API 呼叫。
根據來源資料物件的變更修改資料表結構描述和資料收集規則
雖然資料收集器 API 會在來源資料物件結構描述變更時自動調整目的地資料表結構描述,但記錄擷取 API 不會。 這可確保您不會將新資料收集到您不想建立的資料行中。
當來源資料結構描述變更時,您可以:
- 修改目的地資料表結構描述和資料收集規則,以配合來源資料結構描述變更。
- 在資料收集規則中定義轉換,以便將新資料傳送至目的地資料表中的現有資料行。
- 讓目的地資料表和資料收集規則保持不變。 在此情況下,您不會擷取新的資料。
注意
若資料行名稱的資料類型不同於該資料行已定義的原始資料類型,則您無法重複使用該資料行名稱。