Compartir a través de

Azure Monitor 中的数据收集转换

通过 Azure Monitor 中的转换,可在将传入数据发送到 Log Analytics 工作区之前对其进行筛选或修改。 本文提供转换的基本说明及其实现方式。 它提供指向用于创建转换的其他内容的链接。

在数据源传递数据之后且在将数据发送到目标之前,在数据引入管道的 Azure Monitor 中执行转换。 数据源可以在发送数据之前执行自己的筛选,但将其发送到目标之前,需依赖转换来进一步操作。

转换在数据收集规则 (DCR) 中定义,并使用单独应用于传入数据中的每个条目的 Kusto 查询语言 (KQL) 语句。 它必须了解传入数据的格式,并在目标所需的结构中创建输出。

下图演示了传入数据的转换过程,并显示了可能使用的示例查询。 有关生成转换查询的详细信息,请参阅Azure Monitor 中的转换结构

显示传入数据的引入时间转换的关系图。

为何使用转换

下表描述了可使用转换实现的不同目标。

类别 详细信息
删除敏感数据 你可能有一个数据源,用于发送不希望出于隐私或合规性原因而存储的信息。

筛选敏感信息。 筛选出整行或筛选出包含敏感信息的特定列。

混淆敏感信息。 将 IP 地址或电话号码中的数字等信息替换为通用字符。

发送到备用表。 将敏感记录发送到具有不同基于角色的访问控制配置的备用表。
使用更多或计算的信息扩充数据 使用转换将信息添加到数据,从而提供业务上下文或稍后简化查询数据。

添加包含更多信息的列。 例如,你可能会添加一个列,用于确定另一列中的 IP 地址是内部地址还是外部地址。

添加特定于业务的信息。 例如,你可能会添加一个列,指示基于其他列中的位置信息的公司部门。
降低数据成本 由于需要为任何发送到 Log Analytics 工作区的数据支付引入费用,因此需要筛选出所有不需要的数据来降低成本。

删除整行。 例如,你可能有一个诊断设置来从特定资源收集资源日志,但不需要它生成的所有日志条目。 创建一个筛选掉符合特定条件的记录的转换。

从每行中删除列。 例如,数据可能包含具有冗余数据或最小值的列。 创建一个筛选出不需要的列的转换。

分析列中的重要数据。 你可能有一个表,其中包含隐藏在特定列中的有价值数据。 使用转换将有价值的数据解析为新列并删除原始数据。

将某些行发送到基本日志。 将数据中需要基本查询功能的行发送到基本日志表,以降低引入成本。
设置目标数据的格式 你可能有数据源,该数据源以与目标表的结构不匹配的格式发送数据。 使用转换将数据重格式化为所需架构。

受支持的表

有关可用于转换的表列表,请参阅支持 Azure Monitor 日志中转换的表。 还可以使用Azure Monitor 数据引用,其中列出了每个表的属性,包括它是否支持转换。 除了这些表,还支持任何自定义表(_CL后缀)。

创建转换

有多种方法可以创建转换,具体取决于数据收集方法。 下表列出了用于创建转换的不同方法的指导。

数据收集 参考
日志引入 API 使用 REST API 将数据发送到 Azure Monitor 日志(Azure 门户)
使用 REST API(Azure 资源管理器模板)将数据发送到 Azure Monitor 日志
具有 Azure Monitor 代理的虚拟机 向 Azure Monitor 日志添加转换
具有容器见解的 Kubernetes 群集 容器见解中的数据转换

转换性能

转换的执行时间会增加整体数据引入延迟。 最佳转换的运行时间不应超过 1 秒。 如果转换需要 20 秒以上,可能会遭遇数据丢失。

转换的成本

虽然转换本身不会产生直接成本,但以下情况可能会导致额外费用:

  • 如果转换增加了传入数据的大小(例如通过添加计算列),则需要为额外数据支付标准引入费。
  • 如果转换将传入数据减少了 50% 以上,则需要为超过 50% 的筛选数据量付费。

若要计算转换产生的数据处理费用,请使用以下公式:
[通过转换筛选掉的 GB] -([引入的总 GB] / 2)。 下表显示了示例。

管道引入的数据 转换删除的数据 Log Analytics 工作区引入的数据 数据处理费用 引入费用
20 GB 12 GB 8 GB 2 GB 1 8 GB
20 GB 8 GB 12 GB 0 GB 12 GB

1 此费用不包括 Log Analytics 工作区引入的数据的费用。

为了避免产生此费用,应在应用转换之前使用替代方法筛选引入的数据。 通过这样做,可以减少转换处理的数据量,从而最大限度地减少任何额外的成本。

请参阅 Azure Monitor 定价,了解当前在 Azure Monitor 中引入和保留日志数据的费用。

重要

如果为 Log Analytics 工作区启用了 Azure Sentinel,则无论转换筛选的数据量如何,都不会产生筛选引入费用。

后续步骤