Kusto lekérdezésnyelv áttekintése

Szolgáltatások váltása a Verzió legördülő listával. További információ a navigációról.
A következőkre vonatkozik: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

A Kusto Query Language (KQL) hatékony eszköz az adatok feltárásához és a minták felderítéséhez, az anomáliák és kiugró értékek azonosításához, statisztikai modellek létrehozásához stb.

A KQL egy egyszerű, mégis hatékony nyelv a strukturált, félig strukturált és strukturálatlan adatok lekérdezéséhez. A nyelv kifejező, könnyen olvasható és érthető a lekérdezési szándék, és a szerzői élményhez van optimalizálva. A KQL optimális a telemetriai adatok, metrikák és naplók lekérdezéséhez a szövegkeresés és -elemzés, az idősorozat-operátorok és -függvények, az elemzések és az összesítés, a térinformatikai, a vektor-hasonlósági keresések és számos más olyan nyelvi szerkezet esetében, amelyek a legoptimálisabb nyelvet biztosítják az adatelemzéshez. A lekérdezés olyan séma-entitásokat használ, amelyek az SQL-hez hasonló hierarchiában vannak rendszerezve: adatbázisok, táblák és oszlopok.

Ha rendelkezik szkriptkészítési vagy adatbázis-kezelő háttérrel, a cikk tartalmának nagy részének ismerősnek kell lennie. Ha nem, ne aggódjon, mivel a nyelv intuitív természete gyorsan lehetővé teszi, hogy saját lekérdezéseket írjon, és értéket teremtsen a szervezet számára.

Ez a cikk ismerteti a lekérdezés nyelvét, és gyakorlati gyakorlatokat kínál a lekérdezések írásának megkezdéséhez. A lekérdezési környezet eléréséhez használja a Azure Data Explorer webes felhasználói felületét. A KQL használatának megismeréséhez tekintse meg oktatóanyagot: Gyakori operátorok.

Ez a cikk ismerteti a lekérdezés nyelvét, és gyakorlati gyakorlatokat kínál a lekérdezések írásának megkezdéséhez. A lekérdezési környezet eléréséhez használja a KQL-lekérdezéskészletet. A KQL használatának megismeréséhez tekintse meg oktatóanyagot: Gyakori operátorok.

A KQL az a nyelv is, amellyel a Microsoft Sentinelben dolgozhat és kezelhet adatokat. A munkaterületre betöltött naplók nem érnek sokat, ha nem tudja elemezni őket, és nem tudja kinyerni a sok adatban rejlő fontos információkat. A KQL-nek nem csak az a hatalma és rugalmassága, hogy megkapja ezeket az információkat, hanem az egyszerűség, amely segít a gyors kezdésben.

Ez a cikk bemutatja a KQL alapjait, amelyek a leggyakrabban használt függvényeket és operátorokat ismertetik, amelyek a felhasználók által naponta írt lekérdezések 75–80 százalékát fedik le. Ha részletesebbre vagy összetettebb lekérdezésekre van szüksége, kihasználhatja a Microsoft Sentinel-munkafüzet speciális KQL-jének előnyeit.

Miért érdemes a Microsoft Sentinelhez készült KQL-t alkalmazni?

A Microsoft Sentinel az Azure Monitor szolgáltatásra épül, és az Azure Monitor Log Analytics-munkaterületeit használja az összes adat tárolására. Ezek az adatok a következők bármelyikét tartalmazzák:

  • külső forrásokból előre definiált táblákba a Microsoft Sentinel adatösszekötők használatával betöltött adatok.
  • külső forrásokból a felhasználó által meghatározott egyéni táblákba beolvasott adatok, egyedileg létrehozott adatösszekötők, valamint bizonyos beépített összekötőtípusok használatával.
  • a Microsoft Sentinel által létrehozott és végrehajtott elemzésekből származó adatok – például riasztások, incidensek és UEBA-adatok.
  • a Microsoft Sentinelbe feltöltött adatok, hogy segítsenek az észlelésben és az elemzésben – például fenyegetésfelderítési hírcsatornák és figyelőlisták.

A KQL-t az Azure Data Explorer szolgáltatás részeként fejlesztették ki, ezért felhőalapú környezetben lévő big data-tárolókban való keresésre optimalizálták. Úgy tervezték, hogy segítsen az adatok mély feltárásában és a rejtett kincsek feltárásában.

A KQL az Azure Monitorban is használható, és további Azure Monitor-funkciókat is biztosít, amelyek lehetővé teszik, hogy adatokat kérjen le, vizualizáljon, elemezzen és feldolgozzon a Log Analytics adattáraiból. A Microsoft Sentinelben KQL-alapú eszközöket használ, amikor adatokat vizualizál és elemez, és fenyegetéseket keres, akár meglévő szabályokban és munkafüzetekben, akár saját buildelésben.

