0Pricing
Azure Fundamentals · Lezione

Nozioni fondamentali di Log Analytics e KQL

Inserisca i log diagnostici in un'area di lavoro Log Analytics e scriva query in Kusto Query Language per filtrare, aggregare e visualizzare i dati operativi.

Nozioni fondamentali di Log Analytics e KQL è una lezione Azure Fundamentals gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Azure Fundamentals, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Azure Fundamentals include 4 lezioni in totale.

Che cos'è un'area di lavoro Log Analytics

Un'area di lavoro Log Analytics è l'archivio dati centrale di Azure Monitor per i dati dei log e di telemetria. Quando configura le impostazioni di diagnostica per una risorsa Azure, i log e le metriche strutturati confluiscono nell'area di lavoro. È quindi possibile eseguire query sui dati usando il Kusto Query Language (KQL). Un'area di lavoro dispone di un proprio criterio di conservazione (30 giorni per impostazione predefinita, fino a 730 giorni) e di propri controlli di accesso.

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

Invio dei log di diagnostica a un'area di lavoro

Ogni risorsa Azure può generare log di diagnostica, ovvero record dettagliati di operazioni come chiamate API, eventi di autenticazione ed esecuzione di query. È possibile abilitarli tramite le Impostazioni di diagnostica della risorsa, specificando l'area di lavoro Log Analytics come destinazione. Tra le categorie di log comuni figurano AuditEvent per Key Vault, AppServiceHTTPLogs per App Service e NetworkSecurityGroupFlowEvent per i gruppi NSG.

# 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}]'

Introduzione alla sintassi KQL

Il Kusto Query Language (KQL) è un linguaggio di query di sola lettura per l'analisi dei dati dei log. Una query KQL si legge da sinistra a destra come una pipeline: si inizia con un nome di tabella, quindi si passa attraverso gli operatori usando il simbolo pipe (|). Tra gli operatori comuni figurano where per il filtraggio, project per la selezione delle colonne, summarize per l'aggregazione e order by per l'ordinamento. KQL distingue tra maiuscole e minuscole nei nomi delle colonne, ma non nelle parole chiave.

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

Filtraggio con l'operatore Where

L'operatore where filtra le righe usando espressioni booleane. È possibile combinare le condizioni con and, or e not. L'operatore has esegue una ricerca senza distinzione tra maiuscole e minuscole rispettando i confini delle parole nelle stringhe, mentre contains esegue una ricerca di sottostringhe. L'operatore in verifica l'appartenenza a un elenco. Usi ago() per esprimere intervalli di tempo relativi come ago(1h) o 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

Aggregazione dei dati con Summarize

L'operatore summarize calcola aggregazioni sulle righe. Tra le funzioni di aggregazione comuni figurano count(), sum(), avg(), max(), min() e dcount() per il conteggio dei valori distinti. È possibile raggruppare i dati in base a una o più colonne usando la clausola by. La funzione bin() arrotonda i timestamp a intervalli per l'aggregazione delle serie temporali.

// 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

Unione di tabelle in KQL

KQL supporta join per correlare i dati di più tabelle. Il tipo di join predefinito è innerunique, ma è possibile specificare inner, leftouter, rightouter o fullouter. Un modello comune consiste nell'unire AzureActivity e AzureMetrics per correlare le modifiche amministrative con i cali delle prestazioni. L'operatore lookup è un'alternativa più leggera per arricchire le righe usando una piccola tabella di riferimento.

// 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

Visualizzazione dei risultati KQL

Dopo aver scritto una query nel portale Log Analytics, è possibile visualizzare i risultati come grafico temporale, grafico a barre, grafico a torta o tabella usando l'operatore render. È inoltre possibile aggiungere qualsiasi risultato di query a un dashboard Azure oppure salvarlo come Workbook. Il comando render timechart trasforma una query summarize di una serie temporale in un grafico a linee immediato per l'analisi delle tendenze.

