共用方式為


Azure 監視器中的範例轉換

Azure 監視器 中的轉換可讓您先篩選或修改傳入數據,再傳送至 Log Analytics 工作區。 本文提供常見案例的範例查詢,讓您可用來開始建立自己的轉換。 如需測試這些轉換並將轉換新增至數據收集規則的詳細資訊,請參閱 在 Azure 監視器 中建立轉換。

降低資料成本

由於您需對傳送至 Log Analytics 工作區的任何資料的擷取成本付費,您想要篩選掉不需要的任何資料來降低成本。

篩選數據列

where使用語句來篩選符合特定需求的傳入數據。 如果連入記錄不符合語句,則記錄不會傳送至目的地。 在下列範例中,只會收集嚴重性為 的 Critical 記錄。

source | where severity == "Critical" 

篩選數據行

從不需要儲存數據擷取成本的數據源中移除數據行。 project使用語句來指定輸出中的數據行,或使用 project-away 來指定要移除的數據行。 在下列範例中,數據 RawData 行會從輸出中移除。

source | project-away RawData

從數據行剖析重要數據

您可能有一個數據行,內含過多文字中的重要數據。 只保留寶貴的數據,並移除不需要的文字。 使用和 之類的substringextract字串函式來剖析您想要的數據。 您也可以使用 parse 或 來剖析數據,或 split 將單一數據行分割成多個值,然後選取您想要的數據。 extend然後使用 來建立具有已剖析數據的新數據行,並project-away移除原始數據行。

警告

如需使用複雜剖析命令的秘訣,請參閱中斷大型剖析命令。

在下列範例中,數據 RequestContext 行包含具有工作區 ResourceId 的 JSON。 和 splitparse_json式可用來擷取工作區的簡單名稱。 系統會針對這個值建立新的數據行,並移除其他數據行。

source
| extend Context = parse_json(RequestContext)
| extend Workspace_CF = tostring(Context['workspaces'][0])
| extend WorkspaceName_CF = split(Workspace_CF,"/")[8]
| project-away RequestContext, Context, Workspace_CF

將數據列傳送至基本記錄

將資料中需要基本查詢功能的資料列傳送至基本記錄資料表,以降低擷取成本。 如需如何將數據傳送至多個數據表的詳細資訊,請參閱將數據傳送至多個數據表。

保護敏感性資料

您可能有一個資料來源,其會傳送您基於隱私權或合規性理由而不想儲存的資訊。

篩選敏感性資訊

使用降低數據成本中所述的相同策略,篩選出包含敏感性資訊的整個數據列或特定數據行。 在下列範例中,數據 ClientIP 行會從輸出中移除。

source | project-away ClientIP

模糊化敏感性資訊

使用 字串函式 ,以通用字元取代IP位址或電話號碼中的數位等資訊。 下列範例會將電子郵件位址中的用戶名稱取代為 「*****」。

source | extend Email = replace_string(Email,substring(Email,0,indexof(Email,"@")),"*****")

傳送至替代數據表

將敏感性記錄傳送至具有不同角色型存取控制設定的替代資料表。 如需如何將數據傳送至多個數據表的詳細資訊,請參閱將數據傳送至多個數據表。

擴充資料

使用轉換將資訊新增至提供商務內容或簡化後續查詢資料的資料。 使用 字串函式 從數據行擷取重要資訊,然後使用 extend 語句將新數據行新增至數據源。 下列範例會新增一個數據行,以識別另一個數據行中的IP位址是內部或外部。

source | extend IpLocation = iff(split(ClientIp,".")[0] in ("10","192"), "Internal", "External")

格式化目的地的資料

您可能有一個資料來源,其會以不符合目的地資料表結構的格式傳送資料。 使用轉換將資料重新格式化為必要的結構描述。

修改架構

使用 和 之類的extendproject命令來修改傳入數據的架構,以符合目標數據表。 在下列範例中,會使用 KQL 函式將名為 TimeGenerated 的新數據行新增至傳出數據,以傳回目前的時間。

source | extend TimeGenerated = now()

剖析數據

split使用 或 parse 運算子,將數據剖析為目的地數據表中的多個數據行。 在下列範例中,傳入數據具有名為 RawData 的逗號分隔數據行,其會分割成目的地數據表的個別數據行。

source 
| project d = split(RawData,",") 
| project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])

警告

如需使用複雜剖析命令的秘訣,請參閱中斷大型剖析命令。

下一步