教學課程:在 Azure 監視器記錄中擷取期間轉換文字記錄
擷取時間轉換可讓您先篩選或修改傳入數據,再將其儲存在Log Analytics工作區中。 本文說明如何撰寫可轉換文字記錄數據的 KQL 查詢,並將轉換新增至數據收集規則。
此處所述的程式假設您已經從文本檔擷取一些數據,如使用 Azure 監視器代理程式收集文字記錄中所述。 在本教學課程中,您將:
- 撰寫 KQL 查詢以轉換內嵌的數據。
- 修改目標數據表架構。
- 將轉換新增至數據收集規則。
- 確認轉換正常運作。
必要條件
為完成此程序,您必須:
- 您至少擁有參與者權限所在的 Log Analytics 工作區。
- 數據收集規則、數據收集端點和自定義數據表,如使用 Azure 監視器代理程式收集文字記錄中所述。
- VM、虛擬機擴展集或已啟用 Arc 的內部部署伺服器,會將記錄寫入文字檔。
文字檔需求:
- 儲存在 Azure 監視器代理程式執行所在的機器本機磁碟驅動器上。
- 以行結尾來劃定。
- 使用 ASCII 或 UTF-8 編碼。 不支援其他格式,例如UTF-16。
- 不允許循環記錄、以新專案覆寫檔案的記錄輪替,或重新命名移動檔案的位置,以及開啟同名的新檔案。
撰寫 KQL 查詢以轉換內嵌的數據
在 Log Analytics 中檢視目標自訂資料表中的數據:
- 在 Azure 入口網站 中,選取 Log Analytics 工作區您的 Log 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
- 運算子
將查詢格式化為單行,並以 單
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 工作區您的 Log Analytics 工作區>>記錄。
- 執行自訂記錄數據表以檢視數據表數據的基本查詢。
下一步
深入了解: