教學課程:在 Azure 監視器記錄的擷取期間轉換文字記錄
擷取時間轉換可讓您篩選或修改傳入的資料,再將其儲存在 Log Analytics 工作區中。 本文說明如何撰寫轉換文字記錄資料的 KQL 查詢,然後將轉換新增至資料收集規則。
此處說明的程序假設您已從文字檔擷取一些資料,如使用 Azure 監視器代理程式收集文字記錄一文所述。 在本教學課程中,您將會:
- 撰寫 KQL 查詢以轉換擷取的資料。
- 修改目標資料表結構描述。
- 將轉換新增至資料收集規則。
- 確認轉換正確運作。
必要條件
為完成此程序,您需要:
- 您至少擁有參與者權限所在的 Log Analytics 工作區。
- 資料收集規則、資料收集端點,以及自訂資料表,如使用 Azure 監視器代理程式收集文字記錄一文所述。
- 將記錄寫入至文字檔的 VM、虛擬機器擴展集,或已啟用 Arc 的內部部署伺服器。
文字檔需求:
- 儲存在執行 Azure 監視器代理程式的機器本機磁碟機上。
- 以行尾分隔。
- 使用 ASCII 或 UTF-8 編碼。 不支援其他格式,例如 UTF-16。
- 不允許循環記錄、以新項目覆寫檔案的記錄輪替,或在已移動檔案並以相同名稱開啟新檔案的情況下重新命名檔案。
撰寫 KQL 查詢以轉換擷取的資料
在 Log Analytics 中檢視目標自訂資料表中的資料:
- 在 Azure 入口網站中,選取 [Log Analytics 工作區] > 您的 Analytics 工作區 > [記錄]。
- 對自訂記錄資料表執行基本查詢,檢視資料表的資料。
使用查詢視窗撰寫及測試查詢,轉換資料表中的原始資料。
如需支援轉換的 KQL 運算子資訊,請參閱 Azure 監視器中的轉換結構。
注意
可用來套用轉換的只有 TimeGenerated 和 RawData 資料行。 其他資料行會在轉換之後自動新增至資料表,而且在轉換時無法使用。 轉換時無法使用 _ResourceId 資料行。
範例
此範例使用基本 KQL 運算子,將
RawData
資料行中的資料剖析成三個新資料行,稱為Time Ingested
、RecordNumber
和RandomContent
:extend
運算子會加入新的資料行。project
運算子會設定輸出的格式以符合目標資料表結構描述的資料行:
MyTable_CL | extend d=todynamic(RawData) | project TimeGenerated,TimeIngested=tostring(d.Time), RecordNumber=tostring(d.RecordNumber), RandomContent=tostring(d.RandomContent), RawData
注意
以這種方式查詢資料表資料並不會實際修改資料表中的資料。 您將轉換查詢新增至資料收集規則之後,Azure 監視器會在資料擷取管線中套用轉換。
將查詢的格式設定為單行,並將位於查詢第一行的資料表名稱取代為字詞
source
。例如:
source | extend d=todynamic(RawData) | project TimeGenerated,TimeIngested=tostring(d.Time),RecordNumber=tostring(d.RecordNumber), RandomContent=tostring(d.RandomContent), RawData
複製經過格式化的查詢,以便您將其貼到資料收集規則的組態。
修改自訂資料表以包含新的資料行
根據您的轉換查詢,在自訂資料表中新增或刪除資料行。
上述轉換查詢範例會新增三個類型為 string
的新資料行:
TimeIngested
RecordNumber
RandomContent
若要支援此轉換,請將這三個新資料行新增至您的自訂資料表。
將轉換新增至資料收集規則
在 [監視器] 功能表上,選取 [資料收集規則] > 您的資料收集規則。
選取 [資料來源] > 您的資料來源。
將經過格式化的轉換查詢貼到 [新增資料來源] 畫面中 [資料來源] 索引標籤的 [轉換] 欄位中。
選取 [儲存]。
檢查轉換是否正確運作
檢視目標自訂資料表中的資料,並檢查資料是否正確地擷取至已修改的資料表:
- 在 Azure 入口網站中,選取 [Log Analytics 工作區] > 您的 Analytics 工作區 > [記錄]。
- 對自訂記錄資料表執行基本查詢,檢視資料表的資料。
下一步
深入了解: