本教程将指导你使用 Azure 门户配置示例工作区数据收集规则 (DCR) 中的转换。 Azure Monitor 中的转换可用于在传入数据发送到目标之前对其进行筛选或修改。 工作区转换为尚未使用 Azure Monitor 数据引入管道的工作流提供引入时间转换支持。
工作区转换将一起存储在工作区的单个 DCR 中,它称为工作区 DCR。 每个转换都与特定表相关联。 转换将应用于从任何不使用 DCR 的工作流发送到此表的所有数据。
注意
本教程使用 Azure 门户来配置工作区转换。 有关使用 Azure 资源管理器模板和 REST API 的同一教程,请参阅教程:使用资源管理器模板将工作区数据收集规则中的转换添加到 Azure Monitor。
在本教程中,你将了解如何执行以下操作:
- 为 Log Analytics 工作区中的表配置工作区转换。
- 为工作区转换编写日志查询。
要完成本教程,需要:
- Log Analytics 工作区,你在其中至少拥有参与者权限。
- 在工作区中创建 DCR 对象的权限。
- 已包含某些数据的表。
- 表不能链接到工作区转换 DCR。
在本教程中,你将通过筛选出某些记录来减少LAQueryLogs
表的存储要求。 你还将在分析列数据时删除列的内容,以在自定义列中存储数据片段。 LAQueryLogs 表是在工作区中启用日志查询审核时创建的。 你可以使用此相同的基本过程为 Log Analytics 工作区中任何受支持的表创建转换。
本教程将使用 Azure 门户,它提供了一个向导,引导你完成创建引入时间转换的过程。 完成这些步骤后,你将看到向导:
- 使用查询中的任何其他列更新表架构。
- 创建一个
WorkspaceTransforms
DCR,如果默认 DCR 尚未链接到工作区,则将其链接到工作区。 - 创建一个引入时间转换,并将其添加到 DCR 中。
需要为你的工作区启用查询审核,以创建你将使用的LAQueryLogs
表。 此步骤不是所有引入时间转换所必需的。 它只是为了生成我们将要使用的示例数据。
在 Azure 门户中的“Log Analytics 工作区”菜单中,选择“诊断设置”>“添加诊断设置”。
为诊断设置输入一个名称。 选择工作区,以便审核数据存储在同一工作区中。 选择“审核”类别,然后选择“保存”以保存诊断设置并关闭“诊断设置”页。
选择“日志”,然后运行一些查询以对
LAQueryLogs
进行数据填充。 这些查询不需要返回要添加到审核日志中的数据。
现在已创建了表,可以为它创建转换了。
在 Azure 门户中的“Log Analytics 工作区”菜单中,选择“表”。 找到
LAQueryLogs
表,然后选择“创建转换”。由于此转换是工作区中的第一个转换,因此必须创建工作区转换 DCR。 如果在同一工作区中为其他表创建转换,则它们将存储在此同一 DCR 中。 选择“创建新的数据收集规则”。 将已为工作区填充“订阅”和“资源组”。 输入 DCR 的名称,然后选择“完成”。
选择“下一步”以查看表中的示例数据。 在定义转换时,结果将应用于示例数据。 出于此原因,可以在将结果应用到实际数据时对结果进行评估。 选择“转换编辑器”以定义转换。
在转换编辑器中,可以看到在将数据引入到表之前将应用于该数据的转换。 传入数据由名为
source
的虚拟表表示,该虚拟表具有与目标表本身相同的列集。 转换最初包含一个简单的查询,该查询返回没有任何更改的source
表。将查询修改为以下示例:
source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Workspace_CF = tostring(Context['workspaces'][0]) | project-away RequestContext, Context
修改将进行以下更改:
- 删除了与查询
LAQueryLogs
表本身相关的行以节省空间,因为这些日志条目不起作用。 - 为所查询的工作区名称添加了一列。
- 删除了
RequestContext
列中的数据以节省空间。
注意
如果需要,使用 Azure 门户,转换的输出将启动对表模式的更改。 将添加列以匹配转换输出,如果它们还不存在的话。 确保你的输出不包含任何不希望添加到表中的列。 如果输出不包括表中已有的列,则不会删除这些列,但不会添加数据。
添加到内置表中的任何自定义列必须以
_CF
结尾。 添加到自定义表中的列不需要有此后缀。 自定义表的名称以_CL
结尾。- 删除了与查询
将查询复制到转换编辑器中,然后选择“运行”查看示例数据的结果。 可以验证新的
Workspace_CF
列是否在查询中。选择“应用”保存转换,然后选择“下一步”查看配置。 选择“创建”以使用新的转换更新 DCR。
大约 30 分钟后,转换才会生效,然后便可通过对表运行查询来对测试转换。 只有应用转换后发送到表的数据才会受到影响。
对于本教程,请运行一些示例查询,将数据发送到LAQueryLogs
表。 包括一些对 LAQueryLogs
的查询,使你可以验证转换是否筛选这些记录。 请注意,输出包含新的 Workspace_CF
列,并且没有 LAQueryLogs
的记录。
本部分介绍你可能会遇到的不同错误情况,以及如何更正它们。
用于驱动 IntelliSense 的缓存可能需要长达 24 小时的时间才能更新。
已知问题当前会影响动态列。 临时的解决方法是在对动态列数据执行任何操作之前,使用 parse_json()
显式分析这些数据。