Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Kusto-querytaal (KQL) is een krachtig hulpprogramma om uw gegevens te verkennen en patronen te ontdekken, afwijkingen en uitbijters te identificeren, statistische modellering te maken en meer.
KQL is een eenvoudige maar krachtige taal voor het opvragen van gestructureerde, semi-gestructureerde en ongestructureerde gegevens. De taal is expressief, gemakkelijk te lezen en te begrijpen van de queryintentie en geoptimaliseerd voor ontwerpervaringen. KQL is optimaal voor het uitvoeren van query's op telemetrie, metrische gegevens en logboeken met uitgebreide ondersteuning voor zoeken en parseren van tekst, operatoren van tijdreeksen en functies, analyse en aggregatie, georuimtelijke zoekopdrachten, zoekopdrachten naar vectoren en vele andere taalconstructies die de meest optimale taal bieden voor gegevensanalyse. De query maakt gebruik van schema-entiteiten die zijn ingedeeld in een hiërarchie die vergelijkbaar is met SQLs: databases, tabellen en kolommen.
Als u een achtergrond hebt in het uitvoeren van scripts of het werken met databases, moet veel van de inhoud van dit artikel vertrouwd zijn. Als dat niet het probleem is, maakt u zich geen zorgen, omdat u snel met de intuïtieve aard van de taal uw eigen query's kunt schrijven en waarde kunt aansturen voor uw organisatie.
Dit artikel bevat een uitleg van de querytaal en biedt praktische oefeningen om u op weg te helpen met het schrijven van query's. Als u toegang wilt krijgen tot de queryomgeving, gebruikt u de webgebruikersinterface van Azure Data Explorer. Zie Zelfstudie: Algemene operatorsvoor meer informatie over het gebruik van KQL.
Dit artikel bevat een uitleg van de querytaal en biedt praktische oefeningen om u op weg te helpen met het schrijven van query's. Gebruik de KQL-querysetom toegang te krijgen tot de queryomgeving. Zie Zelfstudie: Algemene operatorsvoor meer informatie over het gebruik van KQL.
KQL is ook de taal die u gebruikt om met gegevens in Microsoft Sentinel te werken en te bewerken. De logboeken die u in uw werkruimte invoert, zijn niet veel waard als u ze niet kunt analyseren en de belangrijke informatie in al die gegevens kunt ophalen. KQL heeft niet alleen de kracht en flexibiliteit om die informatie op te halen, maar de eenvoud om snel aan de slag te gaan.
In dit artikel worden de basisbeginselen van KQL geïntroduceerd, die betrekking hebben op een aantal van de meest gebruikte functies en operators, die 75 tot 80 procent van de query's die gebruikers dagelijks schrijven, moeten aanpakken. Wanneer u meer diepte nodig hebt of meer geavanceerde query's wilt uitvoeren, kunt u profiteren van de geavanceerde KQL voor Microsoft Sentinel-werkmap.
Waarom KQL voor Microsoft Sentinel?
Microsoft Sentinel is gebouwd op basis van de Azure Monitor-service en maakt gebruik van de Log Analytics-werkruimten van Azure Monitor om alle gegevens op te slaan. Deze gegevens omvatten een van de volgende:
- gegevens die zijn opgenomen uit externe bronnen in vooraf gedefinieerde tabellen met behulp van Microsoft Sentinel-gegevensconnectors.
- gegevens die zijn opgenomen uit externe bronnen in door de gebruiker gedefinieerde aangepaste tabellen, met behulp van aangepaste gegevensconnectors en sommige typen out-of-the-box-connectors.
- gegevens die door Microsoft Sentinel zelf zijn gemaakt, als gevolg van de analyses die worden gemaakt en uitgevoerd, zoals waarschuwingen, incidenten en UEBA-gerelateerde informatie.
- gegevens die zijn geüpload naar Microsoft Sentinel om u te helpen bij detectie en analyse, bijvoorbeeld feeds voor bedreigingsinformatie en volglijsten.
KQL is ontwikkeld als onderdeel van de Azure Data Explorer-service en is daarom geoptimaliseerd voor het zoeken naar big data-archieven in een cloudomgeving. Het is ontworpen om u te helpen diep in uw gegevens te duiken en hun verborgen schatten te verkennen.
KQL wordt ook gebruikt in Azure Monitor en biedt ondersteuning voor extra Azure Monitor-functies waarmee u gegevens in Log Analytics-gegevensarchieven kunt ophalen, visualiseren, analyseren en parseren. In Microsoft Sentinel gebruikt u hulpprogramma's op basis van KQL wanneer u gegevens visualiseert en analyseert en zoekt naar bedreigingen, ongeacht in bestaande regels en werkmappen, of in het bouwen van uw eigen regels en werkmappen.
Omdat KQL deel uitmaakt van bijna alles wat u doet in Microsoft Sentinel, is een duidelijk begrip van hoe het werkt, zodat u die meer uit uw SIEM kunt halen.
Wat is een Kusto-query?
Een Kusto-query is een alleen-lezen aanvraag voor het verwerken van gegevens en het retourneren van resultaten. De aanvraag wordt vermeld in tekst zonder opmaak, met behulp van een gegevensstroommodel dat gemakkelijk te lezen, te ontwerpen en te automatiseren is. Kusto-query's worden gemaakt van een of meer query-instructies.
Een Kusto-query schrijft geen gegevens. Query's worden uitgevoerd op gegevens die zijn ingedeeld in een hiërarchie van databases, tabellen en kolommen, vergelijkbaar met SQL.
Wat is een query-instructie?
Er zijn drie soorten query-instructies:
- Een instructie voor tabellaire expressies
- Een
- Een set-instructie
Alle query-instructies worden gescheiden door een ;
(puntkomma) en zijn alleen van invloed op de query die u bij de hand hebt.
Notitie
Zie Application Query-instructiesvoor meer informatie over toepassingsquery-instructies.
Het meest voorkomende type query-instructie is een tabellaire expressie instructie, wat betekent dat zowel de invoer als uitvoer bestaan uit tabellen of gegevenssets in tabelvorm. Tabellaire instructies bevatten nul of meer operators, die elk beginnen met een tabellaire invoer en een tabellaire uitvoer retourneren. Operators worden gesequentieerd door een |
(pipe). Gegevensstromen, of worden doorgesluisd, van de ene operator naar de volgende. De gegevens worden bij elke stap gefilterd of gemanipuleerd en vervolgens ingevoerd in de volgende stap.
Het is net een trechter, waar u begint met een hele gegevenstabel. Telkens wanneer de gegevens door een andere operator worden doorgegeven, worden deze gefilterd, opnieuw gerangschikt of samengevat. Omdat de pijping van gegevens van de ene operator naar de andere opeenvolgend is, is de volgorde van de queryoperator belangrijk en kan dit van invloed zijn op zowel resultaten als prestaties. Aan het einde van de trechter blijft u over met een verfijnde uitvoer.
Laten we eens kijken naar een voorbeeldquery.
StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
Tellen |
---|
28 |
Notitie
KQL is hoofdlettergevoelig voor alles: tabelnamen, tabelkolomnamen, operators, functies enzovoort.
Trefwoorden kunnen worden gebruikt als id's door ze tussen haakjes en aanhalingstekens te plaatsen (['
en ']
of ["
en "]
). Bijvoorbeeld ['where']
. Zie naamgevingsregels voor id's voor meer informatie
Deze query heeft één expressie-instructie in tabelvorm. De instructie begint met een verwijzing naar een tabel met de naam StormEvents en bevat verschillende operatoren, where
en count
, die elk worden gescheiden door een pijp. De gegevensrijen voor de brontabel worden gefilterd op de waarde van de kolom StartTime en vervolgens gefilterd op de waarde van de kolom State. Op de laatste regel retourneert de query een tabel met één kolom en één rij met het aantal resterende rijen.
Zie zelfstudie: Kusto-query's schrijvenvoor meer Kusto-query's.
Beheeropdrachten
In tegenstelling tot Kusto-query's zijn Management-opdrachten aanvragen voor Kusto om gegevens of metagegevens te verwerken of te wijzigen. Met de volgende beheeropdracht maakt u bijvoorbeeld een nieuwe Kusto-tabel met twee kolommen, Level
en Text
:
.create table Logs (Level:string, Text:string)
Beheeropdrachten hebben hun eigen syntaxis, die geen deel uitmaakt van de KQL-syntaxis, hoewel de twee veel concepten delen. Met name beheeropdrachten onderscheiden zich van query's door het eerste teken in de tekst van de opdracht te hebben als het puntteken (.
) (dat geen query kan starten).
Dit onderscheid voorkomt allerlei soorten beveiligingsaanvallen, omdat het insluiten van beheeropdrachten in query's voorkomt.
Niet alle beheeropdrachten wijzigen gegevens of metagegevens. De grote klasse opdrachten die beginnen met .show
, worden gebruikt om metagegevens of gegevens weer te geven. De opdracht .show tables
retourneert bijvoorbeeld een lijst met alle tabellen in de huidige database.
Zie Overzicht van beheeropdrachtenvoor meer informatie over beheeropdrachten.
KQL in andere services
KQL wordt gebruikt door veel andere Microsoft-services. Raadpleeg de volgende koppelingen voor specifieke informatie over het gebruik van KQL in deze omgevingen:
- logboekquery's in Azure Monitor
- Informatie over de Azure Resource Graph-querytaal
- Proactief zoeken naar bedreigingen met geavanceerde opsporing in Microsoft Defender
- CMPivot-query's