Clustervisualisierung
Clustering verwendet maschinelles Lernen, um das Muster von Logdatensätzen zu identifizieren und die Logs mit einem ähnlichen Muster dann zu gruppieren.
In der Clusteransicht wird oben ein Übersichtsbanner mit den folgenden Registerkarten angezeigt:
-
Cluster gesamt: Gesamtanzahl der Cluster für die ausgewählten Logdatensätze.
Hinweis
Wenn Sie den Cursor über diesen Bereich bewegen, wird auch die Anzahl der Logdatensätze angezeigt (z.B. 260 Cluster aus 1.413.036 Logdatensätzen).
-
Potenzielle Probleme: Anzahl der Cluster mit potenziellen Problemen basierend auf Logdatensätzen, die Wörter wie Fehler, Schwerwiegend, Ausnahme usw. enthalten.
-
Ausreißer: Anzahl der Cluster, die in einem bestimmten Zeitraum nur einmal aufgetreten sind.
-
Trends: Anzahl der eindeutigen Trends im Zeitraum. Möglicherweise weisen viele Cluster denselben Trend auf. Wenn Sie also auf diesen Bereich klicken, wird ein Cluster aus den einzelnen Trends angezeigt.
Wenn Sie auf eine der Registerkarten klicken, ändert sich die Histogrammansicht des Clusters, um die Datensätze für die ausgewählte Registerkarte anzuzeigen.
Jedes Clustermuster zeigt Folgendes an:
-
Trend: In dieser Spalte wird eine Sparkline-Darstellung des Trends (der so genannte Trendverlauf) der Generierung von Logmeldungen (eines Clusters) basierend auf dem Zeitraum angezeigt, den Sie beim Clustering der Datensätze ausgewählt haben. Jeder Trendverlauf wird durch eine Verlaufs-ID wie 1, 2, 3 usw. identifiziert. Auf diese Weise können Sie die geclusterten Datensätze basierend auf Trendverläufen sortieren.
Wenn Sie auf den Pfeil links neben einem Trendeintrag klicken, wird die Zeitreihenvisualisierung der Clusterergebnisse angezeigt. Diese Visualisierung zeigt, wie die Logdatensätze in einem Cluster basierend auf dem in der Abfrage ausgewählten Zeitraum verteilt wurden. Der Trendverlauf ist eine Sparkline-Darstellung der Zeitreihe.
-
ID: In dieser Spalte wird die Cluster-ID aufgeführt. Die ID ist innerhalb der Collection eindeutig.
-
Anzahl: In dieser Spalte wird die Anzahl der Logdatensätze mit derselben Meldungssignatur aufgeführt.
-
Beispielmeldung: In dieser Spalte wird ein Beispiellogdatensatz aus der Meldungssignatur angezeigt.
-
Logquelle: In dieser Spalte werden die Logquellen aufgeführt, die die Meldungen des Clusters generiert haben.
Sie können auf Ähnliche Trends anzeigen klicken, um Cluster in aufsteigender Reihenfolge nach Trendverläufen zu sortieren. Sie können auch eine Cluster-ID oder mehrere Cluster-IDs auswählen und auf Datensätze anzeigen klicken, um alle Datensätze für die ausgewählten IDs anzuzeigen.
Sie können auch eine Clustermeldung oder mehrere Cluster aus den Clusterergebnissen ausblenden, wenn die Ausgabe unübersichtlich ist. Klicken Sie mit der rechten Maustaste auf das erforderliche Cluster, und wählen Sie Cluster ausblenden aus.
In jedem Datensatz werden die Variablenwerte hervorgehoben. Sie können alle ähnlichen Variablen in jedem Cluster anzeigen, indem Sie im Abschnitt Beispielmeldung auf eine Variable klicken. Wenn Sie auf die Variablen klicken, werden alle Werte (im gesamten Datensatzset) für diese Variable angezeigt.
Im Abschnitt "Beispielmeldung" zeigen einige Clustermuster den Link <n> weitere Beispiele... an. Wenn Sie auf diesen Link klicken, werden weitere Cluster angezeigt, die dem ausgewählten Clustermuster ähneln.
Wenn Sie auf Zurück zu Trends klicken, gelangen Sie zurück zur vorherigen Seite im jeweiligen Kontext (sie scrollt zurück an die Stelle, an der Sie die Variable ausgewählt haben, um einen Drilldown durchzuführen). Mit der Browserschaltfläche "Zurück" kehren Sie ebenfalls zur vorherigen Seite zurück. Der Kontext wird dabei jedoch nicht beibehalten, da der cluster-Befehl in diesem Fall erneut ausgeführt wird.
Logdaten mit SQL-Feldern clustern
Die große Menge an Logdatensätzen wird auf 89 Cluster reduziert. Dadurch müssen Sie weniger Logdatengruppen analysieren.
Sie können einen Drilldown zu Clustern durchführen, indem Sie die Variablen auswählen. Beispiel: Wählen Sie im obigen Set von Clustern das Cluster aus, das die Beispielmeldung SELECT version FROM V$INSTANCE
enthält:
Dadurch wird die Histogrammvisualisierung der Logdatensätze mit der angegebenen Beispielmeldung angezeigt. Sie können jetzt den ursprünglichen Loginhalt analysieren. Klicken Sie auf Zurück zum Cluster, um zur Clustervisualisierung zurückzukehren.
Im Bereich Trends werden die SQLs mit einem ähnlichen Ausführungsmuster angezeigt.
Im Bereich Ausreißer werden die SQLs angezeigt, die selten sind und abweichen.
Clustervergleichsutility verwenden
Mit dem Clustervergleichsutility können Sie neue Probleme identifizieren, indem Sie das aktuelle Set von Clustern mit einer Baseline vergleichen und die Ergebnisse reduzieren, indem Sie gemeinsame oder doppelte Cluster eliminieren. Typische Szenarios:
- Welche Cluster sind in dieser Woche anders als in der letzten Woche?
- Was ist der Unterschied zwischen dem Clusterset von Entity A und dem Set von Entity B?
- Im Monat X waren die Zahlen gut. Was hat sich in diesem Monat geändert?
Bei zwei Sets von Logdaten entfernt das Clustervergleichsutility die Daten für die gemeinsamen Cluster und zeigt Histogrammdaten und die Datensatztabelle an, die für jedes Set eindeutig sind. Beispiel: Wenn Sie die Logdaten aus Woche x und Woche y vergleichen, werden die Cluster, die in beiden Wochen gleich sind, zur Vereinfachung entfernt, und die Daten, die für jede Woche eindeutig sind, werden angezeigt. Auf diese Weise können Sie Muster identifizieren, die für eine bestimmte Woche eindeutig sind, und das Verhalten analysieren.
Die Syntax und andere Details des Befehls clustercompare
finden Sie unter clustercompare.
- Wählen Sie in der Clustervisualisierung
den aktuellen Zeitraum aus. Standardmäßig ist die Abfrage
*
. Sie können die Abfrage verfeinern, um die Logdaten zu filtern. - Klicken Sie im Bereich Visualisieren auf Clustervergleich.
Das Dialogfeld "Clustervergleich" wird geöffnet.
- Sie können sehen, dass die aktuelle Abfrage und der aktuelle Zeitraum zur Referenz angezeigt werden.
- Baselineabfrage: Standardmäßig ist diese Abfrage mit der aktuellen Abfrage identisch. Klicken Sie auf
, und ändern Sie gegebenenfalls die Baselineabfrage.
- Baselinezeitraum: Standardmäßig verwendet das Clustervergleichsutility die Option Zeitverschiebung verwenden, um den Baselinezeitraum zu bestimmen. Daher hat der Baselinezeitraum dieselbe Dauer wie der aktuelle Zeitraum und wird in den Zeitraum vor dem aktuellen Zeitraum verschoben. Sie können das ändern, indem Sie auf das Symbol
klicken und Benutzerdefinierte Zeit verwenden oder Aktuelle Zeit verwenden auswählen. Wenn Sie Benutzerdefinierte Zeit verwenden auswählen, geben Sie den benutzerdefinierten Zeitraum über das Menü an.
- Klicken Sie auf Vergleichen.
Sie können nun den Clustervergleich zwischen den beiden Logsets anzeigen.
Klicken Sie auf die Schaltfläche für jedes Set, um die Details wie Cluster, potenzielle Probleme, Ausreißer, Trends und Datensatztabelle anzuzeigen, die für das Set eindeutig sind. Auf dieser Seite wird auch die Anzahl der Cluster angezeigt, die zwischen den beiden Logsets gleich sind.
Im obigen Beispiel wurden 11 Cluster nur im aktuellen Bereich, 4 Cluster nur im Baselinebereich und 30 Cluster in beiden Bereichen gefunden. Das Histogramm für den aktuellen Zeitraum zeigt die Visualisierung nur mit den Logdaten an, die für den aktuellen Zeitraum eindeutig sind.
- Baselineabfrage: Standardmäßig ist diese Abfrage mit der aktuellen Abfrage identisch. Klicken Sie auf
Nur im aktuellen Bereich gefundene Cluster werden zuerst zurückgegeben, gefolgt von den Clustern, die nur im Baselinebereich vorkommen. Die kombinierten Ergebnisse sind auf 500 Cluster beschränkt. Um die Ergebnisse des Clustervergleichs zu reduzieren, kürzen Sie den aktuellen Zeitraum, oder fügen Sie einen Befehl hinzu, um die Anzahl der Ergebnisse zu begrenzen. Beispiel: Wenn Sie | head 250
anhängen, werden sowohl aktuelle als auch Baselinecluster auf jeweils 250 begrenzt. Wenn Sie die Option für benutzerdefinierte Zeit verwenden, können Sie den aktuellen Zeitraum durch Mehrfachauswahl (Klicken und Ziehen) im Clusterhistogramm verkürzen. Der Wert für die Zeitraumverschiebung kann in Minuten oder Sekunden konvertiert werden, um sicherzustellen, dass zwischen dem aktuellen und dem Baselinezeitraum keine Lücken oder Überschneidungen auftreten.
Dictionary Lookup in Cluster verwenden
Verwenden Sie den Dictionary Lookup nach dem cluster
-Befehl, um Cluster zu annotieren.
Sehen Sie sich die cluster
-Ergebnisse für Linux Syslog Logs. So definieren Sie ein Dictionary, um Labels basierend auf dem Feld Clusterbeispiel hinzuzufügen:
-
Erstellen Sie eine CSV-Datei mit den folgenden Inhalten:
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
Importieren Sie diese Datei als Dictionary-Typ-Lookup mit dem Namen Linux Error Categories. Dieser Lookup enthält zwei Felder, Issue und Area, die bei einer Übereinstimmungsbedingung zurückgegeben werden können. Siehe Dictionary Lookup erstellen.
-
Verwenden Sie das Dictionary im Cluster, um ein Feld zurückzugeben:
Führen Sie den
cluster
-Befehl für Linux Syslog Logs aus. Fügen Sie einenlookup
-Befehl nachcluster
hinzu, wie unten gezeigt:'Log Source' = 'Linux Syslog Logs' | cluster | lookup table = 'Linux Error Categories' select Issue using 'Cluster Sample'
Der Wert von Cluster Sample für jede Zeile wird anhand der Regeln ausgewertet, die im Dictionary "Linux Error Categories" definiert sind. Das Feld Issue wird von jeder übereinstimmenden Zeile zurückgegeben.
-
Geben Sie mehrere Felder zurück, indem Sie jedes Feld im
lookup
-Befehl auswählen:'Log Source' = 'Linux Syslog Logs' | cluster | lookup table = 'Linux Error Categories' select Issue as Category, Area using 'Cluster Sample'
Die obige Abfrage wählt das Feld Issue aus und benennt es in Category um. Das Feld Area ist ebenfalls ausgewählt, wird jedoch nicht umbenannt.
-
Filtern Sie die Clusterergebnisse mit den Dictionary-Feldern:
Verwenden Sie den
where
-Befehl für die spezifischen Felder, um die Cluster zu filtern. Beachten Sie die folgende Abfrage:'Log Source' = 'Linux Syslog Logs' | cluster | lookup table = 'Linux Error Categories' select Issue as Category, Area using 'Cluster Sample' | where Area in (Unknown, Disk)
Damit werden nur die Datensätze angezeigt, die mit den angegebenen Werten für das Feld Area übereinstimmen.
Semantisches Clustering
Mit der Clustervisualisierung können Sie Textmeldungen in Logdatensätzen clustern. Beim Clustering werden Meldungen, die eine ähnliche Anzahl von Wörtern in einem Satz aufweisen, gruppiert, und die Wörter, die sich innerhalb dieser Sätze ändern, werden identifiziert. Das Cluster berücksichtigt bei der Gruppierung nicht die wörtliche Bedeutung der Wörter.
Der nlp
-Befehl unterstützt semantisches Clustering. Semantisches Clustering erfolgt durch Extrahieren der relevanten Schlüsselwörter aus einer Meldung und Clustering basierend auf diesen Schlüsselwörtern. Zwei Sets von Meldungen mit ähnlichen Wörtern werden zusammengefasst. Jede solche Gruppe erhält eine deterministische Cluster-ID.
Das folgende Beispiel zeigt die Verwendung von NLP-Clustering und Schlüsselwörtern in Linux Syslog Logs:
'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'

