Metsys Blog

Débuter avec Log Analytics : Partie 6 – Créer votre lab à partir de fausses données dans un CSV

Cliquez pour évaluer cet article !
0 avis

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

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 :

  1. Allez dans Workbooks
  1. Cliquez sur New
  2. Supprimez la query par défaut
  1. Cliquez sur Add > Add query
  1. Saisissez la requête suivante :
LenovoBIOSreport_CL
| project ComputerName_s, DeviceModel_s, UserName_s, CurrentVersionBIOS_s, NewVersionBIOS_s, BIOSStatus_s, NotUpdatedSince_s
  1. Ci-dessous le résultat :
  1. Cliquez sur Done editing
  2. Ci-dessous le résultat :

Notez cet article

Vous avez aimé cet article ?

Rendez-le plus visible auprès des internautes en lui mettant une bonne note.

Cliquez pour évaluer cet article !
0 avis

Articles pouvant vous intéresser

RETEX CERT

Tout d’abord, en termes d’éthique et pour respecter la confidentialité des sujets aussi sensibles que