Cloud & IT Cert Prep · Lektion

Grunderna i Log Analytics och KQL

Importera diagnostikloggar till en Log Analytics-arbetsyta och skriv frågor i Kusto Query Language för att filtrera, aggregera och visualisera driftsdata.

Lektion 2 av 413 steg

Grunderna i Log Analytics och KQL är en gratis lektion i Cloud & IT Cert Prep på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cloud & IT Cert Prep, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Vad är en Log Analytics-arbetsyta?

En Log Analytics-arbetsyta är det centrala datalagret i Azure Monitor för logg- och telemetridata. När du konfigurerar diagnostikinställningar för en Azure-resurs flödar strukturerade loggar och mått till arbetsytan. Du kan sedan fråga data med hjälp av Kusto Query Language (KQL). En arbetsyta har en egen kvarhållningsprincip (standardvärdet är 30 dagar, upp till 730 dagar) och åtkomstkontroller.

# Create a Log Analytics workspace
az monitor log-analytics workspace create \
  --resource-group myRG \
  --workspace-name myWorkspace \
  --location eastus \
  --retention-time 90

Skicka diagnostikloggar till en arbetsyta

Alla Azure-resurser kan generera diagnostikloggar — detaljerade poster över åtgärder som API-anrop, autentiseringshändelser och frågekörning. Du aktiverar dem via Diagnostikinställningar för resursen och anger din Log Analytics-arbetsyta som mål. Vanliga loggkategorier är AuditEvent för Key Vault, AppServiceHTTPLogs för App Service och NetworkSecurityGroupFlowEvent för NSG:er.

# Enable diagnostic settings to send Key Vault logs to Log Analytics
az monitor diagnostic-settings create \
  --name 'KVLogs' \
  --resource /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myKV \
  --workspace myWorkspace \
  --logs '[{"category":"AuditEvent","enabled":true}]'

Introduktion till KQL-syntax

Kusto Query Language (KQL) är ett skrivskyddat frågespråk för analys av loggdata. En KQL-fråga läses från vänster till höger som en pipeline: börja med ett tabellnamn och skicka sedan data genom operatorer med pipe-tecknet (|). Vanliga operatorer är where för filtrering, project för att välja kolumner, summarize för aggregering och order by för sortering. KQL är skiftlägeskänsligt för kolumnnamn men inte för nyckelord.

// Basic KQL query structure
AzureActivity
| where TimeGenerated > ago(24h)
| where OperationNameValue == 'MICROSOFT.COMPUTE/VIRTUALMACHINES/DELETE'
| project TimeGenerated, Caller, ResourceGroup, Resource
| order by TimeGenerated desc

Filtrera med where-operatorn

Operatorn where filtrerar rader med hjälp av booleska uttryck. Du kan kombinera villkor med and, or och not. Operatorn has utför en skiftlägesokänslig sökning efter hela ord i strängar, medan contains söker efter delsträngar. Operatorn in testar om ett värde finns i en lista. Använd ago() för att uttrycka relativa tidsintervall, till exempel ago(1h) eller ago(7d).

// Filter for failed HTTP requests in the last hour
AppRequests
| where TimeGenerated > ago(1h)
| where Success == false
| where ResultCode in (500, 502, 503)
| project TimeGenerated, Name, ResultCode, DurationMs
| order by DurationMs desc

Aggregera data med summarize

Operatorn summarize beräknar aggregat över rader. Vanliga aggregeringsfunktioner är count(), sum(), avg(), max(), min() och dcount() för antal unika värden. Du kan gruppera efter en eller flera kolumner med satsen by. Funktionen bin() avrundar tidsstämplar till intervall för aggregering av tidsserier.

// Count failed requests per hour per endpoint
AppRequests
| where TimeGenerated > ago(24h)
| where Success == false
| summarize FailureCount = count() by bin(TimeGenerated, 1h), Name
| order by TimeGenerated desc, FailureCount desc

Koppla samman tabeller i KQL

KQL har stöd för join för att korrelera data från flera tabeller. Standardtypen för koppling är innerunique, men du kan ange inner, leftouter, rightouter eller fullouter. Ett vanligt mönster är att koppla samman AzureActivity med AzureMetrics för att korrelera administrativa ändringar med försämrad prestanda. Operatorn lookup är ett mindre resurskrävande alternativ för att berika rader från en liten referenstabell.

// Correlate VM restarts with CPU spike events
AzureActivity
| where OperationNameValue has 'restart'
| join kind=leftouter (
    AzureMetrics
    | where MetricName == 'Percentage CPU'
    | where Average > 90
) on ResourceId
| project TimeGenerated, Resource, Average

Visualisera KQL-resultat

