教學課程:將 Log Analytics 工作區中的自訂欄位取代為 KQL 型自訂資料行
自訂欄位是 Azure 監視器的一項功能,可讓您從相同資料表的不同文字資料行擷取至個別的資料行資料。 從 2023 年 3 月 31 日起,將停用建立新的自訂欄位。 自訂欄位功能將會淘汰,而現有的自訂欄位將於 2026 年 3 月 31 日停止運作。
使用 DCR 型擷取時間轉換來完成相同的結果,有數項優點:
- 您可以套用一組完整的字串函數,來塑造您的自訂資料行。
- 您可以將多個作業套用至相同的資料。 例如,將值的一部分擷取至個別的資料行,並移除原始資料行。
- 您可以在 ARM 範本中使用擷取時間轉換,大規模部署自訂資料行。
隨著資料收集規則 (DCR) 的建立,KQL 型轉換是資料表自訂的標準方法,取代舊版自訂欄位。
在本教學課程中,您會了解如何:
- 找出需要取代的自訂欄位
- 了解自訂欄位的內容
- 設定擷取時間轉換,以取代資料表中的自訂欄位
必要條件
- Log Analytics 工作區與含有自訂欄位的資料表
- 足夠帳戶權限 (DCR),可以建立和修改資料收集規則
找出要取代的自訂欄位
首先,尋找要取代的自訂欄位。 如果您已經知道打算要取代的自訂欄位,請繼續進行下一個步驟。
瀏覽至含有自訂欄位的資料表所在的 Log Analytics 工作區。
在側邊功能表中,選取 [資料表]。 從資料表的捷徑功能表中選取 [管理資料表]。
請注意是否有任何資料收集規則 (DCR) 與指定的資料表相關聯。
- 如果對應區段中有任何 DCR 存在,表示任何預先存在的自訂欄位都已在這些 DCR 中實作,或在 DCR 建立時放棄。 您將在本教學課程的下一個步驟中檢查自訂欄位的內容,並判斷是否需要更新 DCR。
- 如果沒有任何資料收集規則與資料表相關聯,則指定資料表中名稱結尾為 "_CF" 的所有資料行都將是必須取代的自訂欄位。
關閉資料表屬性對話方塊,然後從資料表捷徑功能表選取 [編輯結構描述]。 捲動至頁面底部,該處列出自訂資料行。 這些資料行均以 _CF 結尾。
請記下這些資料行的名稱,因為您將在下一個步驟中決定其內容。
了解自訂欄位內容
由於無法直接檢查自訂欄位定義,因此您必須查詢資料表來確定自訂欄位公式。
選取側邊功能表中的 [記錄],然後執行查詢以從資料表中取得資料範例。
找出上一步驟中記下的資料行,並檢查其內容。
- 如果資料行不是空的,而且有 DCR 與資料表相關聯,則自訂欄位邏輯已經透過轉換來實作。 您不需要執行任何動作
- 如果資料行是空的 (或不存在於查詢結果中),而且有 DCR 與資料表相關聯,則不會使用 DCR 來實作自訂欄位邏輯。 將轉換新增至現有 DCR 中的資料流程。
- 如果資料行不是空的,而且沒有 DCR 與資料表相關聯,則必須將自訂欄位邏輯以工作區 DCR 中的轉換形式實作。
檢查自訂欄位的內容,並確認其計算邏輯。 自訂欄位通常會計算相同資料表中其他資料行的子字串。 確認資料的來源資料行,以及其擷取的字串部分。
建立轉換
您現在已準備好建立必要的 KQL 程式碼片段並新增至 DCR。 此邏輯會在記錄擷取至工作區時套用至每個記錄。
使用 KQL 修改資料表的查詢,以複製自訂欄位邏輯。 如果您有多個要取代的自訂欄位,可以將計算邏輯合併成單一陳述式。
- 使用 parse 運算子,對字串中的子字串進行模式型搜尋。
- 使用 extract() 函式進行規則運算式型子字串搜尋。
- split()、substring() 和許多其他形式的字串函數可能也會有幫助。
確認自訂資料行的新 KQL 定義的放置位置。
常見問題集
如何移轉使用舊版 Log Analytics 代理程式 (MMA) 收集的文字記錄中的自訂欄位?
考慮移轉至 Azure 監視器代理程式 (AMA)。 Log Analytics 代理程式即將終止支援,您應移轉至 Azure 監視器代理程式 (AMA)。 使用 AMA 收集的文字記錄從一開始就使用以 KQL 轉換形式定義的記錄剖析邏輯。 Azure 監視器代理程式所收集的文字記錄不需要也不支援自訂欄位。
有必要將自訂欄位移轉至 KQL 嗎?
否,只有當您仍然想要填入自訂資料行時,才需要移轉自訂欄位。 如果您未移轉自訂欄位,對應的資料行會在自訂欄位支援結束時停止填入。 已經處理並儲存在資料表中的資料將不受影響且仍可使用。
如果我沒有及時移轉自訂欄位,是否會遺失對應資料行中的現有資料?
否,自訂欄位會在資料擷取時計算。 刪除欄位定義或未及時移轉,並不會影響先前擷取的任何資料。