Mivel a KQL szinte mindennek része, amit a Microsoft Sentinelben végez, a működés egyértelmű megértése segít abban, hogy jobban kihozza a SIEM-ből.

Mi az a Kusto-lekérdezés?

A Kusto-lekérdezések csak olvasható kérések az adatok feldolgozására és az eredmények visszaadására. A kérés egyszerű szövegben van megadva, könnyen olvasható, szerzői és automatizálási célú adatfolyam-modell használatával. A Kusto-lekérdezések egy vagy több lekérdezési utasításból állnak.

A Kusto-lekérdezések nem írnak adatokat. A lekérdezések az SQL-hez hasonló adatbázisok, táblák és oszlopok hierarchiájába rendezett adatokon működnek.

Mi az a lekérdezési utasítás?

Háromféle felhasználói lekérdezési utasítás:

Az összes lekérdezési utasítást egy ; (pontosvessző) választja el egymástól, és csak az adott lekérdezésre van hatással.

Megjegyzés

Az alkalmazáslekérdezési utasításokról további információt a következő témakörben talál: Alkalmazáslekérdezési utasítások.

A lekérdezési utasítás leggyakoribb típusa egy táblázatos kifejezés, utasítás, ami azt jelenti, hogy mind a bemenete, mind a kimenete táblákból vagy táblázatos adatkészletekből áll. A táblázatos utasítások nulla vagy több operátort tartalmaznak, amelyek mindegyike táblázatos bemenettel kezdődik, és táblázatos kimenetet ad vissza. Az operátorokat egy | (cső) rendezi. Az adatok az egyik operátortól a következőig jutnak, más szóval csővezetéken haladnak. Az adatok szűrése vagy kezelése minden lépésnél történik, majd az alábbi lépésbe lesznek bevéve.

Ez olyan, mint egy tölcsér, ahol egy teljes adattáblával kell kezdenie. Minden alkalommal, amikor az adatok egy másik operátoron haladnak át, szűrik, átrendezik vagy összegzik. Mivel az egyik operátorról a másikra történő adatcsomózás szekvenciális, a lekérdezési operátor sorrendje fontos, és hatással lehet az eredményekre és a teljesítményre is. A tölcsér végére egy finomított kimenetet kapunk.

Tekintsünk meg egy példa lekérdezést.

StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
Darabszám
28

Megjegyzés

A KQL minden esetben megkülönbözteti a kis- és nagybetűket – táblaneveket, táblaoszlopneveket, operátorokat, függvényeket stb. A kulcsszavakat azonosítóként lehet használni, ha szögletes zárójelek és idézőjelek közé vannak zárva ([' és '], vagy [" és "]). Például ['where']. További információ: Azonosító elnevezési szabályai

Ez a lekérdezés egyetlen táblázatos kifejezési utasítással rendelkezik. Az utasítás egy StormEvents nevű táblára való hivatkozással kezdődik, és több operátort, where és counttartalmaz, amelyek mindegyike egy csővel van elválasztva. A forrástábla adatsorait a rendszer a StartTime oszlop értéke alapján szűri, majd a Állapot oszlop értéke alapján szűri. Az utolsó sorban a lekérdezés egy olyan táblát ad vissza, amelynek egyetlen oszlopa és egyetlen sora tartalmazza a fennmaradó sorok számát.

További Kusto-lekérdezések kipróbálásához tekintse meg oktatóanyagot: Kusto-lekérdezések írása.

Felügyeleti parancsok

A Kusto-lekérdezésekkel ellentétben felügyeleti parancsok kérések a Kusto-nak az adatok vagy metaadatok feldolgozására vagy módosítására. A következő felügyeleti parancs például létrehoz egy új Kusto-táblát két oszloptal, Level és Text:

.create table Logs (Level:string, Text:string)

A felügyeleti parancsok saját szintaxissal rendelkeznek, amely nem része a KQL szintaxisnak, bár a kettő sok fogalomból áll. A felügyeleti parancsokat különösen úgy különböztetjük meg a lekérdezésektől, hogy a parancs szövegében az első karakter a pont (.) karakter (amely nem tud lekérdezést indítani). Ez a különbség számos biztonsági támadást megelőz, egyszerűen azért, mert megakadályozza a felügyeleti parancsok lekérdezésekbe való beágyazását.

Nem minden felügyeleti parancs módosítja az adatokat vagy a metaadatokat. A .showkezdődő parancsok nagy osztálya metaadatok vagy adatok megjelenítésére szolgál. A .show tables parancs például az aktuális adatbázis összes táblájának listáját adja vissza.

További információ a felügyeleti parancsokról: Felügyeleti parancsok áttekintése.

KQL más szolgáltatásokban

A KQL-t sok más Microsoft-szolgáltatás is használja. A KQL ezen környezetekben való használatával kapcsolatos konkrét információkért tekintse meg az alábbi hivatkozásokat: