Envoyer des données de journal à Log Analytics avec l’API collecteur de données HTTP
Article
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.
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 :
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 :
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) :
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.
Découvrez comment créer un espace de travail Log Analytics dans le portail Azure, qui permet une collecte et une analyse de données robustes pour Microsoft Defender pour le cloud afin d’améliorer votre posture de sécurité.