Verwenden des summarize-Operators
Der count-Operator mit seinen Variationen erstellt eine neue Spalte mit dem berechneten Ergebnis für die angegebenen Felder.
Die erste Anweisung unten gibt eine Spalte zurück, bei der es sich um eine eindeutige Liste der Werte aus der Activity-Spalte handelt.
Die zweite Anweisung gibt die Anzahl der SecurityEvent-Zeilen zurück, deren EventID 4688 lautet. Die Anzahl ist nach „Process“ und „Computer“ gruppiert. Aufgrund der by-Klausel enthält das Resultset drei Spalten: Process, Computer und Count.
Führen Sie jede Abfrage separat aus, um die Ergebnisse anzuzeigen.
SecurityEvent | summarize by Activity
SecurityEvent
| where EventID == "4688"
| summarize count() by Process, Computer
Das unten stehende Beispiel ist eine unvollständige Liste der gebräuchlichsten einfachen Aggregatfunktionen, die mit dem Operator summarize verwendet werden.
Funktionen | BESCHREIBUNG |
---|---|
count(), countif() | Gibt die Anzahl von Datensätzen pro Zusammenfassungsgruppe zurück. |
dcount(), dcountif() | Gibt eine Schätzung für die Anzahl der unterschiedlichen Werte zurück, die von einem Skalarausdruck in der Zusammenfassungsgruppe akzeptiert werden. |
avg(), avgif() | Berechnet den Durchschnitt von Expr in der Gruppe. |
max(), maxif() | Gibt den Höchstwert in der Gruppe zurück. |
min(), minif() | Gibt den Mindestwert in der Gruppe zurück. |
percentile() | Gibt eine Schätzung für das angegebene Perzentil des nächsten Rangs der durch Expr definierten Grundgesamtheit zurück. Die Genauigkeit hängt von der Bevölkerungsdichte in der Region des Perzentils ab. |
stdev(), stdevif() | Berechnet die Standardabweichung von Expr in der Gruppe, wobei die Gruppe als Stichprobe betrachtet wird. |
sum(), sumif() | Berechnet die Summe von Expr in der Gruppe. |
variance(), varianceif() | Berechnet die Abweichung von Expr in der Gruppe, wobei die Gruppe als Stichprobe betrachtet wird. |
Beispiel für die count-Funktion
Eine Aggregatfunktionsspalte kann durch Einfügen von "fieldname=" vor der Aggregatfunktion explizit benannt werden.
Die KQL-Anweisung gibt drei Spalten zurück: cnt, AccountType und Computer. Der Feldname „cnt“ ersetzt den Standardnamen „count“.
SecurityEvent
| where TimeGenerated > ago(1h)
| where EventID == 4624
| summarize cnt=count() by AccountType, Computer
Beispiel für die <dcount>-Funktion
Das folgende Beispiel gibt die Anzahl eindeutiger IP-Adressen zurück.
SecurityEvent
| summarize dcount(IpAddress)
Sehen wir uns ein Beispiel aus der Praxis an.
Die folgende Anweisung ist eine Regel zur Erkennung von Fehlern aufgrund eines ungültigen Kennworts bei mehreren Anwendungen für dasselbe Konto.
Der where-Operator für ResultDescription filtert das Resultset nach Ergebnissen, die „Ungültiges Kennwort“ enthalten. Als nächstes erzeugt die Anweisung „summarize“ eine eindeutige Zählung der Anwendungsnamen und Gruppen nach Benutzer und IP-Adresse. Abschließend findet eine Prüfung anhand einer erstellten Variable (Schwellenwert) statt, um zu ermitteln, ob die Anzahl die zulässige Anzahl überschreitet.
let timeframe = 30d;
let threshold = 1;
SigninLogs
| where TimeGenerated >= ago(timeframe)
| where ResultDescription has "Invalid password"
| summarize applicationCount = dcount(AppDisplayName) by UserPrincipalName, IPAddress
| where applicationCount >= threshold