Azure Monitor 中数据收集规则的结构

数据收集规则 (DCR) 是一组说明,用于确定如何收集和处理发送到 Azure Monitor 的遥测数据。 某些 DCR 将由 Azure Monitor 创建和管理。 本文介绍在需要直接使用 DCR 的情况下,用于创建和编辑 DCR 的 JSON 属性。

属性

DCR 顶层的属性。

properties 说明
immutableId 数据收集规则的唯一标识符。 创建 DCR 时,会自动创建属性和值。
description 数据收集规则的说明。
dataCollectionEndpointId DCR 使用的数据收集终结点 (DCE) 的资源 ID(如果提供)。 不使用 DCE 的 DCR 中不存在的属性。

endpoints

包含 DCR 终结点的 URL。 创建 DCR 时,会自动创建此部分及其属性。

注意

这些属性不是为 2024 年 3 月 31 日之前创建的 DCR 创建的。 在此日期之前创建的 DCR 需要 数据收集终结点 (DCE) 和要指定的 dataCollectionEndpointId 属性。 如果要使用这些嵌入式 DCE,则必须创建新的 DCR。

properties 说明
logsIngestion 日志数据的引入终结点的 URL。
metricsIngestion 指标数据的引入终结点的 URL。

方案

  • 日志引入 API

dataCollectionEndpointId

指定 DCR 使用的数据收集终结点 (DCE)

方案

  • Azure Monitor 代理
  • 日志引入 API
  • 事件中心

streamDeclarations

向 Log Analytics 工作区发送不同类型的数据的声明。 每个流都是一个对象,其键表示流名称,该名称必须以 Custom- 开头。 流包含要发送的 JSON 数据中包含的顶级属性的完整列表。 发送到终结点的数据的形状不需要与目标表的形状匹配。 但是,输入数据之上的转换输出需要与目标形状匹配。

此部分不用于发送已知数据类型的数据源,例如从 Azure Monitor 代理发送的事件和性能数据。

可以分配给属性的可能数据类型包括:

  • string
  • int
  • long
  • real
  • boolean
  • dynamic
  • datetime

方案

  • Azure Monitor 代理(仅文本日志)
  • 日志引入 API
  • 事件中心

destinations

数据发送到的所有目标的声明。 目前仅支持 logAnalytics 作为目标,但 Azure Monitor 代理也可以使用 azureMonitorMetrics。 每个 Log Analytics 目标都需要完整的工作区资源 ID 和一个友好名称(用于在 DCR 中的其他位置引用此工作区)。

方案

  • Azure Monitor 代理(仅文本日志)
  • 日志引入 API
  • 事件中心
  • 工作区转换 DCR

dataSources

监视数据的唯一源,具有自己的格式和数据公开方法。 每个数据源都有一种数据源类型,每种类型将定义必须为每个数据源指定的唯一属性集。 下表列出了当前可用的数据源类型。

数据源类型 说明
eventHub 来自 Azure 事件中心的数据
扩展 基于 VM 扩展的数据源,以独占方式用于 Log Analytics 解决方案和 Azure 服务(查看代理支持的服务和解决方案
logFiles 虚拟机上的文本日志
performanceCounters Windows 和 Linux 虚拟机的性能计数器
syslog Linux 虚拟机上的 Syslog 事件
windowsEventLogs 虚拟机上的 Windows 事件日志

方案

  • Azure Monitor 代理
  • 事件中心

dataFlows

将流与目标匹配,并选择性地指定转换。

dataFlows/Streams

上述部分中定义的一个或多个流。 如果要将多个数据源发送到同一目标,可以在单个数据流中包含多个流。 不过,仅当数据流包含转换时,才使用单个流。 如果你要将特定数据源发送到同一 Log Analytics 工作区中的多个表,则多个数据流也可以使用一个流。

dataFlows/destinations

上述 destinations 部分中的一个或多个目标。 多宿主方案允许多个目标。

dataFlows/transformKql

应用于传入流的可选转换。 转换必须了解目标表架构中传入数据和输出数据的架构。 如果使用转换,数据流应仅使用单个流。

dataFlows/outputStream

描述在要将数据发送到 destination 属性下指定的工作区中的哪个表。 数据被引入到标准 Log Analytics 表中时,outputStream 的值采用 Microsoft-[tableName] 格式;将数据引入自定义表时采用 Custom-[tableName] 格式。 每个流只允许有一个目标。

此属性不用于 Azure Monitor 中的已知数据源,例如事件和性能数据,因为这些数据源会发送到预定义表。 |

方案

  • Azure Monitor 代理
  • 日志引入 API
  • 事件中心
  • 工作区转换 DCR

后续步骤

数据收集规则以及创建这些规则的方法的概述