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

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

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

请求 URI

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

方法 请求 URI
邮递 https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01
请求 URI 参数
参数 说明
CustomerID Log Analytics 工作区的唯一标识符
资源 API 资源名称。 /api/logs
API 版本 要用于此请求的 API 的版本。 当前 2016-04-01

请求标头

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

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

授权标头

对 Log Analytics HTTP 数据收集器 API 的任何请求都必须包含 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

接下来,通过 UTF-8 编码的签名字符串使用 HMAC-SHA256 算法对此字符串进行编码,构造 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 个。 这是从可用性和搜索体验角度考虑的现实限制。

另请参阅