Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Monitor 中的转换允许你在传入数据发送到 Log Analytics 工作区之前对其进行筛选或修改。 本文提供了常见场景的示例查询,你可以使用这些示例开始创建自己的转换。 有关测试这些转换并将其添加到数据收集规则 (DCR) 的详细信息,请参阅在 Azure Monitor 中创建转换。
由于需要为任何发送到 Log Analytics 工作区的数据支付引入费用,因此需要筛选出所有不需要的数据来降低成本。
使用 where
语句筛选符合特定要求的传入数据。 如果传入记录与该语句不匹配,则不会将记录发送到目标。 在以下示例中,仅收集严重性为 Critical
的记录。
source | where severity == "Critical"
从数据源中移除不需要节省数据引入成本的列。 使用 project
语句指定输出中的列,或使用 project-away
仅指定要移除的列。 在以下示例中,RawData
列将从输出中移除。
source | project-away RawData
你可能有一列重要数据被埋没在过多的文本中。 仅保留有价值的数据并移除不需要的文本。 使用字符串函数(例如 substring
和 extract
)分析所需的数据。 还可以使用 parse
或 split
分析数据,以将单个列分解为多个值并选择所需的值。 然后使用 extend
创建包含已分析数据的新列,并使用 project-away
移除原始列。
Advertencia
有关使用复杂分析命令的提示,请参阅拆分大型分析命令。
在以下示例中,RequestContext
列包含具有工作区 ResourceId 的 JSON。 parse_json
和 split
函数用于提取工作区的简单名称。 将为此值创建新列,然后移除其他列。
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")
你可能有数据源,该数据源以与目标表的结构不匹配的格式发送数据。 使用转换将数据重格式化为所需架构。
使用命令(如 extend
和 project
)修改传入数据的架构以匹配目标表。 在以下示例中,将使用 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])
Advertencia
有关使用复杂分析命令的提示,请参阅拆分大型分析命令。