Erweiterte Analysen mit Link ausführen
Informationen zur Anwendung des Linkfeatures mit erweiterten Analysen für den in diesem Thema behandelten Anwendungsfall.
Beispielszenarios:
Anwendungsfall | Linkfeature | Beispiellogs |
---|---|---|
Linktrend |
|
|
Linkbasisfeatures |
|
|
Virtuelle Felder für Diagramme verwenden |
|
|
SQL-Anweisung als Feld verwenden |
|
|
Zeitanalyse |
|
|
Diagramme für mehrere Felder und deren Werte |
- |
|
Aggregation auf zweiter Ebene |
|
|
Mit Linknavigationsfunktionen Ereignisse in einer Datenbank identifizieren |
Navigationsfunktionen |
|
Währungssymbol in Gruppentabelle und Diagrammen verwenden |
|
|
Analysieren Sie den Trend eines Feldes |
|
|
Ähnliche Zeitreihenwerte gruppieren |
|
Zeitreihendaten mit dem Linktrendfeature visualisieren
Mit Link werden die Logdatensätze nach bestimmten Feldern gruppiert. Die verschiedenen Statistiken, die Sie aus diesen Gruppen extrahieren können, können mit der Blasendiagrammvisualisierung visualisiert werden. Die Blasendiagrammvisualisierung wurde jetzt erweitert, um das Feld "Zeit" als Achse zu unterstützen.
Die folgenden Schritte erläutern, wie Sie die Jobdauer für Hintergrundprozesse in Oracle E-Business Suite (EBS) mit dem Trendfeature analysieren.
Beachten Sie das folgende Beispiellog im Dateipfad /u01/oracle/appl_top/req/l7474445.req
:
Human Resources: Version : 12.2
Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
AME_MIGRATIONB: Approvals Management Post Upgrade Process
+---------------------------------------------------------------------------+
Current system time is 24-JUL-2018 01:04:29
+---------------------------------------------------------------------------+
**Starts**24-JUL-2018 01:04:30
**Ends**24-JUL-2018 01:04:30
Migration of item class usages successful
+---------------------------------------------------------------------------+
Start of log messages from FND_FILE
+---------------------------------------------------------------------------+
+---------------------------------------------------------------------------+
End of log messages from FND_FILE
+---------------------------------------------------------------------------+
+---------------------------------------------------------------------------+
No completion options were requested.
Output file size:
0
Deleting empty output file.
+---------------------------------------------------------------------------+
Concurrent request completed successfully
Current system time is 24-JUL-2018 01:04:32
+---------------------------------------------------------------------------+
Die von Oracle definierte Quelle EBS Concurrent Request Logs - Enhanced extrahiert das Feld für die Anforderungs-ID aus dem Dateipfad. Beispiel: Die numerischen Daten 7474445
stellen die Anforderungs-ID dar, die aus dem Dateipfad des obigen Beispiellogs extrahiert wird. Die Quelle extrahiert auch die zugehörigen Metadaten für jede Anforderungs-ID.
-
Wählen Sie die Quelle aus, und wechseln Sie zur Linkvisualisierung:
Klicken Sie im Bereich Felder auf Logquelle. Wählen Sie die Logquelle EBS Concurrent Request Logs - Enhanced aus. Wechseln Sie zur Visualisierung Link. Ziehen Sie das Feld Request ID per Drag-and-Drop in den Bereich Gruppieren nach, um die Liste der Anforderungen abzurufen:
Die automatisch generierte Abfrage sieht folgendermaßen aus:
'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID'
-
Extrahieren Sie Anforderungsstart- und -endzeit:
Für jede Anforderung wird eine Start- und Endzeit in der Datei angegeben. Wenn das Ende fehlt, wird die Aktualisierungszeit der Datei als Endzeit betrachtet. Die Logquelle ist so konfiguriert, dass diese Werte als Felder Event Start Time und Event End Time erfasst werden.
Bearbeiten Sie die Abfrage, um die folgenden Felder zu extrahieren:
'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID' | stats earliest('Event Start Time') as 'Request Start Time', latest('Event End Time') as 'Request End Time'
earliest
ist eine Funktion des Befehlsstats
. Dadurch werden die Datensätze jeder Anforderungs-ID nach Zeit sortiert, und die älteste Ereignisstartzeit wird zurückgegeben. Ebenso gibtlatest
die letzte Ereignisendzeit zurück.Sie können nun die neuen Felder in der Datensatztabelle anzeigen:
Request Start Time und Request End Time werden automatisch als Zeitstempel erkannt und in Ihrer lokalen Zeitzone formatiert. Bei der Erfassung der Dateien verwendet der Agent die Zeitzone der EBS-Datenbank, um die Zeitstempel zu interpretieren.
Hinweis
Um sicherzustellen, dass die Datenbankzeitzone wie erwartet im Oracle Infrastructure Monitoring-Konfigurations-Home angezeigt wird, und um Abweichungen bei den Werten zu vermeiden, geben Sie die Zeitzone während des Uploads an. -
Berechnen Sie die Anforderungsdauer:
Nachdem nun die Start- und Endzeiten für jede Anforderung vorliegen, können Sie die Dauer als Differenz zwischen diesen beiden Feldern berechnen.
Ändern Sie die Abfrage entsprechend:
'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID' | stats earliest('Event Start Time') as 'Request Start Time', latest('Event End Time') as 'Request End Time' | eval 'Time Taken' = 'Request End Time' - 'Request Start Time'
Time Taken ist ein neues Feld, das für jede Anforderungs-ID-Gruppe erstellt wird. Dieses enthält die Differenz zwischen Start- und Endzeit der Anforderung.
Hinweis
Oracle Logging Analytics erkennt die in Anspruch genommene Zeit automatisch als Dauerfeld, da es durch die Differenz zwischen zwei Zeitstempelfeldern erzeugt wird. Daher wird es automatisch menschenlesbar formatiert.
-
Trend für die von EBS-Hintergrundprozessen beanspruchte Zeit:
Das Feld Time Taken kann jetzt auf Trends analysiert werden. Klicken Sie auf das Symbol Analysieren
. Wählen Sie die Felder Request Start Time und Time Taken im Dialogfeld "Analysieren" aus. Klicken Sie auf OK.
Dadurch ändert sich die Abfrage automatisch in:
'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID' | stats earliest('Event Start Time') as 'Request Start Time', latest('Event End Time') as 'Request End Time' | eval 'Time Taken' = 'Request End Time' - 'Request Start Time' | classify topcount = 300 'Request Start Time', 'Time Taken'
Der Befehl
classify
verwendet zwei Felder, gruppiert die Ergebnisse und markiert die Anomalien (sofern zutreffend). Die Ergebnisse werden im Blasendiagramm angezeigt.Wenn Zeit für eine Achse ausgewählt wird, wechselt das Blasendiagramm automatisch zur Option Trend. Um die Diagrammoptionen zu ändern, klicken Sie auf das Symbol Diagrammoptionen
, und ändern Sie die erforderlichen Parameter.
Im resultierenden Blasendiagramm wird Request Start Time entlang der X-Achse dargestellt, und Cluster von Time Taken werden entlang der Y-Achse dargestellt:
Die Zeit wird in der lokalen Zeitzone angezeigt. Die Größe der Blasen gibt die Anzahl der Anforderungen an.
Im obigen Blasendiagramm wird eine Anforderungsdauer von mehr als vier Minuten am 21. Juli 2018 bemerkt. Die meisten Anfragen wurden in weniger als zwei Minuten abgeschlossen.
Sie können auf eine oder mehrere Blasen klicken, um einen Drilldown durchzuführen und die spezifischen Anforderungen anzuzeigen.
Zugriffslogs von Oracle WebLogic Server analysieren
Betrachten Sie das Beispiel für ein Dataset mit Oracle WebLogic Server-Zugriffslogs aus der Logquelle FMW WLS Server Access Logs
. Die Logdatensätze enthalten Daten zum Benutzerzugriff auf Oracle WebLogic Server über einen bestimmten Zeitraum. Diese einzelnen Logdatensätze können analysiert werden, um aussagekräftige Einblicke in die Nutzungsstatistiken, die Popularität der URLs, die aktivsten Benutzer und ähnliche Daten zu erhalten. Erfahren Sie, wie Sie in den Logs die folgenden Ergebnisse erhalten, indem Sie die Logdatensätze mit der Auswahl bestimmter Felder für jedes Ergebnis analysieren:
-
Top-URLs nach Anzahl der Hits anzeigen
-
Anomalien nach Anzahl der Hits anzeigen
-
Anomalien nach Zugriffsdauer anzeigen
-
URLs nach Uploadgröße identifizieren
-
URLs nach Downloadgröße identifizieren
-
Korrelation zwischen Anzahl der Hits und Downloadgröße analysieren
-
Am häufigsten besuchte Seiten bestimmen
-
Top-Benutzer identifizieren
-
Top-Benutzer und deren Favoritenseiten identifizieren
-
Einstiegsseite identifizieren, die die meisten Besuche erreicht
-
Einstiegs- und Austrittspfad für die meisten Benutzer identifizieren
-
Mit dem Befehl
rename
können Sie den Namen des Feldes in einen Namen ändern, der relevanter für den Anwendungsfall ist. -
Mit dem Befehl
classify
können Sie die Gruppen analysieren und das Ergebnis in Form eines Blasendiagramms anzeigen. Um das Ergebnis der Ausführung einer Abfrage einfach im Tabellenformat anzuzeigen, entfernen Sie den Befehlclassify
aus der Abfrage, und führen Sie sie erneut aus. -
Klicken Sie auf die anormale Blase im Diagramm, um die Details der anormalen Gruppen anzuzeigen. Um nach der Untersuchung der Blase zum ursprünglichen Ergebnis zurückzukehren, klicken Sie auf das Symbol Rückgängig
.
-
Wenn Sie den Befehl
link
ausführen, wird die Gruppendauer im Blasendiagramm in einem lesbaren Format angezeigt, z.B. in Minuten oder Sekunden. Wenn Sie jedoch einenwhere
-Befehl nach dem Befehllink
ausführen möchten, um nach Transaktionen zu suchen, die mehr als die angegebene Anzahl von Sekunden (z.B. 200 Sekunden) in Anspruch genommen haben, muss die Einheit Millisekunden verwendet werden.
Um das Dataset abzurufen, wählen Sie einen geeigneten Datumsbereich aus, geben Sie die Logquelle an, und führen Sie die Abfrage aus:
'Log Source' = 'FMW WLS Server Access Logs'
Wählen Sie im Bereich Visualisieren die Option Link aus. Dadurch werden die Gruppentabelle "FMW WLS Server Access Logs" und das Blasendiagramm angezeigt.
-
Um die Top-URLs nach Anzahl der Hits anzuzeigen, gruppieren Sie die Logdatensätze nach dem Wert der URL im Logdatensatz, rufen Sie die Gesamtanzahl für die URL in jeder Gruppe ab, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und zeigen Sie das Ergebnis im Tabellenformat an. Mit dieser Analyse können Sie die am häufigsten verwendeten URLs bestimmen.
-
Verschieben Sie das Feld URI per Drag-and-Drop in Gruppieren nach, und entfernen Sie das Feld Logquelle aus Gruppieren nach.
-
Ändern Sie nach Ausführung der Abfrage in der Befehlszeile die Namen der Felder wie folgt: Count in Number of Hits, Start Time in First Access, End Time in Last Access und Group Duration in Access Duration.
-
Entfernen Sie den Befehl
classify
aus der Befehlszeile, und leiten Sie die Abfrage weiter.Die Abfrage lautet wie folgt:
'Log Source' = 'FMW WLS Server Access Logs' | link URI | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration'
Beim Ausführen der Abfrage können Sie die Top-URLs nach Anzahl der Hits in der Tabelle bestimmen. Die Spalten werden wie im rename-Befehl angegeben umbenannt.
-
-
Um die Anomalien nach Anzahl der Hits anzuzeigen, gruppieren Sie die Logdatensätze nach dem Wert der URL im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und analysieren Sie die Gruppen für die Anzahl an Hits der URL. Mit dieser Analyse können Sie das ungewöhnliche Muster beim Zugriff auf die URLs trennen.
Klicken Sie auf Analysieren, wählen Sie Number of Hits aus, und klicken Sie auf OK.
Die Abfrage muss in Folgendes geändert werden:
'Log Source' = 'FMW WLS Server Access Logs' | link URI | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 300 'Number of Hits'
Diese Abfrage löst eine Analyse der Spalte "Number of Hits" aus und erstellt Blasen, die die häufig vorkommenden Bereiche darstellen. Die meisten Werte werden als Baseline behandelt. Beispiel: Eine große Blase kann zur Baseline werden, oder eine große Anzahl kleinerer geclusterter Blasen kann die Baseline bilden. Blasen, die am weitesten von der Baseline entfernt sind, werden als Anomalien markiert.
Auf diese Weise werden die anormalen URLs als separate Blasen im Blasendiagramm angezeigt. Um den Prozentsatz der URLs in jedem Bereich für die Anzahl der Hits anzuzeigen, bewegen Sie den Cursor auf die Blasen.
-
Um die Anomalien nach Zugriffsdauer anzuzeigen, gruppieren Sie die Logdatensätze nach dem Wert der URL im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und analysieren Sie die Gruppen für die Zugriffsdauer der URL. Mit dieser Analyse können Sie das ungewöhnliche Muster in der Zeit trennen, die für den Zugriff auf die URLs benötigt wird. Fortsetzung zu Schritt 2:
Klicken Sie auf Analysieren, wählen Sie Access Duration aus, und klicken Sie auf OK.
Die Zugriffsdauer gibt an, wie lange auf jede URL zugegriffen wurde. Dieser Wert wird als Differenz zwischen dem letzten Zeitstempel und dem ersten Zeitstempel in der Logdatei für jede URL berechnet.
-
Um die URLs nach Uploadgröße zu identifizieren, gruppieren Sie die Logdatensätze nach dem Wert der URL im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und analysieren Sie die Gruppen für die Größe der hochgeladenen Daten. Mit dieser Analyse können Sie die URLs identifizieren, die eine ungewöhnliche Größe an hochgeladenen Daten aufweisen. Fortsetzung zu Schritt 3:
-
Verschieben Sie das Feld Content Size In per Drag-and-Drop in den Abschnitt Wert.
-
Benennen Sie das Feld Content Size In in Bytes Uploaded um, indem Sie die Abfrage in der Befehlszeile ändern, und führen Sie die Abfrage aus.
-
Klicken Sie auf Analysieren, wählen Sie Bytes Uploaded aus, und klicken Sie auf OK.
Die Abfrage lautet wie folgt:
'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size In') as 'Bytes Uploaded' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 300 'Bytes Uploaded'
Im Analysediagramm werden die Gruppen von URLs nach den hochgeladenen Byte angezeigt.
-
Um die Daten zu hochgeladenen Byte über den Zeitraum zu korrelieren, können Sie Diagramme in den Histogrammoptionen selektiv ausblenden oder anzeigen. Untersuchen Sie neben dem Balkendiagramm die anderen Visualisierungsoptionen.
-
-
Um die URLs nach Downloadgröße zu identifizieren, gruppieren Sie die Logdatensätze nach dem Wert der URL im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und analysieren Sie die Gruppen für die Größe der heruntergeladenen Daten. Mit dieser Analyse können Sie die URLs identifizieren, die eine ungewöhnliche Größe an heruntergeladenen Daten aufweisen. Fortsetzung zu Schritt 4:
-
Verschieben Sie das Feld Content Size Out per Drag-and-Drop in den Abschnitt Wert, und entfernen Sie Content Size In aus dem Abschnitt Wert.
-
Benennen Sie das Feld Content Size Out in Download Size um, indem Sie die Abfrage in der Befehlszeile ändern, und führen Sie die Abfrage aus.
-
Klicken Sie auf Analysieren, wählen Sie Download Size aus, und klicken Sie auf OK.
Die Abfrage lautet wie folgt:
'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size Out') as 'Download Size' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 300 'Download Size'
Im Analysediagramm werden die Gruppen von URLs nach Downloadgröße angezeigt.
-
Um die Daten zur Downloadgröße über den Zeitraum zu korrelieren, können Sie Diagramme in den Histogrammoptionen selektiv ausblenden oder anzeigen. Untersuchen Sie neben dem Balkendiagramm die anderen Visualisierungsoptionen.
-
-
Um die Korrelation zwischen der Anzahl der Hits und der Downloadgröße zu analysieren, gruppieren Sie die Logdatensätze nach dem Wert der URL im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und analysieren Sie die Gruppen für die Größe der heruntergeladenen Daten und die Anzahl der Hits. Mit dieser Analyse können Sie die URLs mit ungewöhnlichen Mustern in der Größe der heruntergeladenen Daten und der Anzahl der Hits identifizieren. Fortsetzung zu Schritt 5:
-
Klicken Sie auf Analysieren, wählen Sie die Felder Number of Hits und Download Size aus, und klicken Sie auf OK.
-
Entfernen Sie
topcount=300
aus der Abfrage, um alle Blasen anzuzeigen, und führen Sie die Abfrage aus.Die Abfrage lautet wie folgt:
'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size Out') as 'Download Size' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify 'Download Size', 'Number of Hits'
Im Blasendiagramm wird das Feld Number of Hits entlang der X-Achse und Download Size entlang der Y-Achse dargestellt.
Die Blasen können wie folgt interpretiert werden:
-
Auf 73,8 % der URLs wurde ein- bis siebenmal zugegriffen.
-
Die durchschnittliche Downloadgröße für diese 73,8 % der URLs liegt zwischen 32.345 und 34.000. Dieser enge Bereich impliziert, dass eine große Anzahl von URLs ein sehr einheitliches Verhalten in Bezug auf die Downloadgröße aufweisen.
-
Da 73,8 % die Mehrheit ist, werden die übrigen Punkte als Anomalien markiert.
-
Bei echten Daten gruppiert das System .css-, .js- und Bilddateien oft separat von anderen URLs, da sie in der Regel andere Downloadverhalten aufweisen.
-
-
Um die am häufigsten besuchten Seiten zu bestimmen, gruppieren Sie die Logdatensätze nach dem Wert der URL im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und analysieren Sie die Gruppen für die Anzahl der Unique Visitors. Mit dieser Analyse können Sie die URLs identifizieren, die am meisten von den Unique Visitors besucht werden. Fortsetzung zu Schritt 6:
-
Verschieben Sie das Feld User Name per Drag-and-Drop in den Abschnitt Wert.
-
Klicken Sie auf den Abwärtspfeil neben dem Feldnamen, und ändern Sie die Funktion von Eindeutig in Eindeutige Anzahl. Weitere Funktionen, die Sie für ein numerisches Feld auswählen können:
-
Benennen Sie das Feld User Name in Number of Unique Users um, entfernen Sie den Befehl
classify
, indem Sie die Abfrage in der Befehlszeile ändern, und führen Sie die Abfrage aus. Die Abfrage lautet wie folgt:'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size In') as 'Bytes Uploaded', avg('Content Size Out') as 'Download Size', distinctcount('User Name') as 'Number of Unique Users' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration'
-
Klicken Sie auf Analysieren, wählen Sie das Feld Number of Unique Users aus, und klicken Sie auf OK.
In der Tabelle werden die URLs und die entsprechende Anzahl an Unique Users aufgeführt. Damit können Sie die URLs identifizieren, die am meisten von Unique Users besucht wurden. Aus der Tabelle können Sie auch die Anzahl der Hits jeder URL bestimmen.
Die Analyse zeigt, dass mehr als 99 % der URLs 0 oder 1 Unique User haben. Das wäre bei URLs der Fall, bei denen keine Anmeldung erforderlich ist oder auf die nur selten zugegriffen wird. Wenn Sie einen Drilldown zu einer der kleineren Blasen durchführen, sehen Sie die spezifischen Seiten, die Anzahl der Hits, die sie normalerweise aufweisen, und die Anzahl der Unique Visitors.
-
-
Um die Top-Benutzer zu identifizieren, gruppieren Sie die Logdatensätze nach dem Wert des Benutzernamens im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und analysieren Sie die Gruppen für die Anzahl der Hits. Mit dieser Analyse können Sie die aktivsten Benutzer identifizieren.
-
Bearbeiten Sie die Befehlszeile, um alle Filter zu entfernen:
'Log Source' = 'FMW WLS Server Access Logs' | link URI
-
Verschieben Sie das Feld User Name per Drag-and-Drop in Gruppieren nach, entfernen Sie URI, und führen Sie die Abfrage aus.
-
Entfernen Sie den Befehl
classify
, benennen Sie die Standardfelder in der Befehlszeile um, und führen Sie die folgende Abfrage aus:'Log Source' = 'FMW WLS Server Access Logs' | link 'User Name' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration'
Die Tabelle ist nach der Anzahl der Hits durch den Benutzer sortiert.
-
Um das Benutzerverhalten nach Zugriff anzuzeigen, klicken Sie auf Analysieren, wählen Sie das Feld Number of Hits aus, und klicken Sie auf OK.
-
Klicken Sie auf die Anomalien, um die Benutzer zu identifizieren, die im Vergleich zu den anderen Benutzern eine höhere oder niedrigere Anzahl an Hits verzeichnet haben.
-
-
Um die Top-Benutzer und ihre Favoritenseiten zu identifizieren, gruppieren Sie die Logdatensätze nach dem Wert des Benutzernamens im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und analysieren Sie die Gruppen für die Anzahl der eindeutigen Seiten. Mit dieser Analyse können Sie die am wenigsten aktiven und die aktivsten Benutzer sowie deren Favoritenseiten identifizieren. Fortsetzung zu Schritt 8:
-
Verschieben Sie das Feld URI per Drag-and-Drop in den Abschnitt Wert. Ändern Sie die Funktion von Eindeutig in Eindeutige Anzahl.
-
Benennen Sie das Feld URI in Number of Unique Pages um, indem Sie die Abfrage in der Befehlszeile ändern, und führen Sie die Abfrage aus.
-
Klicken Sie auf Analysieren, wählen Sie das Feld Number of Unique Pages aus, und klicken Sie auf OK.
-
-
Um die Einstiegsseite zu identifizieren, die maximale Besuche erreicht, gruppieren Sie die Logdatensätze nach dem Wert des Benutzernamens im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um, und analysieren Sie die Gruppen für die Werte der Einstiegs-URLs und die Anzahl der Hits zu den URLs. Mit dieser Analyse können Sie die Seiten identifizieren, auf die die Benutzer zuerst zugreifen. Fortsetzung zu Schritt 9:
-
Um die Einstiegs-URLs abzurufen, ändern Sie die Funktion des Feldes URI von Eindeutige Anzahl in Erstes.
-
Benennen Sie das Feld URI in Entry URL um, indem Sie die Abfrage in der Befehlszeile ändern, und führen Sie die Abfrage aus.
-
Klicken Sie auf Analysieren, wählen Sie die Felder Number of Hits und Entry URL aus, setzen Sie topcount auf 20, und klicken Sie auf OK.
'Log Source' = 'FMW WLS Server Access Logs' | link 'User Name' | stats earliest(URI) as 'Entry URL' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 20 'Number of Hits', 'Entry URL'
Dadurch wird die erste URL, die von den Benutzern verwendet wird, in Bezug auf die Anzahl der Hits angezeigt. Beispiel: /login ist die erste URL, die von der Mehrheit der Benutzer verwendet wird.
-
-
Um den Einstiegs- und Austrittspfad für die meisten Benutzer zu identifizieren, gruppieren Sie die Logdatensätze nach dem Wert des Benutzernamens im Logdatensatz, benennen Sie die Standardfelder in der Gruppentabelle in geeignete Werte um und analysieren Sie die Gruppen für die Werte der Einstiegs-URLs und Austritts-URLs. Mit dieser Analyse können Sie Folgendes identifizieren:
-
Die häufigsten Pfade der Benutzer beim Durchlaufen der Website
-
Die beliebtesten Produktseiten, von denen die Benutzer die Website verlassen
-
Die häufigsten Austritts-URLs, wie die Produkt-Checkout-Seiten oder das Zahlungsgateway
-
Die ungewöhnlichen Austritts-URLs und die Ursache für unerwartete Beendigungen
-
Verschieben Sie das Feld URI per Drag-and-Drop in den Abschnitt Wert.
-
Um die Austrittsseite abzurufen, ändern Sie die Funktion des Feldes URI von Eindeutig in Letzter Zeitpunkt.
-
Bearbeiten Sie die Befehlszeile, benennen Sie das Feld latest(URI) in Exit URL um, und leiten Sie die Abfrage weiter.
-
Klicken Sie auf Analysieren, wählen Sie die Felder Entry URL und Exit URL aus, setzen Sie topcount auf 20, und klicken Sie auf OK.
'Log Source' = 'FMW WLS Server Access Logs' | link 'User Name' | stats earliest(URI) as 'Entry URL', latest(URI) as 'Exit URL' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 20 'Entry URL', 'Exit URL'
-
Erhöhen Sie die Größe des Diagramms mit den Analysediagrammoptionen.
Diese Treemap zeigt die Beziehung zwischen der Einstiegs- und Austritts-URL in einer Site. Das wäre sehr nützlich für Einzelhandelssites, auf denen die Serviceprovider die Einstiegs-URLs identifizieren möchten, die Kunden zu den Checkout-Seiten führen, und die Produkt-URLs, die Benutzer dazu veranlassen, den Checkout nicht fortzusetzen.
-
Diagramme mit virtuellen Feldern generieren
Um ein neues virtuelles Feld zu erstellen, können Sie den eval
-Befehl im Linkfeature verwenden. Die eval
-Abfrage in der Befehlszeile generiert ein Liniendiagramm für das virtuelle Feld und ermöglicht das Tracking im Zeitablauf.
Um ein neues virtuelles Feld zu erstellen, können Sie den eval
-Befehl im Linkfeature verwenden. Die eval
-Abfrage in der Befehlszeile generiert ein Liniendiagramm für das virtuelle Feld und ermöglicht das Tracking im Zeitablauf.
Beispiele:
-
Angenommen, die Logdatensätze aus der Logquelle
SAR CPU Logs
sind nach Hostname und CPU gruppiert. Um die von der CPU des Servers im Laufe der Zeit verzeichnete Last zu bestimmen, erstellt der Befehleval
das virtuelle FeldLoad %
und generiert das Liniendiagramm.'Log Source' = 'SAR CPU Logs' | rename Instance as CPU | link 'Host Name (Server)', CPU | stats avg('CPU Idle Time (%)') as 'CPU Idle Time (%)' | eval 'Load %' = 100 - 'CPU Idle Time (%)'
So zeigen Sie das Liniendiagramm an:
-
Klicken Sie auf die Registerkarte Histogramm.
-
Klicken Sie neben dem Symbol Diagrammoptionen (
) auf den Pfeil nach unten. Klicken Sie auf Diagramme aus-/einblenden. Wählen Sie Load % aus.
-
Klicken Sie neben dem Symbol Diagrammoptionen (
) auf den Pfeil nach unten. Klicken Sie auf Diagrammoptionen. Wählen Sie in der Liste Diagrammtyp die Option Linie ohne Marker aus. Klicken Sie auf Schließen.
-
-
Angenommen, die Logdatensätze aus der Logquelle
OMC WLS Server Access Logs
sind nach der URI gruppiert. Um die Größe der im Laufe der Zeit aufgerufenen Daten in Megabyte zu bestimmen, erstellt der Befehleval
das virtuelle FeldContent Size (MB)
. Außerdem berechnet der Befehl die Inhaltsgröße in Megabyte basierend auf dem Wert des FeldesContent Size
und generiert das Liniendiagramm.'Log Source' = 'WLS Server Access Logs' | link URI | stats avg('Content Size') as 'Content Size Bytes' | eval 'Content Size (MB)' = 'Content Size Bytes' / 1024
So zeigen Sie das Liniendiagramm an:
-
Klicken Sie auf die Registerkarte Histogramm.
-
Klicken Sie neben dem Symbol Diagrammoptionen (
) auf den Pfeil nach unten. Klicken Sie auf Diagramme aus-/einblenden. Wählen Sie Content Size (MB) und Access Log Records aus.
-
Klicken Sie neben dem Symbol Diagrammoptionen (
) auf den Pfeil nach unten. Klicken Sie auf Diagrammoptionen. Wählen Sie in der Liste Diagrammtyp die Option Linie ohne Marker aus. Klicken Sie auf Schließen.
-
Link mit SQL-Anweisung als Analysefeld
Link unterstützt SQL-Anweisung als Analysefeld. SQL-Anweisung enthält die ausgeführte SQL, die von Logquellen wie Database Audit XML Logs
und Oracle Unified DB Audit Log Source Stored in Database 12.1
erfasst wird.
Mit link 'SQL Statement'
können Sie SQLs gruppieren, ihr Verhalten analysieren und Anomalien identifizieren.
Beispiel::
Beachten Sie die folgende Abfrage, mit der die Logdatensätze basierend auf dem Feld SQL-Anweisung verknüpft werden:
'Log Source' in ('Database Audit Logs', 'Database Audit XML Logs')
| rename 'Host Name (Server)' as 'DB Server', 'User Name (Originating)' as 'OS User', 'User Name' as 'DB User'
| link 'SQL Statement'
| rename Count as 'Number of Runs', 'Start Time' as 'First Run', 'End Time' as 'Last Run', 'Group Duration' as Age
| addfields [ Object = dual | stats count as 'dual Table Access' ],
[ Object like 'all_%' | stats count as 'ALL_ Table Access' ],
[ Object like 'dba_%' | stats count as 'DBA_ Table Access' ],
[ Object like 'user_%' | stats count as 'USER_ Table Access' ],
[ Object like 'v$%' | stats count as 'VDollar Table Access' ],
[ Object = null | stats count as 'No Table Access' ],
[ Action = '2' | stats count as 'Insert Count' ],
[ Action = '3' | stats count as 'Select Count' ],
[ Action = '6' | stats count as 'Update Count' ],
[ Action = '7' | stats count as 'Delete Count' ],
[ Type = '8' | stats count as 'Connect Count' ],
[ 'Status Code' = 1 | stats count as Failures ]
| eval 'Object Type' = if('dual Table Access' > 0, Dual,
'ALL_ Table Access' > 0, System,
'DBA_ Table Access' > 0, System,
'USER_ Table Access' > 0, System,
'VDollar Table Access' > 0, System,
'No Table Access' > 0, 'No Table', Other)
| eval 'SQL Type' = if('Insert Count' > 0, Insert,
'Select Count' > 0, Select,
'Update Count' > 0, Update,
'Delete Count' > 0, Delete,
'Connect Count' > 0, Connect, Other)
| stats distinctcount(Object) as Objects, distinctcount('Database ID') as 'Number of DBs',
distinctcount(Session) as 'Number of Sessions'
| fields -'dual Table Access', -'No Table Access', -'ALL_ Table Access',
-'USER_ Table Access', -'DBA_ Table Access', -'VDollar Table Access', -'Insert Count',
-'Select Count', -'Update Count', -'Delete Count', -'Connect Count', -'SQL Type', -'Object Type'
| classify Age
| classify 'Number of Sessions'
| classify 'Number of DBs'
| classify 'Number of Runs', 'Object Type'
| classify 'Object Type', 'SQL Type'
addfields
ist eine Funktion, die in der Linkvisualisierung zum Hinzufügen virtueller Felder zur Abfrage verfügbar ist. Sie übergibt die Ausgabe einer Abfrage an einen stats
-Befehl. Das resultierende virtuelle Feld ist sowohl in der Tabelle als auch im Zeitreihendiagramm verfügbar.
Die Syntax und andere Details des Befehls addfields
finden Sie unter addfields.
Durch Ausführung der obigen Abfrage erhalten Sie folgende Ergebnisse:
-
Basierend auf dem classify-Befehl werden die Blasendiagramme für
Age
,Number of Sessions
,Number of DBs
,Number of Runs, Object Type
undObject Type, SQL Type
generiert.In den Blasendiagrammen werden die Logdatensätze basierend auf der Anzahl der SQLs gruppiert, die unter die einzelnen Parametergruppen fallen. Die Parameter
Object Type
undSQL Type
werden mit dem Befehleval
in der Abfrage bestimmt. -
Das Histogramm Linien/Flächen stellt das Vorkommen von Feldern wie
dual Table Access
,No Table Access
,ALL_ Table Access
,USER_ Table Access
,DBA_ Table Access
,VDollar Table Access
,Insert Count
,Select Count
,Update Count
,Delete Count
,Connect Count
undLog Records
im Zeitablauf dar.-
Klicken Sie auf der Registerkarte für das Histogramm neben dem Symbol Diagrammoptionen (
) auf den Pfeil nach unten.
-
Zeigen Sie die Diagramme aller Felder an.
-
Wählen Sie unter Diagrammtyp die Option Linien/Flächen aus.
-
Passen Sie die Breite an, um zwei Diagramme pro Zeile anzuzeigen.
-
-
In der Gruppentabelle werden die von Link identifizierten Gruppen basierend auf dem Feld SQL-Anweisung aufgeführt. Sie können feststellen, dass die Tabelle für jede SQL die Häufigkeit der SQL-Ausführung, die Startzeit, die Endzeit und die Gruppendauer angibt. Klicken Sie auf jede Gruppe, und zeigen Sie die Logdatensätze an, um weitere Details aufzurufen. Sie können die Gruppen auch zur weiteren Analyse in der Clustervisualisierung anzeigen.
Zeit zwischen Schritten in einer Transaktion analysieren
Mit dem Linkfeature können Sie Benutzersessions analysieren, die verschiedenen Zeitparameter durch Gruppierung extrahieren und Daten zur Transaktionszeit ableiten, um geschäftliche Insights zu erhalten.
Betrachten Sie dieses nicht sortierte Dataset aus einer Zugriffslogdatei. Die folgenden Felder geben die Informationen zu einer Benutzersession und die vom Benutzer ausgeführten Aktionen an:
Time | Session ID | Action
T2 | 1 | Login
T1 | 5 | Login
T6 | 1 | addtocart
T3 | 1 | productlisting
T4 | 1 | purchase
T9 | 1 | purchase
T7 | 5 | addtocart
T5 | 1 | addtocart
T8 | 5 | purchase
Die Aktionen wie Login
, addtocart
, productlisting
und purchase
werden in einer zufälligen Reihenfolge von T1
bis T9
aufgezeichnet und sind in zwei Sessions mit den Session-IDs 1
und 5
aufgetreten.
Um eine ähnliche Zeitanalyse der Zugriffslogs durchzuführen, extrahieren Sie Session ID
aus den Logs in ein Feld. Extrahieren Sie die Zwischenschritte der Session aus den Zugriffslogs, indem Sie einen regulären Ausdruck anwenden, um die URL
aus den Logs abzurufen.
In einem generischen Kontext stellen die Sessions in diesem Beispiel alle Benutzertransaktionen dar. Die Aktionen stellen die Zwischenschritte dar, die der Benutzer zum Abschließen einer Transaktion ausführt.
Um diese nicht sortierten Daten zu analysieren und die erforderlichen Informationen zu extrahieren, kann die folgende Beispielabfrage ausgeführt werden:
'Upload Name' = logadmin
| link 'Session ID'
| rename 'Group Duration' as 'Session Duration'
| addfields
[ Action = addtocart | stats earliest(Time) as 'First Add To Cart Time' ],
[ Action = purchase | stats latest(Time) as 'Last Purchase Time' ]
| eval 'Time Taken for Purchase (Secs)' = ('Last Purchase Time' - 'First Add To Cart Time') / 1000
| fields -'First Add To Cart Time',
-'Last Purchase Time'
| classify 'Time Taken for Purchase (Secs)'
-
link 'Session ID'
gruppiert die Zugriffslogdatensätze nach Session-ID und erstellt zwei Gruppen:Time | Session ID | Action T2 | 1 | Login T6 | 1 | addtocart T3 | 1 | productlisting T4 | 1 | purchase T5 | 1 | addtocart T9 | 1 | purchase T1 | 5 | Login T7 | 5 | addtocart T8 | 5 | purchase
-
addfields
wird für jede dieser Gruppen ausgeführt. Der ersteaddfields
-Befehl wählt die Datensätze mitAction = addtocart
aus. Das Ergebnis dieser Abfrage ist für beide Gruppen wie folgt:Time | Session ID | Action T6 | 1 | addtocart T5 | 1 | addtocart T7 | 5 | addtocart
-
stats earliest(Time)
sortiert das obige Ergebnis für jede Gruppe nach Zeit:Time | Session ID | Action T5 | 1 | addtocart T6 | 1 | addtocart T7 | 5 | addtocart
-
Dann wird das angegebene Feld
Time
aus dem ersten Datensatz übernommen:'First Add To Cart Time' = T5 for Group = 1 'First Add To Cart Time' = T7 for Group = 5
-
Der zweite
addfields
-Befehl wird fürAction = purchase
ausgeführt und extrahiert die folgenden Datensätze:Time | Session ID | Action T4 | 1 | purchase T9 | 1 | purchase T8 | 5 | purchase
-
latest(Time)
sortiert die oben genannten Datensätze ebenfalls nachTime
:Time | Session ID | Action T4 | 1 | purchase T9 | 1 | purchase T8 | 5 | purchase
-
latest(Time)
ruft den letzten Datensatz ab und extrahiert das angegebene Feld (Time
):'Last Purchase Time' = T9 for Group = 1 'Last Purchase Time' = T8 for Group = 5
-
Zu diesem Zeitpunkt sind für beide Gruppen die Werte für
First Add to Cart Time
undLast Purchase Time
festgelegt. Hierbei handelt es sich um Zeitstempel.eval
subtrahiert einen Wert vom anderen, um die verstrichene Zeit abzurufen. -
Sie können die beanspruchte Zeit vom Hinzufügen zum Warenkorb zum Schritt Einkauf für jede Session abrufen. Diese Daten können Sie jetzt in
classify
verwenden, um die Abweichung dieser verstrichenen Zeit über Sessions hinweg zu analysieren.
Die Syntax und andere Details des Befehls addfields
finden Sie unter addfields.
Diagramme für mehrere Felder und deren Werte generieren
Mit dem Befehl addfields
in der Abfrage können Sie mehrere Felder angeben, um separate Diagramme zu generieren. Jetzt können Sie auch die Histogrammoption Diagramme hinzufügen/bearbeiten in der UI verwenden, um den gleichen Vorgang wie mit dem Befehl addfields
auszuführen.
Normalerweise vergleichen Sie die Diagramme eines einzelnen Feldes mit verschiedenen Werten, z.B. Werten des Feldes Severity wie Error, Critical, Alert und Warning. Mit der Option "Diagramm hinzufügen" können Sie mehrere Diagramme generieren, um diese nebeneinander zu vergleichen, indem Sie das Feld und seine Werte im Dialogfeld angeben.
Alternativ können Sie die Abfrage mit dem Befehl eingeben und aktualisieren. Mit der Option "Diagramm hinzufügen" können Sie den Vorgang schneller ausführen als mit dem Befehl addfields
.
-
Gehen Sie über die Link-UI zur Registerkarte Logdatensätze. Klicken Sie im Menü
Diagrammoptionen auf Diagramme hinzufügen/bearbeiten, um die Abfrage automatisch mit dem Befehl
addfields
zu aktualisieren.Das Dialogfeld Diagramme hinzufügen/bearbeiten wird geöffnet.
-
Wählen Sie neben Unterabfrage das Feld im Menü aus, z.B.
Severity
.Wählen Sie den entsprechenden Operator aus.
Klicken Sie auf das Bearbeitungssymbol
, um Werte auszuwählen, z.B.
alert
. Berechnete Felder werden nicht unterstützt. -
Wählen Sie optional die Statistikfunktion aus.
Wählen Sie neben Statistiken die Funktion für das Feld und das Funktionsfeld im Dropdown-Menü aus.
Mit Ausnahme der Funktion
count
muss für alle anderen Funktionen das Funktionsfeld angegeben sein. -
Klicken Sie auf Diagramm hinzufügen, um die resultierende Abfrage anzuzeigen. Klicken Sie auf das Bearbeitungssymbol
, um die Abfrage zu bearbeiten.
-
Wiederholen Sie die Schritte 2 bis 4, um weitere Diagramme hinzuzufügen, z.B. um Diagramme für die Werte
error
,critical
undwarning
des FeldesSeverity
zu generieren.Klicken Sie auf Aktualisieren.
-
Klicken Sie auf das Menü Diagrammoptionen
, und stellen Sie sicher, dass neue von Ihnen generierte Diagramme in die Option Aus-/Einblenden aufgenommen und ausgewählt sind. Sie können außerdem den Typ des Diagramms, die Größe aus dem Diagramm, die Höhe, die Breite und andere Attribute auswählen. Siehe Histogramm.
Jetzt können Sie die angepassten Diagramme von ausgewählten Feldern und deren Auswahlwerte auf der Registerkarte Logdatensätze sehen und visuell vergleichen.
Aggregation der zweiten Ebene mit eventstats-Befehl in Link
Mit Link werden die Logdatensätze anhand von einem oder mehreren eindeutigen Schlüsseln gruppiert. Beispiel: Sie können alle Logdatensätze einer Transaktion mit anhand der eindeutigen Transaktions-ID gruppieren. Statistiken können für jede Gruppe mit dem Befehl stats
generiert werden. eventstats
ist ein neuer Befehl, der diese Statistiken weiter aggregieren kann. Die folgenden Beispiele veranschaulichen die Anwendungsfälle für eventstats
.
In den nachstehenden Beispielen wird das folgende Zugriffslog-Dataset verwendet:
1-Jan-2020 10:00:00 PST, chicago_dc1 /index.html 100
1-Jan-2020 10:00:00 PST, chicago_dc1 /index.html 100
1-Jan-2020 10:00:00 PST, chicago_dc1 /index.html 50
1-Jan-2020 10:00:00 PST, chicago_dc1 /index.html 50
1-Jan-2020 10:00:00 PST, chicago_dc2 /index.html 200
1-Jan-2020 10:00:00 PST, chicago_dc2 /index.html 200
1-Jan-2020 10:00:00 PST, austin_dc7 /report/download 5000
1-Jan-2020 10:00:00 PST, austin_dc7 /users/auth 50
1-Jan-2020 10:00:00 PST, amsterdam_dc1 /index.html 350
1-Jan-2020 10:00:00 PST, amsterdam_dc1 /report/download 1024
Das Dataset verfügt über folgende Felder:
- Time: Beispiel: 1-Jan-2020 10:00:00 PST.
- Host Name (Server): Der Host, der diese Anforderung verarbeitet hat, z.B. chicago_dc1.
- URI: Die URL der Anforderung. Beispiel: /index.html.
- Content Size Out: Die Anzahl der heruntergeladenen Byte, z.B. 100.
Einfache Gruppierung:
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
Die oben genannte Abfrage gruppiert die Logdatensätze mit der eindeutigen Kombination aus den Feldern Host Name (Server) und URI. Das Feld Content Size Out jedes Datensatzes wird dann pro Gruppe im neuen Feld Bytes Downloaded summiert.
Globale Summe mit eventstats
Die im vorherigen Beispiel heruntergeladenen Byte gelten für jede Kombination aus Server und URL. Ein einfacher Anwendungsfall von eventstats
besteht darin, die insgesamt heruntergeladenen Daten auf allen Servern und URLs zu berechnen:
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded'
Im obigen Beispiel aggregiert eventstats
Werte für jede Gruppe, um eine einzelne globale Zusammenfassung zu erstellen. Diese kann nun an classify
oder eval
übergeben und in der where
-Klausel verwendet werden.
Mehrere eventstats
-Befehle:
Mehrere eventstats
-Befehle können wie im folgenden Beispiel gruppiert oder verkettet werden:
.. | eventstats sum('Content Size In') as 'Bytes Uploaded', sum('Content Size Out') as 'Bytes Downloaded'
| eventstats avg('Duraton') as 'Global Average Duration'
Mit eventstats gruppieren
Der Befehl eventstats
weist außerdem einen Modus für Gruppieren nach auf. Beachten Sie die folgende Abfrage:
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by URI
Anstatt einen einzelnen Wert zu berechnen, berechnet eventstats
jetzt einen Wert pro eindeutiger URI:
Die Summe wird erzeugt, indem zuerst die eindeutigen URIs abgerufen werden und dann die Aggregation ausgeführt wird:
index.html -> 300 + 400 + 350 = 1050
/report/download -> 5000 + 1024 = 6024
/users/auth -> 50 = 50
eventstats with eval
Der Befehl eventstats
kann auch mit einem Feld ausgeführt werden, das von einem eval
-Befehl erzeugt wurde. Beispiel: Anstelle der URL können Sie die Summen für das Data Center erstellen:
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eval offset = indexof('Host Name (Server)', _)
| eval Datacenter = substr('Host Name (Server)', 0, offset)
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by Datacenter
| fields -offset
Die Funktion sum
wird nach der Gruppierung nach Teilzeichenfolgen ausgeführt:
chicago_dc1 = 300
chicago_dc2 = 400
-> chicago = 300+400 = 700
amsterdam_dc1 = 350
amsterdam_dc1 = 1024
-> amsterdam = 350 + 1024 = 1374
austin_dc7 = 5000
austin_dc7 = 50
-> austin = 5000 + 50 = 5050
Die Gruppierung kann mit einer oder mehreren Eigenschaften durchgeführt werden. Die Eigenschaften sind die Gruppenschlüssel oder Zeichenfolgenwerte, die von stats
oder eval
erzeugt werden.
Prozentsätze für Gruppenvergleich berechnen
Eine besonders wichtige Anwendung für den Befehl eventstats
besteht darin, einen globalen Wert zu erzeugen und den hohen oder niedrigen prozentualen Anteil verschiedener Gruppen zu identifizieren:
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eval offset = indexof('Host Name (Server)', _)
| eval Datacenter = substr('Host Name (Server)', 0, offset)
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by Datacenter
| eval 'Download Contribution %' = 100 / ('Total Bytes Downloaded' / 'Bytes Downloaded')
| fields -offset
Download Contribution % wird mit dem globalen Wert berechnet, der von eventstats..by
erzeugt wird, und dem Wert pro Gruppe, die von stats
erzeugt wird:
chicago_dc1, index.html => 100/(700/300) = 42.857
chicago_dc2, index.html => 100/(700/400) = 57.143
amsterdam_dc1, index.html => 100/(1374/350) = 25.473
amsterdam_dc1, /report/download => 100/(1374/1024) = 74.527
austin_dc7, /report/download => 100/(5050/5000) = 99.01
austin_dc7, /users/auth => 100/(5050/50) = 0.99
Mit dieser Abfrage können Sie ermitteln, welche URLs den höchsten Downloadtraffic im Vergleich zu den anderen URLs in demselben Data Center verursachen. Mit dem Feld Download Contribution % können Sie die Gruppen mit folgenden Optionen filtern:
where
-Klauselsort
-Befehl für Rankingclassify
-Befehl für Anomalieerkennung
Mit Linknavigationsfunktionen Ereignisse in einer Datenbank identifizieren
Verwenden Sie Link, um strukturierte Daten aus Logdatensätzen zu erstellen und die Daten als geordnete Tabelle anzuzeigen. Statistische Funktionen können mit dem Befehl stats auf Spalten der Tabelle angewendet werden, um abgeleitete Spalten zu erstellen. Diese abgeleiteten Spalten können mit dem Befehl eventstats weiter aggregiert werden.
Navigationsfunktionen
Navigationsfunktionen sind nützlich, um Werte einer bestimmten Spalte aus einer bestimmten Zeile abzurufen. Je nach dem vorhergehenden sort-Befehl werden unterschiedliche Ergebnisse ausgegeben.
Die folgenden Navigationsfunktionen können mit dem Befehl eventstats
in Link verwendet werden:
Funktion | Beschreibung |
---|---|
|
Zeilennummernspalte erstellen |
|
Ersten Wert für das angegebene Feld abrufen |
|
Letzten Wert für das angegebene Feld abrufen |
|
Spaltenwert für die angegebene Zeile abrufen |
|
Spaltenwert für die vorherige Zeile abrufen |
|
Spaltenwert für die nächste Zeile abrufen |
Weitere Informationen zu den Funktionen finden Sie unter eventstats.
Kontext für ein Ereignis abrufen
Oracle Log Analytics stellt Out-of-the-box-Labels für die Datenbankalertlogs bereit. Das Label Abnormal Termination gibt ein schwerwiegendes Problem an, das das Herunterfahren der Datenbank verursacht. In der Regel analysieren Sie die Abfolge von Ereignissen, die vor einem solchen Herunterfahren stattgefunden haben. Außerdem ist es hilfreich, die Ereignisse nach dem Herunterfahren zu kennen.
In den folgenden Abschnitten werden die Untersuchungsschritte mit einigen der eventstats
-Funktionen für Datenbankalertlogs beschrieben.
Ereignisse in Datenbankalertlogs verknüpfen
Führen Sie die folgende Abfrage aus, um die Ereignisse für eine ausgewählte Datenbank zu verknüpfen:
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
Dadurch wird eine eindeutige Zeile für jedes Label in der Datenbank erstellt. Da die Zeitspalte enthalten ist, wären mehrere Zeilen für dasselbe Label vorhanden, wenn diese sich zu unterschiedlichen Zeiten wiederholen.
Der sort
-Befehl sortiert die Tabelle nach der Reihenfolge von Label mit dem ältesten Label in der ersten Zeile.
Zeilennummer hinzufügen
Führen Sie die folgende Abfrage aus, um jeder Zeile eine Zahl hinzuzufügen:
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
Wenn die Abfrage mehrere Datenbanken umfasst, wird die Zeilennummer aufgrund der by Database
-Klausel für jede Datenbank zurückgesetzt.
Zeile mit Datenbankabsturzereignis identifizieren
Das Label Abnormal Termination gibt an, dass die Datenbank abgestürzt ist. Identifizieren Sie diese Zeilen mit der folgenden Abfrage:
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
[ * | where Label = 'Abnormal Termination'
| eventstats last('Row Number') as 'Crash Row'
]
addfields
wird verwendet, um eine Teilmenge der Logdatensätze zu identifizieren. In diesem Fall durchsucht addfields
mehrere Zeilen der Tabelle. Die übereinstimmenden Zeilen werden an eventstats
übergeben, und last('Row Number')
ruft die Zeilennummer der letzten übereinstimmenden Zeile ab. Diese wird jetzt als neues Feld Crash Row aufgefüllt. Beachten Sie, dass "Crash Row" nur einen Wert für die Zeilen enthält, die der in addfields
angegebenen Bedingung entsprechen.
"Crash Row" wird nur für bestimmte Zeilen aufgefüllt. Verwenden Sie einen anderen eventstats
-Befehl, um alle Zeilen mit dem Wert zu füllen:
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
[ * | where Label = 'Abnormal Termination'
| eventstats last('Row Number') as 'Crash Row'
]
| eventstats max('Crash Row') as 'Event Row' by Database
Dadurch wird die Spalte Event Row in jeder Zeile erstellt. Sie enthält die Zeile mit dem letzten Datenbankabsturz.
Ereignisse in der Nähe von Datenbankabstürzen identifizieren
Die Tabelle enthält noch zahlreiche weitere Ereignisse. Um wenige Ereignisse vor der Ereigniszeile und wenige Ereignisse nach der Ereigniszeile zu ermitteln, ändern Sie die Abfrage, um die Zeilen zu filtern:
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
[ * | where Label = 'Abnormal Termination'
| eventstats last('Row Number') as 'Crash Row'
]
| eventstats max('Crash Row') as 'Event Row' by Database
| eval 'Start Row' = 'Event Row' - 3
| eval 'End Row' = 'Event Row' + 2
| where 'Row Number' >= 'Start Row' and 'Row Number' <= 'End Row'
Die Tabelle zeigt jetzt, welche Ereignisse vor der anormalen Beendigung stattgefunden haben. Außerdem werden die Ereignisse angezeigt, die nach der anormalen Beendigung aufgetreten sind.
Vorherige und nächste Ereignisse
Mit lag()
können Sie das vorherige Ereignis abrufen. Eine optionale Zeilennummer kann übergeben werden, um eine bestimmte vorherige Zeile abzurufen. lead()
kann gleichermaßen verwendet werden, um die nächste Zeile abzurufen:
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| addfields
[ *
| where Label != null
| eventstats lag(Label) as 'Previous Event',
lead(Label) as 'Next Event'
]
Außerdem kann nthVal()
den Wert aus einer bestimmten Zeile abrufen.
Währungssymbole in der Loganalyse verwenden
Sie können die unit
-Funktion im eval
-Befehl verwenden, um ein Feld als enthaltende Währung zu markieren. Anschließend können Sie diesen Feldwert in Ihrer Analyse verwenden und das entsprechende Währungssymbol in der Visualisierungen- und Gruppentabelle anzeigen.
Sie können zuerst die Währungseinheit mit dem im Zeitalter definierten Format angeben. Danach werden in der Linktabelle und den Diagrammen die richtigen Währungssymbole angezeigt.
Im folgenden Beispiel wird der Wert des Feldes Preis zur Berechnung der Werte der neuen Felder Preis (USD), Preis (GBP), Preis (JPY), Preis (CNY) und Preis (INR) verwendet und als enthaltende Währung gekennzeichnet. Die gleichen neuen Felder werden für die Analyse verwendet, um den regionalen durchschnittlichen Benzinpreis über einen Zeitraum von mehreren Jahren zu erhalten.
'Log Source' = 'Gasoline Prices'
| eval 'Price (USD)' = unit(Price, currency_usd)
| eval 'Price (GBP)' = unit(Price * 0.72, currency_gbp)
| eval 'Price (JPY)' = unit(Price * 110.6, currency_jpy)
| eval 'Price (CNY)' = unit(Price * 6.47, currency_cny)
| eval 'Price (INR)' = unit(Price * 74.79, currency_inr)
| link Time, Type, Region
| stats avg('Price (USD)') as 'Cost (USD)',
avg('Price (GBP)') as 'Cost (GBP)',
avg('Price (JPY)') as 'Cost (JPY)',
avg('Price (CNY)') as 'Cost (CNY)',
avg('Price (INR)') as 'Cost (INR)'
| classify 'Start Time', 'Cost (USD)', Region, Type as 'Gas Price Analysis'
In der folgenden Abbildung werden die Gruppen basierend auf Region, Zeit und Benzintyp identifiziert. Die durchschnittliche Preisspanne von Benzin wird verwendet, um die Blasen entlang der Y-Achse zu zeichnen.

