Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Dotazovací jazyk Kusto (KQL) je výkonný nástroj umožňující procházení dat a zjišťování vzorů, identifikaci anomálií a odlehlých hodnot, vytváření statistických modelů atd.
KQL je jednoduchý, ale výkonný jazyk pro dotazování strukturovaných, částečně strukturovaných a nestrukturovaných dat. Jazyk je výrazný, snadno čitelný a srozumitelný záměr dotazu a optimalizovaný pro vytváření prostředí. KQL je optimální pro dotazování telemetrie, metrik a protokolů s hlubokou podporou vyhledávání a analýzy textu, operátorů a funkcí časových řad, analýz a agregace, geoprostorových vyhledávání, vyhledávání vektorů a mnoha dalších jazykových konstruktorů, které poskytují nejoptimálnější jazyk pro analýzu dat. Dotaz používá entity schématu uspořádané v hierarchii podobné seznamům SQLs: databáze, tabulky a sloupce.
Pokud máte zkušenosti se skriptováním nebo prací s databázemi, měla by být většina obsahu tohoto článku povědomá. Pokud ne, nemějte obavy, protože intuitivní povaha jazyka vám umožní rychle začít psát vlastní dotazy a řídit hodnotu pro vaši organizaci.
Tento článek obsahuje vysvětlení dotazovacího jazyka a nabízí praktická cvičení, která vám pomůžou začít psát dotazy. Pokud chcete získat přístup k prostředí dotazu, použijtewebové uživatelské rozhraní Azure Data Exploreru
Tento článek obsahuje vysvětlení dotazovacího jazyka a nabízí praktická cvičení, která vám pomůžou začít psát dotazy. Pokud chcete získat přístup k prostředí dotazu, použijte
KQL je také jazyk, který používáte k práci s daty a manipulaci s nimi v Microsoft Sentinelu. Pokud je nemůžete analyzovat a získat důležité informace skryté ve všech datech, za protokoly, které do svého pracovního prostoru vložíte, moc nestojí. KQL má nejen výkon a flexibilitu pro získání informací, ale jednoduchost, která vám pomůže rychle začít.
Tento článek představuje základy KQL, které pokrývají některé z nejčastěji používaných funkcí a operátorů, které by měly adresovat 75 až 80 procent dotazů, které uživatelé zapisují každý den. Pokud potřebujete větší hloubku nebo chcete spouštět pokročilejší dotazy, můžete využít sešit Advanced KQL pro Microsoft Sentinel.
Proč KQL pro Microsoft Sentinel?
Služba Microsoft Sentinel je založená na službě Azure Monitor a využívá pracovní prostory služby Log Analytics služby Azure Monitor k ukládání všech dat. Tato data zahrnují některou z následujících možností:
- data ingestovaná z externích zdrojů do předdefinovaných tabulek pomocí datových konektorů Microsoft Sentinelu.
- data ingestovaná z externích zdrojů do uživatelsky definovaných vlastních tabulek, pomocí vlastních datových konektorů a některých typů předdefinovaných konektorů.
- data vytvořená samotnou službou Microsoft Sentinel, která jsou výsledkem analýz, které vytváří a provádí – například výstrahy, incidenty a informace související s UEBA.
- data nahraná do Microsoft Sentinelu, která pomáhají s detekcí a analýzou – například informační kanály analýzy hrozeb a seznamy ke zhlédnutí.
KQL byl vyvinut jako součást služby Azure Data Explorer a je proto optimalizovaný pro vyhledávání prostřednictvím úložišť velkých objemů dat v cloudovém prostředí. Je navržená tak, aby vám pomohla ponořit se do dat a prozkoumat skryté poklady.
KQL se také používá ve službě Azure Monitor a podporuje další funkce Azure Monitoru, které umožňují načítat, vizualizovat, analyzovat a analyzovat data v úložištích dat Log Analytics. V Microsoft Sentinelu používáte nástroje založené na jazyce KQL vždy, když vizualizujete a analyzujete data a proaktivní vyhledávání hrozeb, ať už v existujících pravidlech a sešitech, nebo při vytváření vlastních.
Vzhledem k tomu, že KQL je součástí téměř všeho, co v Microsoft Sentinelu děláte, jasný přehled o tom, jak to funguje, vám pomůže dosáhnout toho více ze svého SIEM.
Co je dotaz Kusto?
Dotaz Kusto je požadavek jen pro čtení pro zpracování dat a vrácení výsledků. Požadavek je uvedený ve formátu prostého textu pomocí modelu toku dat, který je snadno čitelný, autor a automatizovat. Dotazy Kusto jsou tvořeny jedním nebo více příkazy dotazu.
Dotaz Kusto nezapisuje žádná data. Dotazy pracují s daty uspořádanými do hierarchie databází, tabulek a sloupců, podobně jako SQL.
Co je příkaz dotazu?
Existují tři druhy příkazů dotazu uživatele:
- příkaz tabulkového výrazu
- Příkaz let
- Příkaz set
Všechny příkazy dotazu jsou oddělené ; (středníkem) a ovlivňují pouze dotaz v ruce.
Poznámka
Informace o příkazech dotazu aplikace naleznete v tématu příkazy dotazu aplikace.
Nejběžnějším druhem příkazu dotazu je tabulkový výraz příkaz, což znamená, že jeho vstup i výstup se skládají z tabulek nebo tabulkových datových sad. Tabulkové příkazy obsahují nula nebo více operátorů , z nichž každá začíná tabulkovým vstupem a vrací tabulkový výstup. Operátory jsou sekvencovány pomocí | (potrubí). Toky dat nebo se předá z jednoho operátoru do dalšího. Data se filtrují nebo manipulují v každém kroku a pak se předá do následujícího kroku.
Je to jako trychtýř, kde začínáte s celou tabulkou dat. Pokaždé, když data procházejí jiným operátorem, filtrují se, přeuspořádají nebo shrnují. Vzhledem k tomu, že propojení informací z jednoho operátoru do druhého je sekvenční, je pořadí operátorů dotazu důležité a může ovlivnit výsledky i výkon. Na konci trychtýře zůstanete s upřesněným výstupem.
Podívejme se na příklad dotazu.
StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
| Počítat |
|---|
| 28 |
Poznámka
KQL se u všeho rozlišují malá a velká písmena – názvy tabulek, názvy sloupců tabulky, operátory, funkce atd.
Klíčová slova lze použít jako identifikátory tak, že je uzavřete do závorek a uvozovek ([' a '] nebo [" a "]). Například ['where']. Další informace najdete v tématu pravidla pojmenování identifikátorů
Tento dotaz má jeden příkaz tabulkového výrazu. Příkaz začíná odkazem na tabulku s názvem StormEvents a obsahuje několik operátorů, where a count, každý oddělený kanálem. Řádky dat pro zdrojovou tabulku se filtrují podle hodnoty sloupce StartTime a potom filtrují podle hodnoty sloupce State. Dotaz na posledním řádku vrátí tabulku s jedním sloupcem a jedním řádkem obsahujícím počet zbývajících řádků.
Pokud si chcete vyzkoušet několik dalších dotazů Kusto, přečtěte si Kurz: Psaní dotazů Kusto.
Příkazy pro správu
Na rozdíl od dotazů Kusto jsou příkazy pro správu požadavky kusto ke zpracování nebo úpravě dat nebo metadat. Například následující příkaz pro správu vytvoří novou tabulku Kusto se dvěma sloupci, Level a Text:
.create table Logs (Level:string, Text:string)
Příkazy pro správu mají vlastní syntaxi, která není součástí syntaxe KQL, i když tyto dva koncepty sdílejí mnoho konceptů. Konkrétně se příkazy pro správu rozlišují od dotazů tím, že mají první znak v textu příkazu tečku (.) znak (který nemůže spustit dotaz).
Toto rozlišení brání mnoha druhům útoků na zabezpečení, jednoduše proto, že brání vkládání příkazů pro správu do dotazů.
Ne všechny příkazy pro správu upravují data nebo metadata. Velká třída příkazů, které začínají .show, slouží k zobrazení metadat nebo dat. Například příkaz .show tables vrátí seznam všech tabulek v aktuální databázi.
Další informace o příkazech pro správu najdete v tématu Přehled příkazů správy.
KQL v jiných službách
KQL používá mnoho dalších služeb Microsoftu. Konkrétní informace o použití KQL v těchto prostředích najdete na následujících odkazech:
- dotazy protokolu ve službě Azure Monitor
- principy dotazovacího jazyka Azure Resource Graph
- Proaktivní vyhledávání hrozeb s pokročilým vyhledáváním v Microsoft Defender
- dotazy CMPivot
Související obsah
- Kurz : Seznámení s běžnými operátory
- kurz : Použití agregačních funkcí
- KQL – stručná referenční
- Tahák SQL do KQL
- osvědčené postupy Query