Visualisation avec clusters

La création de clusters s'appuie sur l'apprentissage automatique pour identifier le modèle d'enregistrements de journal, puis regrouper les journaux présentant un modèle similaire.

La création de clusters permet de réduire considérablement le nombre total d'entrées de journal que vous devez explorer, et de repérer facilement les valeurs aberrantes. Les entrées de journal regroupées sont présentées sous forme d'exemple de message.
  1. Ouvrez le menu de navigation et cliquez sur Observation et gestion. Sous Logging Analytics, cliquez sur Explorateur de journal.
  2. Recherchez des journaux pour un ensemble d'entités. Reportez-vous à Recherche de journaux par entité.
  3. Dans le panneau Visualiser, sélectionnez Cluster (ouvrir un cluster).

    Visualisation du cluster qui affiche l'histogramme et le récapitulatif du cluster

Vous pouvez constater que les enregistrements de journal similaires sont regroupés dans des clusters avec une vue d'histogramme de tous les enregistrements regroupés par intervalle. Vous pouvez effectuer un zoom avant sur un ensemble d'intervalles (enregistrements regroupés par intervalle dans ce cas) dans l'histogramme en maintenant enfoncé le bouton gauche de la souris et en dessinant un rectangle sur l'ensemble d'intervalles requis. Une fois le zoom avant effectué, les enregistrements de cluster changent en fonction de l'intervalle sélectionné.

La vue de cluster affiche une bannière récapitulative en haut, avec les onglets suivants :

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


    Bannière de cluster pour le nombre total de clusters

    Remarque

    Si vous positionnez le curseur sur ce panneau, vous pouvez également afficher le nombre d'enregistrements de journal (par exemple, 260 clusters sur 1 413 036 enregistrements de journal).

  • Problèmes potentiels : nombre de clusters avec des problèmes potentiels en fonction des enregistrements de journal contenant des mots tels qu'erreur, fatal, exception, etc.


    bannière de cluster - problèmes potentiels

  • Valeurs aberrantes : nombre de clusters présents une seule fois sur une période donnée.


    Bannière de cluster - valeurs aberrantes

  • Tendances : nombre de tendances uniques au cours de la période. La même tendance peut s'appliquer à de nombreux clusters. Par conséquent, si vous cliquez sur ce panneau, un cluster est affiché à partir de chacune des tendances.


    Bannière de cluster - tendances

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

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

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

    Cliquez sur la flèche à gauche d'une entrée de tendance pour afficher la visualisation de série temporelle des résultats de cluster. Cette visualisation représente la répartition des enregistrements de journal d'un cluster en fonction de la période sélectionnée dans la requête. La forme de tendance est une représentation sparkline de la série temporelle.

  • ID : cette colonne contient l'ID de cluster. L'ID est unique au sein de la collection.

  • Nombre : cette colonne indique le nombre d'enregistrements de journal avec 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 journal : cette colonne répertorie les sources de journal qui ont généré les messages du cluster.

Vous pouvez cliquer sur Afficher les tendances similaires pour trier les clusters selon les formes de tendance, par ordre croissant. Vous pouvez également sélectionner des ID de cluster et cliquer sur Afficher les enregistrements afin d'afficher tous les enregistrements pour les ID sélectionnés.

Si la sortie semble encombrée, vous pouvez également masquer un message de cluster ou plusieurs clusters dans les résultats. Cliquez avec le bouton droit de la souris sur le cluster requis et sélectionnez Masquer le cluster.

Dans chaque enregistrement, les valeurs des variables sont mises en évidence. Vous pouvez visualiser toutes les variables similaires dans chaque cluster en cliquant sur une variable dans la section Exemple de message. Cliquez sur les variables pour afficher toutes les valeurs (dans l'ensemble d'enregistrements) des variables en question.

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

Si vous cliquez sur Retour aux tendances, vous revenez à la page précédente dans votre contexte (la page défile jusqu'à l'emplacement où vous avez sélectionné la variable pour effectuer une analyse descendante). Le bouton Précédent du navigateur vous ramène également à la page précédente, mais sans prise en compte du contexte car la commande de cluster est exécutée à nouveau dans ce cas.

Création de clusters pour les données de journal à l'aide des champs SQL

Voici un exemple de création de clusters sur les champs SQL :

L'important volume d'enregistrements de journal est réduit à 89 clusters, soit moins de groupes de données de journal à analyser pour vous.

Vous pouvez effectuer une analyse descendante vers les clusters en sélectionnant les variables. Par exemple, dans l'ensemble de clusters ci-dessus, sélectionnez le cluster avec l'exemple de message SELECT version FROM V$INSTANCE :



Vous affichez ainsi la visualisation d'histogramme des enregistrements de journal contenant l'exemple de message spécifié. Vous pouvez maintenant analyser le contenu de journal d'origine. Cliquez sur Retour au cluster pour revenir à la visualisation de cluster.

