你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Monitor 中的日志引入 API

利用 Azure Monitor 中的日志引入 API,可以从任何 REST API 客户端将数据发送到 Log Analytics 工作区。 通过使用此 API,可以从几乎任何源将数据发送到支持的内置表或发送到你创建的自定义表。 甚至可以使用自定义列来扩展内置表的架构。

备注

日志引入 API 的旧称为“自定义日志 API”。

基本操作

你的应用程序会将数据发送到某个数据收集终结点 (DCE),该终结点是你的订阅的唯一连接点。 你的 API 调用的有效负载包括设置为 JSON 格式的源数据。 调用:

  • 指定数据收集规则 (DCR),用于了解源数据的格式。
  • 可能针对目标表进行筛选和转换。
  • 将其定向到特定工作区中的特定表。

你可以通过修改 DCR 来修改目标表和工作区,无需对 REST API 调用或源数据做出任何更改。

显示日志引入 API 概述的关系图。

受支持的表

自定义表

日志引入 API 可以将数据发送到你创建的任何自定义表,还可以发送到 Log Analytics 工作区中的某些内置表。 目标表必须先存在,然后才能向它发送数据。 自定义表必须具有 _CL 后缀。

内置表

日志引入 API 可以将数据发送到以下内置表。 其他表可以添加到此列表中,因为已实现相应的支持。 在内置表的基础上扩展的列必须具有后缀 _CF。 自定义表中的列不需要此后缀。 列名可包含字母数字字符及字符 _-,并且它们必须以字母开头。

身份验证

日志引入 API 的身份验证在使用标准 Azure 资源管理器身份验证的 DCE 执行。 一种常见策略是使用应用程序 ID 和应用程序密钥,如教程:将引入时转换添加到 Azure Monitor 日志中所述。

源数据

应用程序发送的源数据会设置为 JSON 格式,并且必须与 DCR 预期的结构匹配。 这些数据不一定需要匹配目标表的结构,因为 DCR 可以包含转换,以将这些数据转换为匹配该表的结构。

数据收集规则

数据收集规则定义由 Azure Monitor 收集的数据,并指定发送或存储这些数据的方式和位置。 REST API 调用必须指定要使用的 DCR。 一个 DCE 可以支持多个 DCR,因此,可以为不同的源和目标表指定不同的 DCR。

DCR 必须了解输入数据的结构和目标表的结构。 如果这两个结构不匹配,它可以使用转换将源数据转换为与目标表匹配。 还可通过转换来筛选源数据并执行任何其他计算或转换。

发送数据

若要使用日志引入 API 将数据发送到 Azure Monitor,请通过 HTTP 对 DCE 进行 POST 调用。 以下各节对调用进行了详细介绍。

终结点 URI

终结点 URI 采用以下格式,其中 Data Collection EndpointDCR Immutable ID 标识 DCE 和 DCR。 Stream Name 指应处理自定义数据的 DCR 中的

{Data Collection Endpoint URI}/dataCollectionRules/{DCR Immutable ID}/streams/{Stream Name}?api-version=2021-11-01-preview

注意

可以从 DCR 的 JSON 视图中检索不可变 ID。 有关详细信息,请参阅从 DCR 收集信息

标头

标头 必需? 说明
授权 持有者(通过客户端凭据流获得的持有者令牌)
Content-Type application/json
Content-Encoding gzip 使用 gzip 压缩架构来优化性能。
x-ms-client-request-id 字符串格式的 GUID 可由 Microsoft 用于任何故障排除目的的请求 ID。

正文

调用的正文包括要发送到 Azure Monitor 的自定义数据。 数据的形式必须是 JSON 对象或数组,其结构与 DCR 中的流预期的格式相匹配。 此外,请务必确保请求正文以 UTF-8 正确编码,以防止数据传输出现任何问题。

示例调用

有关使用日志引入 API 的示例数据和 API 调用,请参阅使用 Azure 门户将自定义日志发送到 Azure Monitor 日志使用资源管理器模板将自定义日志发送到 Azure Monitor 日志

限制和局限

如需了解与日志引入 API 相关的限制,请参阅 Azure Monitor 服务限制

后续步骤