In der folgenden Abbildung zeigt die Gruppentabelle den durchschnittlichen Benzinpreis in verschiedenen Währungen. Die Diagramme zeigen die Variation der Kosten über mehrere Jahre für jeden Währungswert an.

Zeitreihenanalyse mit dem Befehl timestats
Sie können den Trend eines Feldes mit dem Befehl timestats
analysieren. Der Befehl timestats
, wenn er nach dem Befehl link
verwendet wird, bietet zusätzliche Zeitreihenanalysen und umfassende Visualisierung.
Beispiel für OCI VCN Flow Unified Schema Logs. Das Feld Aktion in den Unified-Schema-Logs für OCI-VCN-Flow gibt an, ob eine bestimmte Netzwerkanforderung akzeptiert oder abgelehnt wurde. Verwenden Sie den Befehl timestats
, um den Trend dieses Feldes zu analysieren. Siehe timestats.
Ab dem einfachen link
-Befehl:
'Log Source' = 'OCI VCN Flow Unified Schema Logs' | link Action
Dies zeigt, dass es zwei eindeutige Werte für den ausgewählten Zeitraum gibt:

Im obigen Fall ist nur eine Zeile für jede eindeutige Aktion verfügbar, da das Standardverhalten darin besteht, nach dem angegebenen Feld zu gruppieren. Der erste Schritt besteht darin, sicherzustellen, dass für jeden Wert basierend auf der Periode mehrere Zeilen vorhanden sind. Dazu fügen Sie dem Befehl link
Zeit als weiteres Feld hinzu.
'Log Source' = 'OCI VCN Flow Unified Schema Logs' | link span=1day Time, Action
Der Parameter span ist optional. Andernfalls wird ein für die ausgewählte Periode geeigneter Standardwert berechnet. Sie können nun dieselbe Aktion für einen anderen Tag in einer separaten Zeile anzeigen.

