Azure Monitor 中数据收集规则的结构
数据收集规则 (DCR) 是一组说明,用于确定如何收集和处理发送到 Azure Monitor 的遥测数据。 某些 DCR 将由 Azure Monitor 创建和管理。 本文介绍在需要直接使用 DCR 的情况下,用于创建和编辑 DCR 的 JSON 属性。
- 有关使用此处所述的 JSON 的详细信息,请参阅在 Azure Monitor 中创建和编辑数据收集规则 (DCR)。
- 有关不同方案的示例 DCR,请参阅 Azure Monitor 中的示例数据收集规则 (DCR)。
属性
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