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 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.
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.
-
Valeurs aberrantes : nombre de clusters présents une seule fois sur une période donnée.
-
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.
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
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 :
- Quels sont les clusters différents cette semaine par rapport à la semaine précédente ?
Reportez-vous à Comparaison de clusters avec changement d'heure.
- Quelle est la différence entre l'ensemble de clusters de l'entité A et l'ensemble de l'entité B ?
Reportez-vous à Comparaison de clusters à l'heure en cours.
- Les résultats étaient satisfaisants au mois X. Qu'est-ce qui a changé ce mois-ci ?
Reportez-vous à Comparaison de clusters sur une période personnalisée.
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.
- Dans la visualisation des clusters
, 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. - Dans le panneau Visualiser, cliquez sur Comparaison de clusters.
La boîte de dialogue de comparaison de clusters apparaît.
- 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
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
, 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.
- Requête de valeur de référence : par défaut, elle est identique à la requête en cours. Cliquez sur
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 :
-
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.
-
Utilisez le dictionnaire dans la commande cluster pour renvoyer un champ :
Exécutez la commande
cluster
pour les journaux syslog Linux. Ajoutez une commandelookup
aprèscluster
, 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.
-
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é.
-
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'

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 champDescription
. Le champDescription 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 champDescription
. Les mots-clés sont accessibles avec le champSummary
.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 |
---|---|---|
|
error |
nom |
|
reported |
verbe |
|
iSCSI |
nom |
|
connection |
nom |
|
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.