Strukturieren von Log Analytics-Abfragen

Abgeschlossen

Administratoren erstellen Log Analytics-Abfragen aus in dedizierten Tabellen gespeicherten Daten in einem Log Analytics-Arbeitsbereich. Einige gängige dedizierte Tabellen sind „Event“, „Syslog“, „Heartbeat“ und „Alert“. Wenn Sie eine KQL-Abfrage (Kusto-Abfragesprache) erstellen, bestimmen Sie zunächst, welche Tabellen im Azure Monitor-Protokollrepository die gesuchten Daten enthalten.

Die folgende Abbildung zeigt, wie KQL-Abfragen die dedizierten Tabellendaten für Ihre überwachten Dienste und Ressourcen verwenden.

Abbildung, die zeigt, wie Log Analytics-Abfragen aus Daten in dedizierten Tabellen in einem Log Analytics-Arbeitsbereich erstellt werden

Wissenswertes zur KQL-Abfragestruktur

Werfen wir einen genaueren Blick auf dedizierte Tabellendaten und das Strukturieren einer KQL-Protokollabfrage.

  • Jede Ihrer ausgewählten Datenquellen und Lösungen speichert ihre Daten in dedizierten Tabellen in Ihrem Log Analytics-Arbeitsbereich.

  • Die Dokumentation für jede Datenquelle und Lösung enthält den Namen des Datentyps, die sie erstellt, und eine Beschreibung ihrer einzelnen Eigenschaften.

  • Die grundlegende Struktur einer Abfrage ist eine Quelltabelle, gefolgt von einer Reihe von Befehlen (als Operatoren bezeichnet).

  • Eine Abfrage kann eine Kette mehrerer Operatoren aufweisen, um Ihre Daten einzugrenzen und erweiterte Funktionen auszuführen.

  • Jeder Operator in einer Abfragekette beginnt mit einem Pipezeichen (|).

  • Für viele Abfragen werden Daten aus einer einzigen Tabelle benötigt, andere Abfragen können jedoch verschiedene Optionen verwenden und Daten aus mehreren Tabellen einschließen.

Beispiele für eine KQL-Protokollabfrage

Sehen wir uns einige gängige KQL-Protokollabfrageoperatoren und die Beispielsyntax an.

Wir können Abfragen für die Suche nach Daten in der StormEvent-Tabelle mit fünf Einträgen erstellen:

type event severity start duration Region
Water Freezing rain 1 6:00 AM 01-27-2023 3 hours 1, 2
Wind High winds 1 8:00 AM 01-27-2023 12 hours 1, 2, 4, 5
Temperature Below freezing 2 11:00 PM 01-26-2023 10 hours 1, 2, 4, 5
Water Snow 3 4:00 PM 01-26-2023 10 hours 1, 2, 4, 5
Water Flood warning 2 9:00 AM 01-26-2023 10 hours 3

Weitere Operatoren und Beispiele finden Sie unter: Analysieren von Überwachungsdaten mit Kusto Query Language – Training | Microsoft Learn.

Zählen der Anzahl von Elementen

Verwenden Sie den count-Operator, um die Anzahl der Datensätze in einem Eingabedatensatz zu ermitteln.

Im folgenden Beispiel wird die Anzahl der Datensätze in der StormEvent-Tabelle zurückgegeben. Die Abfrageergebnisse zeigen, dass die StormEvent-Tabelle fünf Einträge enthält.

StormEvent | count

Abfrageergebnisse:

count
5

Zurückgeben der ersten n Elemente

Verwenden Sie den top-Operator, um die ersten n Einträge Ihres Eingabedatensatzes sortiert nach den angegebenen Spalten anzuzeigen. Die Spalten entsprechen den Dateneigenschaften, die in der dedizierten Tabelle definiert sind.

Im folgenden Beispiel werden die ersten drei Datensätze für StormEvent zurückgegeben. Die Ergebnistabelle zeigt den Namen, den Schweregrad und die prognostizierte Dauer des Sturms (event) an.

StormEvent | top 3 by event severity duration

Abfrageergebnisse:

event severity duration
Freezing rain 1 3 hours
High winds 1 12 hours
Below freezing 2 10 hours

Suchen nach übereinstimmenden Elementen

Verwenden Sie den where-Operator, um Ihre Tabelle nach der Teilmenge der Zeilen zu filtern, die dem angegebenen Prädikatwert entsprechen. Der Prädikatwert gibt an, wonach in der Tabelle gesucht werden soll, z. B. where=="find-this".

Im folgenden Beispiel werden die Datensätze für StormEvent so gefiltert, dass nur solche verwendet werden, die mit „snow“ übereinstimmen.

StormEvent | where event=="snow"

Durch Ihre Abfrage wird eine Zeile in der StormEvent-Tabelle herausgefiltert:

type event severity start duration Region
Water Snow 3 4:00 PM 01-26-2023 10 hours 1, 2, 4, 5