// 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

Avvisi di ricerca nei log

Gli avvisi di ricerca nei log eseguono una query KQL secondo una pianificazione e si attivano quando il risultato soddisfa una condizione, ad esempio quando il conteggio dei risultati è maggiore di zero o una colonna numerica supera una soglia. Sono più flessibili degli avvisi sulle metriche perché consentono di eseguire query su qualsiasi dato dei log in più tabelle. La frequenza di valutazione e la finestra temporale sono configurabili indipendentemente: ad esempio, è possibile eseguire la query ogni 5 minuti considerando gli ultimi 15 minuti.

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

Riferimento alle tabelle di log comuni

Azure Monitor archivia i log in tabelle note. AzureActivity registra le operazioni a livello di sottoscrizione. SecurityEvent contiene i log di sicurezza Windows delle VM con l'agente Log Analytics. Heartbeat mostra la connettività dell'agente, con una riga al minuto per ogni VM connessa. AppRequests, AppExceptions e AppDependencies provengono da Application Insights. Conoscere questi nomi di tabella è essenziale per scrivere query operative efficaci.

Conservazione e costi dell'area di lavoro

Il prezzo di Log Analytics comprende due componenti: inserimento dei dati (per ogni GB inserito) e conservazione dei dati (i primi 30 giorni sono gratuiti, dopodiché viene addebitato ogni GB al mese oltre il valore predefinito). È possibile ridurre i costi filtrando le categorie di log rumorose prima dell'inserimento, usando i Basic Logs per dati ad alto volume e basso valore a un prezzo ridotto e archiviando i dati meno recenti in Azure Data Explorer o in uno spazio di archiviazione ad accesso sporadico per la conservazione a lungo termine richiesta dalla conformità.

Modelli di controllo degli accessi dell'area di lavoro

Le aree di lavoro Log Analytics supportano due modelli di controllo degli accessi. In modalità workspace-context, un utente con accesso di lettura all'area di lavoro può eseguire query su tutte le tabelle. In modalità resource-context, un utente può eseguire query solo sui log generati dalle risorse per le quali dispone dell'autorizzazione RBAC di lettura, anche senza un accesso esplicito all'area di lavoro. La modalità resource-context è consigliata per le organizzazioni di grandi dimensioni in cui team diversi gestiscono risorse diverse.

Verifica rapida

Verifichi la Sua comprensione dei concetti di Microsoft Azure Fundamentals (AZ-900) trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha appreso che le aree di lavoro Log Analytics centralizzano i dati dei log di diagnostica delle risorse Azure, che gli operatori KQL come where, summarize e render consentono di filtrare, aggregare e visualizzare i log e che gli avvisi di ricerca nei log attivano risposte automatizzate quando il risultato di una query KQL soddisfa una condizione definita. Ora esamineremo Application Insights per la telemetria a livello di applicazione.

Domande Frequenti

La lezione «Nozioni fondamentali di Log Analytics e KQL» è gratuita?

Sì — il testo completo di «Nozioni fondamentali di Log Analytics e KQL» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Azure Fundamentals, passa a CoddyKit PRO. Il corso Azure Fundamentals include 4 lezioni in totale.

Cosa imparerò in «Nozioni fondamentali di Log Analytics e KQL»?

Inserisca i log diagnostici in un'area di lavoro Log Analytics e scriva query in Kusto Query Language per filtrare, aggregare e visualizzare i dati operativi. Eserciti Azure Fundamentals con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Azure Fundamentals?

Non è richiesta alcuna esperienza precedente. Azure Fundamentals su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Nozioni fondamentali di Log Analytics e KQL»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Azure Fundamentals?

Sì. Ogni lezione Azure Fundamentals include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Metriche e avvisi di Azure Monitor
  2. Nozioni fondamentali di Log Analytics e KQL
  3. Application Insights
  4. Dashboard e Workbooks di Azure
← Torna a Azure Fundamentals