Verwenden Sie jetzt den Befehl timestats
. In diesem Fall möchten wir Startzeit in der X-Achse und den Wert Anzahl in der Y-Achse. Da timestats
immer eine Funktion erfordert, verwenden Sie die Funktion sum(), um die Anzahl der Datensätze mit dem angegebenen Aktionswert für jedes Intervall zusammenzufassen.
'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| link span=1day Time, Action
| timestats name="Trend of Action" sum(Count) as Records by Action
Zeigt die Summenwerte (Anzahl) für jede Aktion an.

Details zum Plotten der Zeitreihe mit dem Befehl timestats
, Feldern, Grenzwerten und Konfigurationsoptionen finden Sie unter Befehl timestats verwenden, um Zeitreihen darzustellen.
Zeitreihencluster
Sie können ähnliche Zeitreihenwerte mit dem Befehl timecluster
nach dem Befehl link
gruppieren. Clustering ist nützlich, wenn eine große Anzahl von Zeitreihen zu analysieren ist oder wenn Sie unterschiedliche Verhaltensweisen in Ihren Zeitreihenwerten identifizieren möchten.
In OCI VCN Flow Unified Schema Logs werden die Netzwerktrafficinformationen für eine OCI-VNIC aufgezeichnet. Um zu identifizieren, wie viele Daten von verschiedenen öffentlichen IPs übertragen werden, kann eine Abfrage mit den Feldern Öffentliche IP und Inhaltsgröße ausgehend erstellt werden.
Ab dem einfachen link
-Befehl:
'Log Source' = 'OCI VCN Flow Unified Schema Logs' | eval 'Content Size Out (bytes)' = unit('Content Size Out', byte) | link 'Public IP'
Dies zeigt, dass über 25k eindeutige öffentliche IPs im System vorhanden sind.

