Dans cet article nous verrons comment créer un lab Log Analytics avec de fausses données à partir d’un CSV.
La série d’article
- Partie 1 : Création du workspace Log Analytics
- Partie 2 : Importation d’informations dans le workspace
- Partie 3 : Création du workbook
- Partie 4 : Ajouter les données Intune dans un workspace Log Analytics
- Partie 5 : Utiliser l’API Log Analytics pour effectuer des requêtes KQL avec PowerShell
- Partie 6 : Créer votre lab à partir de fausses données (vous êtes ici)
- Partie 7 : Donner un meilleur look à vos workbook
Contexte
L’idée sera de créer un lab Log Analytics.
Nous importerons des données dans un Workspace et ces données seront importées depuis un CSV.
A partir de celles-ci, il sera alors possible de tester les différents aspects de Log Analytics, queries KQL, création de workbook…
Notre lab de données
La première étape sera de créer un CSV contenant les fausses données que nous allons importer.
Dans notre exemple le CSV comportera des données concernant l’état de mises à jour BIOS d’un parc lenovo.
Ci-dessous un aperçu du CSV :

Importer les données dans Log Analytics
Informations requises
la première étape est de récupérer les informations nécessaires pour intégrer des données dans Log Analytics :
- Workspace ID
- Primary key
- Nom du Custom Log à créer ou mettre à jour
Vous pouvez trouver le Workspace ID et la primary Key dans la partie Agents management :

Importation des données
- Nous allons tout d’abord configurer quelques variables avec les infos récoltées précédemment :
$CustomerId = <Your Log Analytics Workspace ID>
$Custom_Logs = "<Custom Log name>"
$SharedKey = <Your Log Analytics SharedKey>
Le Custom log sera créé lors de la première opération puis mis à jour ensuite.
Toutes les données seront importées dans ce Custom Log.
- Pour importer les données nous utiliserons le script suivant :
$CustomerId = ""
$TimeStampField = ""
$Custom_Logs = "LenovoBIOSreport"
$SharedKey = ''
# Log analytics functions
Function Build-Signature ($customerId, $sharedKey, $date, $contentLength, $method, $contentType, $resource)
{
$xHeaders = "x-ms-date:" + $date
$stringToHash = $method + "`n" + $contentLength + "`n" + $contentType + "`n" + $xHeaders + "`n" + $resource
$bytesToHash = [Text.Encoding]::UTF8.GetBytes($stringToHash)
$keyBytes = [Convert]::FromBase64String($sharedKey)
$sha256 = New-Object System.Security.Cryptography.HMACSHA256
$sha256.Key = $keyBytes
$calculatedHash = $sha256.ComputeHash($bytesToHash)
$encodedHash = [Convert]::ToBase64String($calculatedHash)
$authorization = 'SharedKey {0}:{1}' -f $customerId,$encodedHash
return $authorization
}
# Create the function to create and post the request
Function Post-LogAnalyticsData($customerId, $sharedKey, $body, $logType)
{
$method = "POST"
$contentType = "application/json"
$resource = "/api/logs"
$rfc1123date = [DateTime]::UtcNow.ToString("r")
$contentLength = $body.Length
$signature = Build-Signature `
-customerId $customerId `
-sharedKey $sharedKey `
-date $rfc1123date `
-contentLength $contentLength `
-method $method `
-contentType $contentType `
-resource $resource
$uri = "https://" + $customerId + ".ods.opinsights.azure.com" + $resource + "?api-version=2016-04-01"
$headers = @{
"Authorization" = $signature;
"Log-Type" = $logType;
"x-ms-date" = $rfc1123date;
"time-generated-field" = $TimeStampField;
}
$response = Invoke-WebRequest -Uri $uri -Method $method -ContentType $contentType -Headers $headers -Body $body -UseBasicParsing
return $response.StatusCode
}
$Test_LA_File = <CSV path>
$Test_LA_CSV = import-csv $Test_LA_File
$InfoToImport_Json = $Test_LA_CSV | ConvertTo-Json
$params = @{
CustomerId = $customerId
SharedKey = $sharedKey
Body = ([System.Text.Encoding]::UTF8.GetBytes($InfoToImport_Json))
LogType = $Custom_Logs
}
$LogResponse = Post-LogAnalyticsData @params
Visualiser les données dans Log Analytics
Après avoir importé les données, un nouveau Custom Log sera créé.
Nous pourrons ensuite créer un workbook à partir de ces données.
Nous allons ici juste lister le contenu des données comme dans le CSV.
Nous allons procéder comme ci-dessous :
- Allez dans Workbooks

- Cliquez sur New
- Supprimez la query par défaut

- Cliquez sur Add > Add query

- Saisissez la requête suivante :
LenovoBIOSreport_CL
| project ComputerName_s, DeviceModel_s, UserName_s, CurrentVersionBIOS_s, NewVersionBIOS_s, BIOSStatus_s, NotUpdatedSince_s
- Ci-dessous le résultat :

- Cliquez sur Done editing
- Ci-dessous le résultat :