Le panneau Tendances affiche les instructions SQL avec un modèle d'exécution similaire.

Le panneau Valeurs aberrantes affiche les instructions SQL rares et différentes.

Utilitaire de comparaison de clusters

L'utilitaire de comparaison de clusters permet d'identifier de nouveaux problèmes en comparant l'ensemble de clusters en cours à une valeur de référence et en réduisant les résultats par élimination des clusters communs ou en double. Voici quelques scénarios courants :

En prenant deux ensembles de données de journal, l'utilitaire de comparaison de clusters enlève les données en commun dans les clusters, et affiche les données d'histogramme et la table d'enregistrements propres à chaque ensemble. Par exemple, lorsque vous comparez les données de journal de la semaine x et de la semaine y, les clusters communs aux deux semaines sont enlevés à des fins de simplification et les données propres à chaque semaine sont affichées. Vous pouvez ainsi identifier les modèles uniques sur chaque semaine et analyser le comportement.

Pour connaître la syntaxe et les autres détails de la commande clustercompare, reportez-vous à clustercompare.

  1. Dans la visualisation des clusters ouvrir un cluster, sélectionnez la période en cours. Par défaut, la requête est *. Vous pouvez affiner la requête afin de filtrer les données de journal.
  2. Dans le panneau Visualiser, cliquez sur Comparaison de clusters.

    La boîte de dialogue de comparaison de clusters apparaît.

  3. Vous pouvez remarquer que la requête et la période en cours sont affichées pour référence.
    • Requête de valeur de référence : par défaut, elle est identique à la requête en cours. Cliquez sur icône Modifier et, si nécessaire, modifiez la requête de valeur de référence.
    • Période de valeur de référence : par défaut, l'utilitaire de comparaison de clusters applique l'option Utiliser le changement d'heure pour déterminer la période de valeur de référence. Par conséquent, la période de valeur de référence est de même durée que la période en cours et bascule sur la période antérieure à la période en cours. Pour modifier cet aspect, cliquez sur l'icône icône Modifier, puis sélectionnez Utiliser l'heure personnalisée ou Utiliser l'heure actuelle. Si vous sélectionnez Utiliser l'heure personnalisée, indiquez la période personnalisée à l'aide du menu.
    • Cliquez sur Comparer.

      Vous pouvez maintenant afficher la comparaison de clusters entre les deux ensembles de journaux.

      Cliquez sur le bouton correspondant à chaque ensemble pour visualiser les détails tels que les clusters, les problèmes potentiels, les valeurs aberrantes, les tendances et la table d'enregistrements propres à l'ensemble. La page affiche également le nombre de clusters communs entre les deux ensembles de journaux.

      Dans l'exemple ci-dessus, 11 clusters sont présents uniquement dans la période en cours et 4 clusters uniquement dans la période de valeur de référence, et 30 clusters sont communs aux deux périodes. L'histogramme de la période en cours affiche la visualisation en utilisant uniquement les données de journal propres à la période en cours.

Remarque

Les clusters présents uniquement dans la période en cours sont renvoyés en premier, suivis des clusters présents uniquement dans la période de valeur de référence. Les résultats combinés sont limités à 500 clusters. Pour réduire les résultats de la comparaison de clusters, diminuez la période en cours ou ajoutez une commande afin de limiter le nombre de résultats. Par exemple, l'ajout de | head 250 limite les clusters en cours et de valeur de référence à 250 dans chaque catégorie. Utilisez la sélection multiple (cliquer de façon prolongée et faire glisser) sur l'histogramme de cluster afin de réduire la période en cours lorsque vous utilisez l'option d'heure personnalisée. La valeur de changement de période peut être convertie en minutes ou en secondes afin de veiller à ce qu'aucun intervalle ni aucune superposition ne survienne entre la période en cours et la période de valeur de référence.

Utilisation de la recherche de dictionnaire dans Cluster

Utilisez la recherche de dictionnaire après la commande cluster pour annoter les clusters.

Tenez compte des résultats cluster pour les journaux syslog Linux. Pour définir un dictionnaire afin d'ajouter des libellés en fonction du champ Cluster Sample, procédez comme suit :

  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 recherche de type dictionnaire avec le nom Linux Error Categories. Cette recherche contient deux champs, Issue et Area, qui peuvent être renvoyés en cas de condition correspondante. Reportez-vous à Création d'une recherche de dictionnaire.

  2. Utilisez le dictionnaire dans la commande cluster pour renvoyer un champ :

    Exécutez la commande cluster pour les journaux syslog Linux. Ajoutez une commande lookup après cluster, comme indiqué ci-dessous :

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

    La valeur Cluster Sample pour chaque ligne est évaluée en fonction des règles définies dans le dictionnaire Linux Error Categories. Le champ Issue est renvoyé à partir de chaque ligne correspondante.

  3. Renvoyez plusieurs champs en les sélectionnant dans la commande lookup :

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

    La requête ci-dessus sélectionne le champ Issue et le renomme Category. Le champ Area est également sélectionné, mais pas renommé.

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

    Utilisez la commande where sur les champs spécifiques pour filtrer les clusters. Prenons la requête 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 indiquées pour le champ Area sont affichés.

