Strutturare query di Log Analytics

Completato

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.

Figura che mostra come compilare query di Log Analytics a partire dai dati delle tabelle dedicate contenuti in un'area di lavoro di Log Analytics.

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