Créer des requêtes de journal Azure Monitor de base pour extraire des informations de données de journal

Effectué

Vous pouvez utiliser des requêtes de journal Azure Monitor pour extraire des informations des données de journal. Les requêtes représentent une part importante de l’examen de données de journal capturées par Azure Monitor.

Dans l’exemple de scénario, l’équipe des opérations utilisera des requêtes de journal Azure Monitor pour examiner l’intégrité de son système.

Écrire des requêtes de journal Azure Monitor à l’aide de Log Analytics

Vous pouvez utiliser l’outil Log Analytics, qui est disponible dans le portail Azure, pour exécuter des exemples de requêtes ou créer vos propres requêtes :

  1. Dans le portail Azure, dans le volet du menu de gauche, sélectionnez Superviser.

    La page Azure Monitor s’affiche avec d’autres options, notamment Journal d’activité, Alertes, Métriques et Journaux.

  2. Sélectionnez Journaux d’activité.

    Vous pouvez ici entrer votre requête et voir la sortie.

    Screenshot of Azure Monitor with a new query tab opened.

Écrire des requêtes avec le langage Kusto

Vous pouvez utiliser le langage de requête Kusto pour interroger les informations de journal de vos services qui s’exécutent dans Azure. Une requête Kusto est une requête en lecture seule de traitement de données et de retour de résultats. Vous formulez la requête en texte brut en utilisant un modèle de flux de données conçu pour faciliter la lecture, l’écriture et l’automatisation de la syntaxe. La requête utilise des entités de schéma qui sont organisées dans une hiérarchie semblable à celle d’Azure SQL Database : bases de données, tables et colonnes.

Une requête Kusto se compose d’une séquence d’instructions de requête, délimitées par un point-virgule (;). Au moins une instruction est une instruction d’expression tabulaire. Une instruction d’expression tabulaire met en forme les données organisées dans un tableau avec des lignes et des colonnes.

La syntaxe d’une instruction d’expression tabulaire comprend un flux de données tabulaires qui part d’une source de données et va d’un opérateur de requête tabulaire à un autre. Une source de données peut être une table dans une base de données ou un opérateur qui produit des données. Les données transitent ensuite dans un ensemble d’opérateurs de transformation de données liés avec le délimiteur (|) de canal.

Par exemple, la requête Kusto suivante a une seule instruction d’expression tabulaire. L’instruction commence par une référence à une table appelée Events. La base de données qui héberge cette table est implicite ici et fait partie des informations de connexion. Les données de cette table, stockées dans des lignes, sont filtrées par la valeur de la colonne StartTime. Les données sont filtrées plus en détail par la valeur de la colonne State. La requête retourne ensuite le nombre de lignes obtenues.

Events
| where StartTime >= datetime(2018-11-01) and StartTime < datetime(2018-12-01)
| where State == "FLORIDA"  
| count

Notes

Le langage de requête Kusto utilisé par Azure Monitor respecte la casse. Les mots clés du langage sont généralement écrits en minuscules. Quand vous utilisez des noms de tables ou de colonnes dans une requête, veillez à utiliser la casse adéquate.

Les événements capturés à partir des journaux des événements des ordinateurs supervisés ne représentent qu’un seul type de source de données. Azure Monitor propose de nombreux autres types de sources de données. Par exemple, la source de données Heartbeat signale l’intégrité de tous les ordinateurs qui envoient des rapports à votre espace de travail Log Analytics. Vous pouvez également capturer des données à partir de compteurs de performances et mettre à jour des enregistrements de gestion.

L’exemple suivant récupère l’enregistrement de pulsation le plus récent pour chaque ordinateur. L’ordinateur est identifié par son adresse IP. Dans cet exemple, l’agrégation summarize avec la fonction arg_max retourne l’enregistrement avec la valeur la plus récente pour chaque adresse IP.

Heartbeat
| summarize arg_max(TimeGenerated, *) by ComputerIP