Použití operátoru summarize

Dokončeno

Operátor count s jeho variantami vytvoří nový sloupec s počítaným výsledkem pro zadaná pole.

První příkaz níže vrátí jeden sloupec, který je jedinečným seznamem hodnot sloupce Aktivita.

Druhý příkaz vrátí počet řádků SecurityEvent, kde EventID se rovná 4688 a počet je seskupený podle procesu a počítače. Vzhledem k klauzuli By obsahuje sada výsledků tři sloupce: Proces, Počítač, Počet.

Výsledky zobrazíte spuštěním jednotlivých dotazů zvlášť.

SecurityEvent | summarize by Activity

SecurityEvent
| where EventID == "4688"
| summarize count() by Process, Computer

Následující příklad je částečný seznam nejběžnějších jednoduchých agregačních funkcí používaných s operátorem sumarizace.

Funkce Popis
count(), countif() Vrátí počet záznamů na skupinu souhrnů.
dcount(), dcountif() Vrátí odhad počtu jedinečných hodnot přijatých skalárním výrazem ve skupině souhrnů.
avg(), avgif() Vypočítá průměr výrazů ve skupině.
max(), maxif() Vrátí maximální hodnotu ve skupině.
min(), minif() Vrátí minimální hodnotu ve skupině.
percentil() Vrátí odhad zadaného percentilu nejbližšího pořadí základního souboru definovaného výrazem. Přesnost závisí na hustotě populace v oblasti percentilu.
stdev(), stdevif() Vypočítá směrodatnou odchylku výrazu ve skupině s ohledem na skupinu jako vzorek.
sum(), sumif() Vypočítá součet výrazů ve skupině.
variance(), varianceif() Vypočítá rozptyl výrazu ve skupině vzhledem ke skupině jako ukázku.

Příklad funkce count

Sloupec agregační funkce lze explicitně pojmenovat zahrnutím "fieldname=" před agregační funkcí.

Příkaz KQL vrátí tři sloupce: "cnt", "AccountType" a "Computer". Název pole "cnt" nahrazuje výchozí název "count_".

SecurityEvent
| where TimeGenerated > ago(1h)
| where EventID == 4624
| summarize cnt=count() by AccountType, Computer

<Příklad funkce dcount>

Následující příklad vrátí počet jedinečných IP adres.

SecurityEvent
| summarize dcount(IpAddress)

Podívejme se na skutečný příklad

Následující příkaz je pravidlo pro detekci neplatných chyb hesel ve více aplikacích pro stejný účet.

Operátor where pro ResultDescription filtruje sadu výsledků pro výsledky včetně neplatného hesla. Dále příkaz "summarize" vytvoří jedinečný počet názvů aplikací a seskupení podle uživatele a IP adresy. Nakonec existuje kontrola proti proměnné vytvořené (prahová hodnota), abyste zjistili, jestli číslo překročí povolenou částku.

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