Strukturieren von Log Analytics-Abfragen
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.
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 |