Поделиться через


Отправка данных журнала в Log Analytics с помощью API сборщика данных HTTP

API сборщика данных HTTP Azure Log Analytics позволяет ОТПРАВЛЯТЬ данные JSON в рабочую область Log Analytics из любого клиента, который может вызывать REST API. С помощью этого метода можно отправлять данные из сторонних приложений или скриптов, например из модуля Runbook в служба автоматизации Azure

Универсальный код ресурса (URI) запроса

Чтобы указать рабочую область Log Analytics, замените {CustomerID} идентификатором рабочей области.

Метод Универсальный код ресурса (URI) запроса
Опубликовать https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01
Запрос Параметры URI
Параметр Описание
CustomerID Уникальный идентификатор рабочей области Log Analytics
Ресурс Имя ресурса API. /api/logs
Версия API Версия API для использования с этим запросом. В настоящее время 01.04.2016 г.

Заголовки запросов

Заголовки запроса, приведенные в следующей таблице, являются обязательными.

Header Описание
Авторизация Дополнительные сведения о создании заголовка HMAC-SHA256 см. ниже.
Content-Type Обязательный. Присвойте этому параметру значение application/json
Log-Type Позволяет указать имя отправляемого сообщения. В настоящее время тип журнала поддерживает только альфа-символы. Он не поддерживает числовые и специальные символы.
x-ms-date Дата обработки запроса в формате RFC 1123
time-generated-field Позволяет указать поле метки времени сообщения, которое будет использоваться в качестве поля TimeGenerated. Это позволяет настроить timeGenerated для отражения фактической метки времени из данных сообщения. Если это поле не указано, по умолчанию используется значение TimeGenerated при приеме сообщения. Указанное поле сообщения должно соответствовать стандарту ISO 8601 гггг-ММ-ДДТчч:мм:ссЗ.

Заголовок авторизации

Любой запрос к API сборщика данных HTTP Log Analytics должен содержать заголовок 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 и добавьте заголовок в запрос.

Кодирование сигнатуры

Для кодирования сигнатуры вызовите алгоритм HMAC-SHA256 для строки сигнатуры в кодировке UTF-8 и закодируйте результат в 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"
	  }
	]

Ограничения данных

Существуют ограничения на данные, публикуемые в API сбора данных Log Analytics.

  • Не более 30 МБ на публикацию для API сбора данных Log Analytics. Это ограничение размера для одной публикации. Если данные одной публикации превышают 30 МБ, необходимо разделить данные на меньшие фрагменты и отправить их параллельно.
  • Не более 32 КБ для значений полей. Если значение поля превышает 32 КБ, данные будут усечены.
  • Рекомендуемое максимальное количество полей для данного типа — 50. Это ограничение введено для удобства поиска и использования.

См. также раздел