När du har skrivit en fråga i Log Analytics-portalen kan du återge resultaten som ett tidsdiagram, stapeldiagram, cirkeldiagram eller en tabell med operatorn render. Du kan också fästa valfritt frågeresultat på en Azure-instrumentpanel eller spara det som en Workbook. Kommandot render timechart omvandlar en fråga som aggregerar en tidsserie till ett linjediagram i realtid för trendanalys.

// Render a time chart of request counts per 5-minute interval
AppRequests
| where TimeGenerated > ago(4h)
| summarize RequestCount = count() by bin(TimeGenerated, 5m)
| render timechart

Loggsökningsaviseringar

Loggsökningsaviseringar kör en KQL-fråga enligt ett schema och utlöses när resultatet uppfyller ett villkor, till exempel att antalet resultat är större än noll eller att en numerisk kolumn överskrider ett tröskelvärde. De är mer flexibla än metrikaviseringar eftersom du kan fråga valfria loggdata i flera tabeller. Utvärderingsfrekvensen och tidsfönstret kan konfigureras oberoende av varandra — du kan till exempel köra frågan var femte minut för de senaste 15 minuterna.

// Example log search alert condition: more than 5 exceptions in 15 min
AppExceptions
| where TimeGenerated > ago(15m)
| summarize ExceptionCount = count()
// Alert when ExceptionCount > 5

Referens över vanliga loggtabeller

Azure Monitor lagrar loggar i välkända tabeller. AzureActivity registrerar åtgärder på prenumerationsnivå. SecurityEvent innehåller Windows-säkerhetsloggar från virtuella datorer med Log Analytics-agenten. Heartbeat visar agentanslutning (en rad per minut för varje ansluten virtuell dator). AppRequests, AppExceptions och AppDependencies kommer från Application Insights. Det är viktigt att känna till dessa tabellnamn för att kunna skriva effektiva driftfrågor.

Kvarhållning och kostnader för arbetsytor

Prissättningen för Log Analytics består av två delar: datainmatning (per inmatad GB) och datakvarhållning (de första 30 dagarna är kostnadsfria, därefter debiteras du per GB och månad för tiden utöver standardvärdet). Du kan minska kostnaderna genom att filtrera bort brusiga loggkategorier före inmatningen, använda Basic Logs för datamängder med hög volym och lågt värde till ett lägre pris samt arkivera äldre data till Azure Data Explorer eller kall lagring för långsiktig efterlevnadslagring.

Modeller för åtkomstkontroll i arbetsytor

Log Analytics-arbetsytor stöder två modeller för åtkomstkontroll. I läget workspace-context kan en användare med läsåtkomst till arbetsytan fråga alla tabeller. I läget resource-context kan en användare endast fråga de loggar som genereras av resurser som användaren har RBAC-behörighet att läsa — även utan uttrycklig åtkomst till arbetsytan. Läget resource-context rekommenderas för stora organisationer där olika team ansvarar för olika resurser.

Snabbtest

Testa dina kunskaper om begreppen i Microsoft Azure Fundamentals (AZ-900) från den här lektionen.

Sammanfattning av lektionen

I den här lektionen har du lärt dig att Log Analytics-arbetsytor centraliserar diagnostikloggdata från Azure-resurser, att KQL-operatorer som where, summarize och render låter dig filtrera, aggregera och visualisera loggar, samt att loggsökningsaviseringar utlöser automatiska åtgärder när resultatet från en KQL-fråga uppfyller ett angivet villkor. Härnäst utforskar vi Application Insights för telemetri på programnivå.

Gratis att börja

Lär dig Cloud & IT Cert Prep med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
150
Lektioner
600

Vanliga frågor

Är lektionen ”Grunderna i Log Analytics och KQL” gratis?

Ja – hela texten till ”Grunderna i Log Analytics och KQL” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cloud & IT Cert Prep, kan Ni uppgradera till CoddyKit PRO. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Vad lär jag mig i ”Grunderna i Log Analytics och KQL”?

Importera diagnostikloggar till en Log Analytics-arbetsyta och skriv frågor i Kusto Query Language för att filtrera, aggregera och visualisera driftsdata. Ni övar på Cloud & IT Cert Prep med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cloud & IT Cert Prep?

Du behöver inga förkunskaper. Utbildningen i Cloud & IT Cert Prep på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Grunderna i Log Analytics och KQL”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cloud & IT Cert Prep-lektionen?

Ja. Varje Cloud & IT Cert Prep-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Azure Monitor-mått och aviseringar
  2. Grunderna i Log Analytics och KQL
  3. Application Insights
  4. Azure-instrumentpaneler och Workbooks
← Tillbaka till Cloud & IT Cert Prep