Partager via


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

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

URI de la requête

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

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

En-têtes de requête

Les en-têtes de demande du tableau suivant sont obligatoires.

En-tête de page Descriptif
Autorisation Voir des informations supplémentaires ci-dessous sur la création d’un en-tête HMAC-SHA256
Type de contenu Obligatoire. Définissez ceci sur application/json
Log-Type Permet de spécifier le nom du message envoyé. Actuellement, le type Log ne prend en charge que les caractères alphabétiques. Il ne prend pas en charge les chiffres ou les caractères spéciaux
x-ms-date La date à laquelle la demande a été traitée au format RFC 1123
champ généré dans le temps 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 à partir des données du message. Si ce champ n’est pas spécifié, la valeur par défaut de 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 du collecteur de données HTTP Log Analytics doit inclure l’en-tête Authorization. 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 transmettre cette signature dans le cadre de la demande.

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

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID est l’identifiant unique de l’espace de travail Log Analytics, et Signature est un code d’authentification de message basé sur le hachage (HMAC) construit à partir de la demande et calculé à l’aide de l’algorithme SHA256, puis encodé à l’aide de l’encodage Base64.

Construction de la chaîne de signature

Pour coder 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 codée en UTF-8, construisez l’en-tête Authorization et ajoutez l’en-tête à la demande.

Encodage de la signature

Pour coder la signature, appelez l’algorithme HMAC-SHA256 sur la chaîne de signature encodée en UTF-8 et encodez le résultat en Base64. Utilisez le format suivant (représenté par un pseudo-code) :

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

Corps de la requête

Corps du message envoyé au point de terminaison.

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

Vous pouvez regrouper plusieurs messages du même type dans un seul corps de demande.

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

Limites des données

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

  • Maximum de 30 Mo par publication à l’API du collecteur de données Log Analytics. Il s’agit d’une limite de taille pour une publication unique. Si les données d’un seul article dépassent 30 Mo, vous devez diviser les données en morceaux de plus petite taille et les envoyer simultanément.
  • Maximum de 32 Ko pour les valeurs de champ. Si la valeur du champ est supérieure à 32 Ko, les données sont 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 l’utilisation et de l’expérience de recherche.

Voir aussi