Creare query di base sui log di Monitoraggio di Azure per estrarre informazioni dai dati dei log

Completato

È possibile usare le query sui log di Monitoraggio di Azure per estrarre informazioni dai dati dei log. Questa è una fase importante dell'analisi dei dati dei log acquisiti da Monitoraggio di Azure.

Nello scenario di esempio, il team operativo usa le query sui log di Monitoraggio di Azure per esaminare l'integrità del sistema.

Scrivere query di log di Monitoraggio di Azure usando Log Analytics

Lo strumento Log Analytics disponibile nel portale di Azure può essere usato per eseguire query di esempio o per creare query personalizzate:

  1. Nel portale di Azure selezionare Monitoraggio nel riquadro del menu a sinistra.

    Verrà visualizzata la pagina Monitoraggio di Azure con altre opzioni, tra cui Log attività, Avvisi, Metriche e Log.

  2. Selezionare Log.

    Nella casella è possibile immettere la query e visualizzare l'output.

    Screenshot di Monitoraggio di Azure con una nuova scheda di query aperta.

Scrivere query con il linguaggio Kusto

È possibile usare il linguaggio di query Kusto per eseguire query sulle informazioni dei log relativi ai servizi in esecuzione in Azure. Una query Kusto è una richiesta di sola lettura per elaborare i dati e restituire i risultati. La query verrà specificata in testo normale, usando un modello di flusso di dati progettato per facilitare la lettura, la scrittura e l'automazione della sintassi. La query usa entità dello schema che sono organizzate in una gerarchia simile a quella del database SQL di Azure: database, tabelle e colonne.

Una query Kusto è costituita da una sequenza di istruzioni di query delimitate da un punto e virgola (;). Almeno un'istruzione è un'istruzione di espressione tabulare. Un'istruzione di questo tipo formatta i dati disposti sotto forma di una tabella di colonne e righe.

La sintassi di un'istruzione di espressione tabulare include un flusso di dati tabulari da un operatore di query tabulare a un altro, a partire da un'origine dati, che può essere una tabella di un database o un operatore che genera dati. I dati passano quindi attraverso un set di operatori di trasformazione dei dati associati insieme e con la barra verticale (|) come delimitatore.

Ad esempio, la query Kusto seguente include un'unica istruzione di espressione tabulare. L'istruzione inizia con un riferimento a una tabella denominata Events. In questo caso, il database che ospita la tabella è implicito e fa parte delle informazioni di connessione. I dati relativi alla tabella, archiviati in righe, vengono filtrati in base al valore della colonna StartTime. I dati vengono ulteriormente filtrati in base al valore della colonna State. La query restituisce quindi il numero di righe risultanti.

Events
| where StartTime >= datetime(2018-11-01) and StartTime < datetime(2018-12-01)
| where State == "FLORIDA"  
| count

Nota

Il linguaggio di query Kusto usato da Monitoraggio di Azure fa distinzione tra maiuscole e minuscole. Le parole chiave del linguaggio sono in genere scritte in lettere minuscole. Quando si usano nomi di tabelle o di colonne in una query, assicurarsi di usare la giusta combinazione di maiuscole e minuscole.

Gli eventi acquisiti dai registri eventi dei computer monitorati sono solo un tipo di origine dati. numerosi tipi di origine dati offerti da Monitoraggio di Azure. L'origine dati Heartbeat, ad esempio, segnala lo stato di integrità di tutti i computer che inviano report all'area di lavoro Log Analytics. È anche possibile acquisire dati dai contatori delle prestazioni e aggiornare i record di gestione.

Nell'esempio seguente viene recuperato il record heartbeat più recente per ogni computer. Il computer è identificato dal relativo indirizzo IP. In questo esempio, l'aggregazione summarize con la funzione arg_max restituisce il record con il valore più recente per ogni indirizzo IP.

Heartbeat
| summarize arg_max(TimeGenerated, *) by ComputerIP