Weitere Beispiele für Anwendungsfälle von semantischem Clustering finden Sie unter Beispiele für semantisches Clustering.
nlp
-Befehl
Der nlp
-Befehl kann nur nach dem link
-Befehl verwendet werden und unterstützt zwei Funktionen. cluster()
kann zum Clustering des angegebenen Feldes verwendet werden und keywords()
zum Extrahieren von Schlüsselwörtern aus dem angegebenen Feld.
Der nlp
-Befehl kann nur nach dem link
-Befehl verwendet werden. Siehe nlp.
-
nlp cluster()
:cluster()
verwendet den Namen eines in Link generierten Feldes und gibt eine Cluster-ID für jeden geclusterten Wert zurück. Die zurückgegebene Cluster-ID ist eine Zahl, die als Zeichenfolge dargestellt wird. Die Cluster-ID kann in Abfragen zum Filtern der Cluster verwendet werden.Beispiel:
nlp cluster('Description') as 'Description ID'
: Damit werden relevante Schlüsselwörter aus dem FeldDescription
extrahiert. Das FeldDescription ID
enthält hierbei eine eindeutige ID für jedes generierte Cluster. -
nlp keywords()
:Extrahiert Schlüsselwörter aus den angegebenen Feldwerten. Die Schlüsselwörter werden basierend auf einem Dictionary extrahiert. Der Dictionary-Name kann mit der Option
table
angegeben werden. Wenn kein Dictionary angegeben ist, wird das Out-of-the-box-Standard-Dictionary NLP General Dictionary verwendet.Beispiel:
nlp keywords('Description') as Summary
: Damit werden relevante Schlüsselwörter aus dem FeldDescription
extrahiert. Auf die Schlüsselwörter kann über das FeldSummary
zugegriffen werden.nlp table='My Issues' cluster('Description') as 'Description ID'
: Verwenden Sie anstelle des Standard-Dictionarys das benutzerdefinierte Dictionary My Issues.
NLP-Dictionary
Beim semantischen Clustering wird eine Meldung in Wörter aufgeteilt. Dann werden die relevanten Wörter extrahiert und anschließend die Meldungen mit ähnlichen Wörtern gruppiert. Die Qualität des Clusterings hängt somit von der Relevanz der extrahierten Schlüsselwörter ab.
- Ein Dictionary wird verwendet, um zu bestimmen, welche Wörter in einer Meldung extrahiert werden sollen.
- Die Reihenfolge der Elemente im Dictionary ist wichtig. Ein Element in der ersten Zeile hat ein höheres Ranking als das Element in der zweiten Zeile.
- Ein Dictionary wird als CSV-Datei erstellt und mit der Lookup-Benutzeroberfläche mit der Option Dictionary-Typ importiert.
- Sie müssen nur dann ein Dictionary erstellen, wenn Sie das Ranking von Wörtern ändern möchten. Der Out-of-the-box-Standard
NLP General Dictionary
wird verwendet, wenn kein Dictionary angegeben ist. Er enthält vorab trainierte englische Wörter.
Siehe Dictionary Lookup erstellen.
Beispiel-Dictionary iSCSI Errors:
Operator | Bedingung | Wert |
---|---|---|
|
error |
noun |
|
reported |
verb |
|
iSCSI |
noun |
|
connection |
noun |
|
closed |
verb |
Das erste Feld ist für die zukünftige Verwendung reserviert. Das zweite Feld ist ein Wort. Das dritte Feld gibt den Typ für dieses Wort an. Der Typ kann eine beliebige Zeichenfolge sein und mit dem Parameter category
aus der Abfrage referenziert werden.
Im obigen Beispiel hat das Wort error ein höheres Ranking als die Wörter reported und iSCSI. Entsprechend hat connection ein höheres Ranking als closed.
Dictionary verwenden
Angenommen, der folgende Text wird im Feld Message
angezeigt:
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
Die oben genannte Meldung wird geparst und in Wörter aufgeteilt. Andere Zeichen als Buchstaben werden entfernt. Im Folgenden werden einige der aus der Aufteilung generierten eindeutigen Wörter aufgeführt:
Kernel reported iSCSI connection error ERR TCP CONN CLOSE closed state ... ...
Die Meldung enthält insgesamt 24 Wörter. Standardmäßig versucht das semantische Clustering, 20 Wörter zu extrahieren und diese Wörter für das Clustering zu verwenden. In einem Fall wie oben muss das System wissen, welche Wörter wichtig sind. Dafür wird das Dictionary verwendet.
Das Dictionary ist eine sortierte Liste. Wenn iSCSI Errors verwendet wird, extrahiert NLP nicht ERR, TCP oder CONN, da diese Wörter nicht im Dictionary enthalten sind. Gleichermaßen erhalten die Wörter error, reported, iSCSI, connection und closed aufgrund ihres Rankings im Dictionary eine höhere Priorität.