Partager via


Envoyer des données de journal à Log Analytics avec l’API collecteur de données HTTP

L’API Collecteur de données HTTP Azure Log Analytics vous permet d’envoyer des données POST JSON à un espace de travail Log Analytics à partir de n’importe quel client qui peut appeler l’API REST. À l’aide de cette méthode, vous pouvez envoyer des données à partir d’applications tierces ou de scripts, comme à partir d’un runbook dans Azure Automation

URI de demande

Pour spécifier votre espace de travail Log Analytics, remplacez {CustomerID} par l’ID de votre espace de travail.

Méthode URI de demande
Publier https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01
Requête Paramètres URI
Paramètre Description
CustomerID Identificateur unique pour l’espace de travail Log Analytics
Ressource Nom de la ressource API. /api/logs
Version d'API Version de l’API à utiliser avec cette demande. Actuellement 01-04-2016

En-têtes de requête

Les en-têtes de demande dans le tableau suivant sont nécessaires.

En-tête Description
Autorisation Consultez les informations supplémentaires ci-dessous sur la création d’un en-tête HMAC-SHA256
Content-Type Obligatoire. Définissez cette valeur sur application/json
Log-Type Vous permet de spécifier le nom du message envoyé. Actuellement, le type de journal prend uniquement en charge les caractères alpha. Il ne prend pas en charge les chiffres ou les caractères spéciaux
x-ms-date Date à laquelle la demande a été traitée au format RFC 1123
time-generated-field Vous permet de spécifier le champ d’horodatage du message à utiliser comme champ TimeGenerated. Cela vous permet de configurer timeGenerated pour qu’il reflète l’horodatage réel des données de message. Si ce champ n’est pas spécifié, la valeur par défaut pour TimeGenerated lorsque le message est ingéré. Le champ de message spécifié doit suivre la norme ISO 8601 de AAAA-MM-JJThh:mm:ssZ

En-tête d’autorisation.

Toute demande adressée à l’API Collecteur de données HTTP Log Analytics doit inclure l’en-tête Autorisation. Pour authentifier une demande, vous devez signer la demande avec la clé primaire ou secondaire de l’espace de travail qui effectue la demande et passer cette signature dans le cadre de la demande.

Le format de l’en-tête d’autorisation est le suivant :

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID est l’identifiant unique de l’espace de travail Log Analytics, et Signature est un code HMAC (Hash-based Message Authentication Code) construit à partir de la requête et calculé à l’aide de l’algorithme SHA256, puis encodé à l’aide de l’encodage Base64.

Construction de la chaîne de signature

Pour encoder la chaîne de signature de clé partagée, utilisez le format suivant :

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

L’exemple suivant montre une chaîne de signature :

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

Ensuite, encodez cette chaîne à l’aide de l’algorithme HMAC-SHA256 sur la chaîne de signature encodée en UTF-8, construisez l’en-tête Authorization et ajoutez l’en-tête à la demande.

Encodage de la signature

Pour encoder la signature, appelez l'algorithme HMAC-SHA256 dans la chaîne de signature encodée en UTF-8 et encodez le résultat en Base64. Utilisez le format suivant (affiché comme pseudocode) :

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

Corps de la demande

Corps du message envoyé au point de terminaison.

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

Vous pouvez traiter plusieurs messages du même type dans un seul corps de requête.

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

Limites de données

Il existe certaines contraintes sur les données publiées sur l’API de collecte de données de Log Analytics.

  • Un maximum de 30 Mo par publication sur l’API de collecte de données de Log Analytics. Il s’agit d’une limite de taille pour une publication unique. Si les données d’une publication unique sont supérieures à 30 Mo, vous devrez fractionner les données en segments de plus petite taille et les envoyer simultanément.
  • Maximum de 32 Ko pour les valeurs de champ. Si la valeur de champ est supérieure à 32 Ko, les données seront tronquées.
  • Le nombre maximal recommandé de champs pour un type donné est 50. Il s’agit d’une limite pratique du point de vue de la facilité d’utilisation et de l’expérience de recherche.

Voir aussi