Strutturare query di Log Analytics
Gli amministratori compilano le query di Log Analytics a partire dai dati archiviati in tabelle dedicate in un'area di lavoro Log Analytics. Alcune tabelle dedicate comuni includono Event, Syslog, Heartbeat e Alert. Quando si compila una query di Linguaggio di query Kusto (KQL, Kusto Query Language), si inizia determinando quali tabelle nel repository dei log di Monitoraggio di Azure contengono i dati che si stanno cercando.
La figura seguente illustra in che modo le query KQL usano i dati della tabella dedicata per i servizi e le risorse monitorati.
Informazioni sulla struttura delle query KQL
Verranno ora esaminati in dettaglio i dati della tabella dedicata e come strutturare una query di log KQL.
Ogni origine dati e soluzione selezionata archivia i dati in tabelle dedicate nell'area di lavoro Log Analytics.
La documentazione per ogni origine dati e soluzione include il nome del tipo di dati che crea e una descrizione di ciascuna delle relative proprietà.
La struttura di base di una query è una tabella di origine seguita da una serie di comandi (denominati operatori).
Una query può disporre di una catena di più operatori per perfezionare i dati ed eseguire funzioni avanzate.
Ogni operatore in una catena di query inizia con un carattere pipe
|
.Molte query richiedono dati provenienti una singola tabella, ma altre query possono usare varie opzioni e includere dati provenienti da più tabelle.
Esempi di query di log KQL
Verranno ora esaminati alcuni operatori di query di log KQL comuni e la sintassi di esempio.
È possibile compilare query per cercare i dati nella tabella StormEvent
con cinque voci:
type | evento | severity | Avvio | duration | area geografica |
---|---|---|---|---|---|
Water |
Freezing rain |
1 |
6:00 AM 01-27-2023 |
3 hours |
1, 2 |
Wind |
High winds |
1 |
8:00 AM 01-27-2023 |
12 hours |
1, 2, 4, 5 |
Temperature |
Below freezing |
2 |
11:00 PM 01-26-2023 |
10 hours |
1, 2, 4, 5 |
Water |
Snow |
3 |
4:00 PM 01-26-2023 |
10 hours |
1, 2, 4, 5 |
Water |
Flood warning |
2 |
9:00 AM 01-26-2023 |
10 hours |
3 |
Per trovare altri operatori ed esempi, vedere: Analizzare i dati di monitoraggio con il linguaggio di query Kusto - Training | Microsoft Learn.
Contare il numero di elementi
Usare l'operatore count
per individuare il numero di record in un set di record di input.
Nell'esempio seguente viene restituito il numero di record nella tabella StormEvent
. I risultati della query rivelano che la tabella StormEvent
contiene cinque voci.
StormEvent | count
Risultati della query:
numero |
---|
5 |
Restituire il primo numero di elementi
Usare l'operatore top
per visualizzare i primi record N del set di record di input, ordinati in base alle colonne specificate. Le colonne corrispondono alle proprietà dei dati definite nella tabella dedicata.
Nell'esempio seguente vengono restituiti i primi tre record di dati per StormEvent
. La tabella dei risultati mostra il nome della tempesta event
, la gravità e la durata prevista.
StormEvent | top 3 by event severity duration
Risultati della query:
evento | severity | duration |
---|---|---|
Freezing rain |
1 |
3 hours |
High winds |
1 |
12 hours |
Below freezing |
2 |
10 hours |
Trovare elementi corrispondenti
Usare l'operatore where
per filtrare la tabella in base al subset di righe che corrispondono al valore del predicato specificato. Il valore del predicato indica cosa cercare nella tabella, come in where=="find-this"
.
Nell'esempio seguente vengono filtrati i record di dati per StormEvent
in modo da usare solo i record che corrispondono a "neve".
StormEvent | where event=="snow"
La query filtra in base a una riga della tabella StormEvent
:
type | evento | severity | Avvio | duration | area geografica |
---|---|---|---|---|---|
Water |
Snow |
3 |
4:00 PM 01-26-2023 |
10 hours |
1, 2, 4, 5 |