Création de clusters sémantiques

La visualisation de cluster permet de regrouper des messages texte dans des enregistrements de journal. Le cluster regroupe les messages avec un nombre de mots similaire dans une phrase et identifie les mots qui changent dans ces phrases. Le cluster ne prend pas en compte la signification littérale des mots au cours du regroupement.

La commande nlp prend en charge la création de clusters sémantiques. La création de clusters sémantiques est réalisée en extrayant les mots-clés pertinents d'un message et en effectuant le regroupement en fonction de ces mots-clés. Deux ensembles de messages contenant des mots similaires sont placés dans le même cluster. Un ID de cluster déterministe est attribué à chaque groupe.

L'exemple suivant illustre l'utilisation de la création de clusters par traitement du langage naturel 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'

Création de clusters par traitement du langage naturel et mots-clés dans Linux Syslog Logs

Pour plus d'exemples de cas d'emploi de la création de clusters sémantiques, reportez-vous à Exemples de création de cluster sémantique.

Commande nlp

La commande nlp peut uniquement être utilisée après la commande link et prend en charge deux fonctions : cluster() pour créer des clusters sur le champ spécifié, et keywords() pour extraire des mots-clés du champ spécifié.

La commande nlp peut uniquement être utilisée après la commande link. Reportez-vous à nlp.

  • nlp cluster() :

    cluster() prend le nom d'un champ généré dans Lien et renvoie un ID de cluster pour chaque valeur incluse dans un cluster. L'ID de cluster renvoyé est un nombre, représenté sous forme de chaîne. L'ID de cluster peut être utilisé dans les requêtes pour filtrer les clusters.

    Par exemple :

    nlp cluster('Description') as 'Description ID' : permet d'extraire les mots-clés pertinents du champ Description. Le champ Description ID contient un ID unique pour chaque cluster généré.

  • nlp keywords() :

    Extrait les mots-clés des valeurs de champ spécifiées. Les mots-clés sont extraits en fonction 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 est utilisé.

    Par exemple :

    nlp keywords('Description') as Summary : permet d'extraire les mots-clés pertinents du champ Description. Les mots-clés sont accessibles avec le champ Summary.

    nlp table='My Issues' cluster('Description') as 'Description ID' : à la place du dictionnaire par défaut, utilisez le dictionnaire personnalisé My Issues.

Dictionnaire de traitement du langage naturel

La création de clusters sémantiques divise un message en mots, extrait les mots pertinents, puis regroupe les messages avec des mots similaires. La qualité de la création de clusters dépend donc de la pertinence des mots-clés extraits.

  • Un dictionnaire est utilisé pour déterminer les mots qu'un message doit extraire.
  • L'ordre des éléments dans le dictionnaire est important. Le classement de l'élément sur la première ligne est plus élevé que celui de l'élément de la deuxième ligne.
  • Un dictionnaire est créé en tant que fichier .csv et importé à l'aide de l'interface utilisateur de recherche avec l'option Type de dictionnaire.
  • Il n'est pas nécessaire de créer un dictionnaire, sauf si vous voulez modifier le classement des mots. Le dictionnaire par défaut prêt à l'emploi NLP General Dictionary est utilisé si aucun dictionnaire n'est spécifié. Il contient des mots anglais préentraînés.

Reportez-vous à Création d'une recherche de dictionnaire.

Voici un exemple de dictionnaire iSCSI Errors :

Opérateur Condition Valeur

CONTAINS IGNORE CASE

error

nom

CONTAINS IGNORE CASE

reported

verbe

CONTAINS IGNORE CASE

iSCSI

nom

CONTAINS IGNORE CASE

connection

nom

CONTAINS IGNORE CASE

closed

verbe

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

Dans l'exemple ci-dessus, le classement du mot error est supérieur à celui des mots reported et iSCSI. De même, le classement du mot connection est supérieur à celui de closed.

Utilisation d'un dictionnaire

Supposons que le texte suivant figure 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 éléments non alphabétiques sont enlevé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 24 mots au total. Par défaut, la création de clusters sémantiques tente d'extraire 20 mots et utilise ces mots pour effectuer le regroupement. Dans un tel cas, le système doit connaître les mots importants. Le dictionnaire sert à cela.

Le dictionnaire est une liste ordonnée. Si le dictionnaire iSCSI Errors est utilisé, le traitement du langage naturel n'extrait pas ERR, TCP ou CONN car ces mots ne sont pas inclus dans le dictionnaire. De même, les mots error, reported, iSCSI, connection et closed sont prioritaires en raison de leur classement dans le dictionnaire.