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

使用 HTTP 数据收集器 API 将日志数据发送到 Log Analytics

Azure Log Analytics HTTP 数据收集器 API 允许将 JSON 数据从任何可以调用 REST API 的客户端发布到 Log Analytics 工作区。 通过使用此方法,可以从第三方应用程序或脚本(如 Azure 自动化中的 Runbook)发送数据

请求 URI

若要指定 Log Analytics 工作区,请将 {CustomerID} 替换为工作区的 ID。

方法 请求 URI
发布 https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01
请求 URI 参数
参数 DESCRIPTION
客户ID Log Analytics 工作区的唯一标识符
资源 API 资源名称。 /api/日志
API 版本 要用于此请求的 API 版本。 当前位置 2016-04-01

请求标头

下表中的请求标头是必需的。

标题 DESCRIPTION
授权 请参阅下面有关创建 HMAC-SHA256 标题的其他信息
内容类型(Content-Type) 必填。 将此设置为 application/json
日志类型 允许您指定要提交的邮件的名称。 目前,日志类型仅支持字母字符。 它不支持数字或特殊字符
x-ms-日期 以 RFC 1123 格式处理请求的日期
时间生成字段 允许您指定消息的时间戳字段以用作 TimeGenerated 字段。 这允许您配置 TimeGenerated 以反映消息数据中的实际时间戳。 如果未指定此字段,则引入消息时 TimeGenerated 的默认值。 指定的消息字段应遵循 YYYY-MM-DDThh:mm:ssZ 的 ISO 8601

授权标头

对 Log Analytics HTTP 数据收集器 API 的任何请求都必须包含 Authorization 标头。 若要对请求进行身份验证,必须使用发出请求的工作区的主密钥或辅助密钥对请求进行签名,并将该签名作为请求的一部分传递。

Authorization 标头的格式如下:

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID 是 Log Analytics 工作区的唯一标识符, 签名 是基于哈希的消息身份验证代码 (HMAC),根据请求构造并使用 SHA256 算法计算,然后使用 Base64 编码进行编码。

构造签名字符串

若要对共享密钥签名字符串进行编码,请使用以下格式:

	StringToSign = VERB + "\n" +
	Content-Length + "\n" +
	Content-Type + "\n" +
	x-ms-date + "\n" +
	"/api/logs";

以下示例显示了一个签名字符串:

POST \n1024\napplication/json\nx-ms-date:Mon, 04 Apr 2016 08:00:00 GMT\n/api/logs

接下来,使用 HMAC-SHA256 算法对 UTF-8 编码的签名字符串进行编码,构造 Authorization 标头,并将标头添加到请求中。

对签名进行编码

若要对签名进行编码,请对 UTF-8 编码的签名字符串调用 HMAC-SHA256 算法,并将结果编码为 Base64。 使用以下格式(显示为伪代码):

Signature=Base64(HMAC-SHA256(UTF8(StringToSign)))

请求主体

提交到终结点的消息正文。

	{
	  "key1": "value1",
	  "key2": "value2",
	  "key3": "value3",
	  "key4": "value4"
	}

您可以将相同类型的多条消息批处理到单个请求正文中。

	[
	  {
	    "key1": "value1",
	    "key2": "value2",
	    "key3": "value3",
	    "key4": "value4"
	  },
	  {
	    "key1": "value5",
	    "key2": "value6",
	    "key3": "value7",
	    "key4": "value8"
	  }
	]

数据限制

发布到 Log Analytics 数据收集 API 的数据存在一些约束。

  • 每个帖子到 Log Analytics 数据收集器 API 最多 30 MB。 这是单个帖子的大小限制。 如果单个帖子的数据超过 30 MB,则应将数据拆分为较小的块并同时发送。
  • 字段值最大为 32 KB。 如果字段值大于 32 KB,将截断数据。
  • 给定类型的推荐最大字段数是 50 个。 从可用性和搜索体验的角度来看,这是一个实际限制。

另请参阅