Die Tabelle enthält eine Zeile für jede eindeutige öffentliche IP. Diese muss aufgeteilt werden, damit für jede Periode ein Datensatz vorhanden ist. Dazu fügen Sie dem Befehl link
das Feld Zeit hinzu:
'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| eval 'Content Size Out (bytes)' = unit('Content Size Out', byte)
| link Time, 'Public IP'
Dadurch werden mehrere Zeilen für jeden öffentlichen IP-Wert angezeigt.
Wenn der Befehl timestats
zur Darstellung der Zeitreihe verwendet wird, gibt er nur die Top 100 öffentlichen IPs zurück. Es ist nicht möglich, 25k-IPs in einem Diagramm darzustellen.

Verwenden Sie daher anstelle von timestats
timecluster
, um die repräsentativen Beispiele abzurufen.
'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| eval 'Content Size Out (bytes)' = unit('Content Size Out', byte)
| link Time, 'Public IP'
| timecluster avg('Content Size Out (bytes)') as 'Network Transfer' by 'Public IP'

Jede Zeile stellt einen oder mehrere öffentliche IP-Werte dar, die ähnliche Werte für die Netzwerkübertragung aufweisen.
Bewegen Sie die Maus über einen beliebigen Punkt, um weitere Details anzuzeigen:

Weitere Details zum Befehl timecluster
und zum Clustering von Zeitreihen finden Sie unter timecluster und Timecluster-Befehl zum Darstellen einer Zeitreihe verwenden.