教學課程:使用 Azure 入口網站在工作區資料收集規則中新增轉換

本教學課程會逐步引導您使用 Azure 入口網站在工作區資料收集規則 (DCR) 中進行轉換的範例設定。 Azure 監視器中的轉換可讓您在傳入資料傳送至目的地之前對其進行篩選或修改。 工作區轉換可針對尚未使用 Azure 監視器資料擷取管道的工作流程,提供擷取時間轉換的支援。

工作區轉換會一起儲存在工作區的單一 DCR 中,稱為工作區 DCR。 每個轉換都與特定資料表相關聯。 轉換會套用至從任何未使用 DCR 的工作流程傳送至此資料表的所有資料。

注意

本教學課程會使用 Azure 入口網站來設定工作區轉換。 如需使用 Azure Resource Manager 範本和 REST API 的相同教學課程,請參閱教學課程:使用 Resource Manager 範本將工作區資料收集規則中的轉換新增至 Azure 監視器

在本教學課程中,您會了解如何:

  • 為 Log Analytics 工作區中的資料表設定工作區轉換
  • 撰寫工作區轉換的記錄查詢。

必要條件

若要完成本教學課程,您需要:

教學課程概觀

在本教學課程中,您將藉由篩選出特定記錄來減少 LAQueryLogs 資料表的儲存體需求。 您也會在剖析資料行資料時移除資料行的內容,以將資料片段儲存在自訂資料行中。 當您在工作區中啟用記錄查詢稽核時,系統會建立 LAQueryLogs 資料表。 您可以使用此相同的基本程序,為 Log Analytics 工作區中任何支援的資料表建立轉換。

本教學課程將使用 Azure 入口網站,其提供精靈來逐步引導您完成建立擷取時間轉換的流程。 完成這些步驟之後,您會看到精靈:

  • 使用來自查詢的任何其他資料行更新資料表結構描述。
  • 建立 WorkspaceTransforms DCR,而且如果預設 DCR 尚未連結至工作區,則會將其連結至工作區。
  • 建立擷取時間轉換,並將其新增至 DCR。

啟用查詢稽核記錄

您必須啟用工作區的查詢稽核,才能建立將使用的 LAQueryLogs 資料表。 並非所有擷取時間轉換都需要執行此動作。 這只是為了產生我們將使用的範例資料。

  1. 在 Azure 入口網站的 [Log Analytics 工作區] 功能表中,選取 [診斷設定]> [新增診斷設定]

    顯示診斷設定的螢幕快照。

  2. 輸入診斷設定的名稱。 選取工作區,以便將稽核資料儲存在相同的工作區中。 選取 [稽核] 類別,然後選取 [儲存],以儲存診斷設定,並關閉 [診斷設定] 頁面。

    顯示新診斷設定的螢幕快照。

  3. 選取 [記錄],然後執行一些查詢以在 LAQueryLogs 中填入一些資料。 這些查詢不需要傳回資料,也能新增至稽核記錄。

    顯示範例記錄查詢的螢幕快照。

將轉換新增至資料表

現在資料表已建立,您可以為其建立轉換。

  1. 在 Azure 入口網站中的 [Log Analytics 工作區] 功能表上,選取 [資料表]。 找出 LAQueryLogs 資料表,然後選取 [建立轉換]

    顯示建立新轉換的螢幕快照。

  2. 由於這是工作區中的第一個轉換,您必須建立工作區轉換 DCR。 如果您為相同工作區中的其他資料表建立轉換,則會儲存在相同的 DCR 中。 選取 [建立新的資料收集規則]。 [訂用帳戶] 和 [資源群組] 即已填入工作區中。 輸入 DCR 的名稱,並選取 [完成]

    顯示建立新數據收集規則的螢幕快照。

  3. 選取 [下一步] 以檢視資料表的範例資料。 當您定義轉換時,結果會套用至範例資料。 基於此原因,您可以在將結果套用至實際資料之前,先評估結果。 選取 [轉換編輯器] 來定義轉換。

    顯示記錄數據表中範例數據的螢幕快照。

  4. 在轉換編輯器中,您可以看到在將資料擷取至資料表之前,將套用至該資料的轉換。 傳入資料是由名為 source 的虛擬資料表來表示,該資料表具有與目的地資料表本身相同的一組資料行。 轉換一開始包含一個簡單的查詢,其會傳回沒有任何變更的 source 資料表。

  5. 將查詢修改如以下範例:

    source
    | where QueryText !contains 'LAQueryLogs'
    | extend Context = parse_json(RequestContext)
    | extend Workspace_CF = tostring(Context['workspaces'][0])
    | project-away RequestContext, Context
    

    修改會進行下列變更:

    • 為了節省空間,已卸除與查詢 LAQueryLogs 資料表本身相關的資料列,因為這些記錄項目並沒有用。
    • 新增所查詢工作區名稱的資料行。
    • 為了節省空間,已移除 RequestContext 資料行中的資料。

    注意

    使用 Azure 入口網站,轉換的輸出會視需要起始資料表結構描述的變更。 如果資料行不存在,將會新增資料行以符合轉換輸出。 確定您的輸出不包含您不想要新增至資料表的任何資料行。 如果輸出未包含已在資料表中的資料行,則系統不會移除這些資料行,但也不會新增資料。

    新增至內建資料表的任何自訂資料行都必須以 _CF 結尾。 新增至自訂資料表的資料行不需要具備此尾碼。 自訂資料表的名稱結尾為 _CL

  6. 將查詢複製到轉換編輯器,然後選取 [執行],以檢視範例資料中的結果。 您可以驗證新的 Workspace_CF 資料行位於查詢中。

    顯示轉換編輯器的螢幕快照。

  7. 選取 [套用] 以儲存轉換,然後選取 [下一步] 以檢閱設定。 選取 [建立],以使用新的轉換來更新 DCR。

    顯示儲存轉換的螢幕快照。

測試轉換

允許大約 30 分鐘的時間讓轉換生效,然後對資料表執行查詢來進行測試。 只有在套用轉換之後傳送至資料表的資料才會到影響。

針對本教學課程,請執行一些範例查詢,將資料傳送至 LAQueryLogs 資料表。 包含對 LAQueryLogs 的一些查詢,以便確認轉換會篩選這些記錄。 現在,輸出具有新的 Workspace_CF 資料行,而且沒有 LAQueryLogs 的記錄。

疑難排解

本節描述您可能會收到的不同錯誤狀況,以及更正的方式。

Log Analytics 中的 IntelliSense 無法辨識資料表中的新資料行

驅動 IntelliSense 的快取最多可能需要 24 小時才能更新。

動態資料行上的轉換無法運作

已知問題目前會影響動態資料行。 暫時的因應措施是先使用 parse_json() 明確剖析動態資料行資料,再對其執行任何作業。

下一步