Visualisation des regroupements

Le regroupement utilise l'apprentissage automatique pour identifier le modèle des enregistrements de journal, puis pour regrouper les journaux ayant un modèle similaire.

Le regroupement permet de réduire considérablement le nombre total d'entrées de journal que l'utilisateur doit explorer et d'identifier facilement les valeurs aberrantes. Les entrées de journal regroupées sont présentées sous la forme d'exemple de message.
  1. Ouvrez le menu de navigation et cliquez sur Observabilité et gestion. Sous Log Analytics, cliquez sur Explorateur de journaux.
  2. Recherchez des journaux pour un jeu d'entités. Voir Effectuer des recherches dans les journaux par entité.
  3. Dans le panneau Visualiser, sélectionnez Regroupement (ouvrir un regroupement).

    Visualisation de grappe qui affiche l'histogramme et le sommaire de grappe

Vous pouvez voir que des enregistrements de journal similaires sont regroupés dans des regroupements, avec une vue d'histogramme de tous les enregistrements regroupés par intervalle de temps. Vous pouvez effectuer un zoom avant sur un ensemble particulier d'intervalles (enregistrements regroupés par intervalles de temps dans ce cas) dans l'histogramme en maintenant le bouton gauche de la souris enfoncé et en dessinant un rectangle sur le jeu d'intervalles requis. Après le zoom avant, les enregistrements du regroupement changent en fonction de l'intervalle sélectionné.

La vue Regroupement affiche dans sa partie supérieure une bannière sommaire contenant les onglets suivants :

  • Nombre total de regroupements : Nombre total de regroupements pour les enregistrements de journal sélectionnés.


    Bannière de grappe pour le nombre total de grappes

    Note

    Si vous passez le curseur de la souris sur ce panneau, vous pouvez également voir le nombre d'enregistrements de journal (par exemple, 260 regroupements de 1 413 036 enregistrements de journal).

  • Problèmes potentiels : Nombre de regroupements présentant des problèmes potentiels basés sur des enregistrements de journal contenant des mots tels que erreur, fatal, exception, etc.


    bannière de grappe - problèmes potentiels

  • Valeurs aberrantes : Nombre de regroupements qui sont survenus une seule fois au cours d'une période indiquée.


    Bannière de grappe - Valeurs aberrantes

  • Tendances : Nombre de tendances uniques au cours de la période. De nombreuses regroupements peuvent avoir la même tendance. Cliquez sur ce panneau pour afficher un regroupement à partir de chacune des tendances.


    Bannière de grappe - tendances

Lorsque vous cliquez sur l'un des onglets, la vue d'histogramme du regroupement change pour afficher les enregistrements de l'onglet sélectionné.

