Envío de datos de registro a Log Analytics con la API del recopilador de datos HTTP

La API del recopilador de datos HTTP de Azure Log Analytics permite publicar datos JSON en un área de trabajo de Log Analytics desde cualquier cliente que pueda llamar a la API REST. Mediante este método, puede enviar datos desde aplicaciones de terceros o desde scripts, como desde un runbook en Azure Automation

URI de solicitud

Para especificar el área de trabajo de Log Analytics, reemplace {CustomerID} por el identificador del área de trabajo.

Método URI de solicitud
Publicar https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01
Solicitud Parámetros de identificador URI
Parámetro Descripción
CustomerID Identificador único del área de trabajo de Log Analytics
Resource Nombre del recurso de API. /api/logs
Versión de la API Versión de la API que se va a usar con esta solicitud. Actualmente 2016-04-01

Encabezados de solicitud

Los encabezados de solicitud de la siguiente tabla son necesarios.

Encabezado Descripción
Authorization Consulte información adicional a continuación sobre cómo crear un encabezado HMAC-SHA256
Content-Type Obligatorio. Establézcalo en application/json
Log-Type Permite especificar el nombre del mensaje que se envía. Actualmente, el tipo de registro solo admite caracteres alfa. No admite valores numéricos ni caracteres especiales
x-ms-date Fecha en la que se procesó la solicitud en formato RFC 1123
time-generated-field Permite especificar el campo de marca de tiempo del mensaje que se va a usar como campo TimeGenerated. Esto le permite configurar TimeGenerated para reflejar la marca de tiempo real de los datos del mensaje. Si no se especifica este campo, el valor predeterminado de TimeGenerated cuando se ingiere el mensaje. El campo de mensaje especificado debe seguir la ISO 8601 de AAAA-MM-DDThh:mm:ssZ

Encabezado de autorización

Cualquier solicitud a la API del recopilador de datos HTTP de Log Analytics debe incluir el encabezado authorization. Para autenticar una solicitud, debe firmar la solicitud con la clave principal o secundaria del área de trabajo que realiza la solicitud y pasar esa firma como parte de la solicitud.

El formato del encabezado Authorization es el siguiente:

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID es el identificador único para el área de trabajo de Log Analytics y Signature es un código de autenticación de mensajes basado en hash (HMAC) construido a partir de la solicitud y calculado mediante el algoritmo SHA256 y, a continuación, codificado mediante codificación Base64.

Construcción de la cadena de firma

Para codificar la cadena de firma de clave compartida, use el siguiente formato:

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

En el ejemplo siguiente se muestra una cadena de firma:

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

A continuación, codifique esta cadena mediante el algoritmo HMAC-SHA256 a través de la cadena de firma con codificación UTF-8, construya el encabezado Authorization y agregue el encabezado a la solicitud.

Codificar la firma

Para codificar la firma, llame al algoritmo HMAC-SHA256 en la cadena de firma codificada mediante UTF-8 y codifique el resultado como Base64. Utilice el formato siguiente (mostrado como pseudocódigo):

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

Cuerpo de la solicitud

Cuerpo del mensaje enviado al punto de conexión.

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

Puede procesar por lotes varios mensajes del mismo tipo en un único cuerpo de solicitud.

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

Límites de datos

Existen algunas limitaciones en cuando a los datos enviados a la API de recopilación de datos de Log Analytics.

  • Máximo de 30 MB por publicación en la API de recopilación de datos de Log Analytics. Se trata de un límite de tamaño para una sola publicación. Si los datos de una única publicación superan los 30 MB, debe dividir los datos en fragmentos más pequeños y enviarlos al mismo tiempo.
  • Límite de 32 kB para los valores de campo. Si el valor del campo es mayor que 32 kB, se truncarán los datos.
  • El número máximo recomendado de campos para un tipo determinado es 50. Se trata de un límite práctico desde una perspectiva de la experiencia de búsqueda y la facilidad de uso.

Consulte también