Chaque modèle de regroupement affiche les éléments suivants :

  • Tendance : Cette colonne affiche une représentation graphique sparkline de la tendance (appelée forme de tendance) de la génération de messages de journal (d'un regroupement) en fonction de l'intervalle de temps sélectionné lors du regroupement des enregistrements. Chaque forme de tendance est identifiée par un ID forme tel que 1, 2, 3, etc. Vous pouvez ainsi trier les enregistrements regroupés en fonction des formes de tendance.

    Cliquez sur la flèche à gauche d'une entrée de tendance pour afficher la visualisation des séries chronologiques des résultats de regroupement. Cette visualisation montre comment les enregistrements de journal d'un regroupement ont été répartis en fonction de l'intervalle de temps sélectionné dans l'interrogation. La forme de tendance est une représentation graphique sparkline des séries chronologiques.

  • ID : Cette colonne contient l'ID regroupement. L'ID est unique dans la collecte.

  • Nombre : Cette colonne indique le nombre d'enregistrements de journal ayant la même signature de message.

  • Exemple de message : Cette colonne affiche un exemple d'enregistrement de journal à partir de la signature de message.

  • Source de journaux : Cette colonne répertorie les sources de journaux qui ont généré les messages du regroupement.

Vous pouvez cliquer sur Afficher les tendances similaires pour trier les regroupements par ordre croissant de forme de tendance. Vous pouvez également sélectionner un ou plusieurs ID regroupement et cliquer sur Afficher les enregistrements pour afficher tous les enregistrements associés.

Par ailleurs, vous pouvez masquer un message d'un ou plusieurs regroupements dans les résultats pour une meilleure lisibilité. Cliquez avec le bouton droit de la souris sur le regroupement approprié et sélectionnez Masquer le regroupement.

Dans chaque enregistrement, les valeurs de variable sont mises en évidence. Vous pouvez voir toutes les variables similaires dans chaque regroupement en cliquant sur une variable dans la section Exemple de message. Le fait de cliquer sur les variables affiche toutes les valeurs (dans le jeu d'enregistrements) pour cette variable particulière.

Dans la section Exemple de message, certains modèles de regroupement affichent un lien <n> autres exemples.... Cliquez sur ce lien pour afficher d'autres regroupements semblables au modèle sélectionné.

En cliquant sur Retour aux tendances, vous revenez à la page précédente avec le contexte (il défile jusqu'à l'endroit où vous avez sélectionné la variable pour effectuer un forage détaillé). Le bouton Précédent du navigateur vous ramène également à la page précédente. Toutefois, le contexte n'est pas tenu à jour, car la commande de regroupement est exécutée à nouveau dans ce cas.

Regrouper les données de journal à l'aide de champs SQL

Voici un exemple de regroupement de champs SQL :

Le volume important d'enregistrements de journal est réduit à 89 regroupements, ce qui réduit votre travail d'analyse.

Vous pouvez forer les regroupements en sélectionnant les variables. Par exemple, dans le jeu de regroupements ci-dessus, sélectionnez celui qui contient l'exemple de message SELECT version FROM V$INSTANCE :



Cela affiche la visualisation de l'histogramme des enregistrements de journal contenant l'exemple de message spécifié. Vous pouvez maintenant analyser le contenu du journal initial. Cliquez sur Retour au regroupement pour retourner à la visualisation du regroupement.

Le panneau Tendances affiche les énoncés SQL ayant un modèle d'exécution similaire.

Le panneau Valeurs aberrantes affiche les énoncés SQL rares et différents.

Utiliser l'utilitaire de comparaison de regroupements

Vous pouvez recourir à l'utilitaire de comparaison de regroupements pour identifier de nouveaux problèmes en comparant le jeu de regroupements courant à une référence, puis réduire les résultats en éliminant les regroupements communs ou en double. Voici quelques scénarios types :

Dans deux jeux de données de journal indiqués, l'utilitaire de comparaison de regroupements supprime les données relatives aux regroupements communs puis affiche les données d'histogramme et la table des enregistrements qui sont propres à chaque jeu. Par exemple, lorsque vous comparez les données de journal de la semaine x et de la semaine y, les regroupements communs aux deux semaines sont supprimés par souci de simplification et les données propres à chaque semaine sont affichées. Cela vous permet d'identifier des modèles uniques pour une semaine spécifique et d'analyser le comportement.

Pour la syntaxe et d'autres détails de la commande clustercompare, voir clustercompare.

  1. Dans la visualisation des regroupements ouvrir un regroupement, sélectionnez l'intervalle de temps courant. Par défaut, l'interrogation est *. Vous pouvez affiner l'interrogation pour filtrer les données de journal.
  2. Dans le panneau Visualiser, cliquez sur Comparaison de regroupements.

    La boîte de dialogue de comparaison de regroupements s'ouvre.

  3. Vous pouvez noter que l'interrogation courante et l'intervalle de temps courant sont affichés pour référence.
    • Interrogation de référence : Par défaut, elle est identique à l'interrogation courante. Cliquez sur icône Modifier et modifiez l'interrogation de référence, si nécessaire.
    • Intervalle de temps de référence : Par défaut, l'utilitaire de comparaison de regroupements utilise l'option Utiliser un décalage pour déterminer l'intervalle de temps de référence. Par conséquent, l'intervalle de temps de référence est de la même durée que l'intervalle de temps courant et est décalé vers la période précédant l'intervalle de temps courant. Vous pouvez modifier cette valeur en cliquant sur l'icône icône Modifier et en sélectionnant Utiliser un intervalle de temps personnalisé ou Utiliser l'intervalle de temps courant. Si vous sélectionnez Utiliser un intervalle personnalisé, spécifiez l'intervalle de temps personnalisé à l'aide du menu.
    • Cliquez sur Comparer.

      Vous pouvez maintenant voir la comparaison entre les deux jeux de journaux.

      Cliquez sur le bouton correspondant à chaque jeu pour afficher les détails tels que les regroupements, les problèmes potentiels, les valeurs aberrantes, les tendances et la table des enregistrements qui sont propres au jeu. La page affiche également le nombre de regroupements communs entre les deux jeux de journaux.

      Dans l'exemple ci-dessus, il y a 11 regroupements trouvés seulement dans l'intervalle courant, 4 regroupements trouvés seulement dans l'intervalle de référence, et 30 regroupements communs aux deux intervalles. L'histogramme de l'intervalle de temps courant affiche la visualisation en utilisant uniquement les données de journal propres à l'intervalle de temps courant.

Note

Les regroupements trouvés seulement dans l'intervalle courant sont affichées en premier, suivis des regroupements trouvés seulement dans l'intervalle de référence. Les résultats combinés sont limités à 500 regroupements. Pour réduire les résultats de la comparaison de regroupements, réduisez l'intervalle de temps courant ou ajoutez une commande pour limiter le nombre de résultats. Par exemple, l'ajout de | head 250 limitera les regroupements courants et de référence à 250 chacun. Utilisez la sélection multiple (cliquez et faites glisser) dans l'histogramme des regroupements pour réduire l'intervalle de temps courant lorsque vous utilisez l'option d'intervalle de temps personnalisé. La valeur de décalage de l'intervalle de temps peut être convertie en minutes ou en secondes pour garantir qu'aucun écart ou chevauchement de temps n'existe entre les intervalles de temps courant et de référence.

Utiliser la consultation de dictionnaire avec la commande Cluster

Utilisez la consultation de dictionnaire après la commande cluster pour annoter les regroupements.

Tenez compte des résultats de la commande cluster pour Linux Syslog Logs. Pour définir un dictionnaire afin d'ajouter des étiquettes en fonction du champ Cluster Sample :

  1. Créez un fichier CSV avec le contenu suivant :

    Operator,Condition,Issue,Area
    CONTAINS IGNORE CASE,invalid compare operation,Compare Error,Unknown
    CONTAINS IGNORE CASE REGEX,DNS-SD.*?Daemon not running,DNS Daemon Down,DNS
    CONTAINS ONE OF REGEXES,"[[Cc]onnection refused,[Cc]onnection .*? closed]",Connection Error,Network
    CONTAINS IGNORE CASE,syntax error,Syntax Error,Validation
    CONTAINS IGNORE CASE REGEX,Sense.*?(?:Error|fail),Disk Sensing Error,Disk
    CONTAINS IGNORE CASE REGEX,device.*?check failed,Device Error,Disk

    Importez-le en tant que consultation de type dictionnaire avec le nom Linux Error Categories. Cette consultation contient deux champs, Issue et Area qui peuvent être retournés en cas de condition correspondante. Voir Créer une consultation de dictionnaire.

  2. Utilisez le dictionnaire dans cluster pour retourner un champ :

    Exécutez la commande cluster pour Linux Syslog Logs. Ajoutez une commande lookup après cluster, comme illustré ci-dessous :

    'Log Source' = 'Linux Syslog Logs' 
    | cluster
    | lookup table = 'Linux Error Categories' select Issue using 'Cluster Sample'

    La valeur de Cluster Sample (Exemple de regroupement) pour chaque rangée est évaluée par rapport aux règles définies dans le dictionnaire Linux Error Categories (catégories d'erreur Linux). Le champ Issue (Problème) est retourné par chaque rangée correspondante.

  3. Retournez plusieurs champs en sélectionnant chaque champ dans la commande lookup :

    'Log Source' = 'Linux Syslog Logs'
    | cluster
    | lookup table = 'Linux Error Categories' select Issue as Category, Area using 'Cluster Sample'

    L'interrogation ci-dessus sélectionne le champ Issue (Problème) et le renomme également en Category (Catégorie). Le champ Area est également sélectionné, mais pas renommé.

  4. Filtrez les résultats de regroupement à l'aide des champs du dictionnaire :

    Utilisez la commande where sur des champs spécifiques pour filtrer les regroupements. Prenons l'interrogation suivante :

    'Log Source' = 'Linux Syslog Logs' 
    | cluster 
    | lookup table = 'Linux Error Categories' select Issue as Category, Area using 'Cluster Sample' 
    | where Area in (Unknown, Disk)

    Seuls les enregistrements correspondant aux valeurs spécifiées dans le champ Area sont affichés.

Regroupement sémantique

La visualisation de regroupement permet de regrouper les messages de texte dans les enregistrements de journal. La commande cluster fonctionne en regroupant les messages qui ont le même nombre de mots dans une expression et en identifiant les mots qui changent au sein de ces expressions. Cluster ne prend pas en compte le sens littéral des mots lors du regroupement.

La commande nlp prend en charge le regroupement sémantique. Le regroupement sémantique est réalisé en extrayant les mots clés pertinents d'un message et en les regroupant sur la base de ces mots clés. Deux jeux de messages ayant des mots similaires sont regroupés. Un ID regroupement déterministe est affecté à chaque groupe.

L'exemple suivant montre l'utilisation du regroupement NLP et des mots clés sur les journaux Syslog Linux :

'Log Source' = 'Linux Syslogs Logs'
| link Time, Entity, cluster()
| nlp cluster('Cluster Sample') as 'Cluster ID', 
                    keywords('Cluster Sample') as Keywords
| classify 'Start Time', Keywords, Count, Entity as 'Cluster Keywords'

Regroupement NLP sur les journaux Syslog Linux

Pour plus d'exemples d'utilisation du regroupement sémantique, voir Exemples de regroupement sémantique.

Commande nlp

La commande nlp ne peut être utilisée qu'après la commande link et prend en charge deux fonctions. cluster() peut servir à regrouper le champ spécifié et keywords() peut être utilisé pour extraire les mots clés du champ spécifié.

La commande nlp ne peut être utilisée qu'après la commande link. Voir nlp.

  • nlp cluster() :

    cluster() prend le nom d'un champ généré dans Link et retourne un ID regroupement pour chaque valeur de regroupement. L'ID regroupement retourné est un nombre, représenté sous forme de chaîne. L'ID regroupement peut être utilisé dans les interrogations pour filtrer les regroupements.

    Par exemple :

    nlp cluster('Description') as 'Description ID' - Extrait les mots clés pertinents du champ Description. Le champ Description ID contiendrait un ID unique pour chaque regroupement généré.

  • nlp keywords() :

    Extrait les mots clés des valeurs de champ indiquées. Les mots clés sont extraits à partir d'un dictionnaire. Le nom du dictionnaire peut être fourni à l'aide de l'option table. Si aucun dictionnaire n'est fourni, le dictionnaire par défaut prêt à l'emploi NLP General Dictionary (Dictionnaire général TLN) est utilisé.

    Par exemple :

    nlp keywords('Description') as Summary - Extrait les mots clés pertinents du champ Description. Les mots clés sont accessibles à l'aide du champ Summary.

    nlp table='My Issues' cluster('Description') as 'Description ID' - Au lieu du dictionnaire par défaut, utilisez le dictionnaire personnalisé Mes problèmes.

Dictionnaire TLN

Le regroupement sémantique fonctionne en fractionnant un message en mots, en extrayant les mots pertinents, puis en regroupant les messages qui ont des mots similaires. La qualité du regroupement dépend donc de la pertinence des mots clés extraits.

  • Un dictionnaire est utilisé pour décider des mots à extraire dans un message.
  • L'ordre des éléments dans le dictionnaire est important. Un élément de la première rangée a un rang supérieur à celui de la deuxième rangée.
  • Un dictionnaire est créé en tant que fichier .csv et importé à l'aide de l'interface utilisateur de consultation avec l'option Type de dictionnaire.
  • Il n'est pas nécessaire de créer un dictionnaire, sauf si vous souhaitez modifier le classement des mots. La valeur par défaut prédéfinie NLP General Dictionary est utilisée si aucun dictionnaire n'est spécifié. Il contient des mots anglais préentraînés.

Voir Créer une consultation de dictionnaire.

Voici un exemple de dictionnaire iSCSI Errors :

Opérateur Condition Valeur

CONTAINS IGNORE CASE

erreur

nom

CONTAINS IGNORE CASE

signalé

verbe

CONTAINS IGNORE CASE

iSCSI

nom

CONTAINS IGNORE CASE

connexion

nom

CONTAINS IGNORE CASE

fermé

verbe

Le premier champ est réservé pour une utilisation future. Le deuxième champ est un mot. Le troisième mot indique le type de ce mot. Le type peut être n'importe quelle chaîne et peut être référencé à partir de l'interrogation à l'aide du paramètre category.

Dans l'exemple ci-dessus, le mot erreur a un rang supérieur à celui des mots signalé ou iSCSI. De même, le mot connexion a un rang supérieur à celui de fermé.

Utilisation d'un dictionnaire

Supposons que le texte suivant soit affiché dans le champ Message :

Kernel reported iSCSI connection 1:0 error (1020 - ISCSI_ERR_TCP_CONN_CLOSE: TCP connection closed) state (2) 
Please verify the storage and network connection for additional faults

Le message ci-dessus est analysé et fractionné en mots. Les caractères non alphabétiques sont supprimés. Voici quelques-uns des mots uniques générés par le fractionnement :

Kernel
reported
iSCSI
connection
error
ERR
TCP
CONN
CLOSE
closed
state
...
...

Le message contient un total de 24 mots. Par défaut, le regroupement sémantique tente d'extraire 20 mots et d'utiliser ces mots pour effectuer le regroupement. Dans un cas comme celui ci-dessus, le système doit savoir quels mots sont importants. Pour ce faire, il faut utiliser le dictionnaire.

Le dictionnaire est une liste ordonnée. Si le dictionnaire iSCSI Errors est utilisé, le TLN n'extraira pas ERR, TCP ou CONN, car ces mots ne sont pas inclus dans le dictionnaire. De même, les mots erreur, signalé, iSCSI, connexion et fermé ont une priorité plus élevée en raison de leur rang dans le dictionnaire.