Esercitazione: Inserire ed eseguire query sui dati di monitoraggio in Esplora dati di Azure

Questa esercitazione illustra come inserire i dati dei log di diagnostica e attività in un cluster di Esplora dati di Azure senza scrivere codice. Questo semplice metodo di inserimento consente di iniziare rapidamente a eseguire query in Esplora dati di Azure per l'analisi dei dati.

In questa esercitazione si apprenderà come:

  • Creare tabelle e mapping di inserimento in un database di Esplora dati di Azure.
  • Formattare i dati inseriti usando un criterio di aggiornamento.
  • Creare un hub eventi e connetterlo ad Azure Esplora dati.
  • Trasmettere i dati in streaming a un hub eventi dai log e le metriche di diagnostica e dai log attività di Monitoraggio di Azure.
  • Eseguire query sui dati inseriti usando Esplora dati di Azure.

Nota

Creare tutte le risorse nella stessa località o area di Azure.

Prerequisiti

Provider di dati di Monitoraggio di Azure: log e metriche di diagnostica e log attività

Visualizzare e interpretare i dati forniti dai log e dalle metriche di diagnostica e dai log attività seguenti di Monitoraggio di Azure. Verrà creata una pipeline di inserimento in base a questi schemi di dati. Si noti che ogni evento in un log ha una matrice di record. Questa matrice di record verrà suddivisa più avanti nell'esercitazione.

Esempi di metriche e log di diagnostica e di log attività

Le metriche e i log di diagnostica e i log attività di Azure vengono emessi da un servizio di Azure e forniscono dati sul funzionamento del servizio stesso.

Esempio di metriche di diagnostica

Le metriche di diagnostica vengono aggregate con un intervallo di tempo di 1 minuto. Di seguito è riportato un esempio di schema di evento di metrica di Esplora dati di Azure sulla durata di una query:

{
    "records": [
    {
        "count": 14,
        "total": 0,
        "minimum": 0,
        "maximum": 0,
        "average": 0,
        "resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
        "time": "2018-12-20T17:00:00.0000000Z",
        "metricName": "QueryDuration",
        "timeGrain": "PT1M"
    },
    {
        "count": 12,
        "total": 0,
        "minimum": 0,
        "maximum": 0,
        "average": 0,
        "resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
        "time": "2018-12-21T17:00:00.0000000Z",
        "metricName": "QueryDuration",
        "timeGrain": "PT1M"
    }
    ]
}

Configurare una pipeline di inserimento in Esplora dati di Azure

La configurazione di una pipeline di Esplora dati di Azure prevede diversi passaggi come la creazione di una tabella e l'inserimento dei dati. È anche possibile manipolare, mappare e aggiornare i dati.

Connettersi all'interfaccia utente Web di Azure Esplora dati

Nel database di Azure Esplora dati TestDatabase selezionare Query per aprire l'interfaccia utente Web di Azure Esplora dati.

Pagina Query.

Creare le tabelle di destinazione

La struttura dei log di Monitoraggio di Azure non è tabellare. Si manipoleranno i dati e si espanderà ogni evento per uno o più record. I dati non elaborati verranno inseriti in una tabella intermedia denominata ActivityLogsRawRecords per i log attività e DiagnosticRawRecords per le metriche e i log di diagnostica. A quel punto, i dati verranno manipolati ed espansi. Usando un criterio di aggiornamento, i dati espansi verranno inseriti nella tabella ActivityLogs per i log attività e DiagnosticMetrics per le metriche di diagnostica e DiagnosticLogs per i log di diagnostica. Ciò significa che sarà necessario creare due tabelle separate per l'inserimento dei log attività e tre tabelle separate per l'importazione delle metriche e dei log di diagnostica.

Usare l'interfaccia utente Web di Azure Esplora dati per creare le tabelle di destinazione nel database Esplora dati di Azure.

Creare tabelle per le metriche di diagnostica

  1. Nel database TestDatabase creare una tabella denominata DiagnosticMetrics in cui archiviare i record delle metriche di diagnostica. Usare il comando di gestione seguente .create table :

    .create table DiagnosticMetrics (Timestamp:datetime, ResourceId:string, MetricName:string, Count:int, Total:double, Minimum:double, Maximum:double, Average:double, TimeGrain:string)
    
  2. Selezionare Run (Esegui) per creare la tabella.

    Eseguire una query.

  3. Creare la tabella dati intermedia denominata DiagnosticRawRecords nel database TestDatabase per la manipolazione dei dati usando la query seguente. Selezionare Run (Esegui) per creare la tabella.

    .create table DiagnosticRawRecords (Records:dynamic)
    
  4. Impostare zero criteri di conservazione per la tabella intermedia:

    .alter-merge table DiagnosticRawRecords policy retention softdelete = 0d
    

Creare i mapping della tabella

Poiché il formato dei dati è json, è necessario eseguirne il mapping. Il mapping json mappa ogni percorso JSON al nome di una colonna della tabella. I percorsi JSON che includono caratteri speciali devono essere preceduti da caratteri di escape ['Nome proprietà']. Per altre informazioni, vedere sintassi JSONPath.

Eseguire il mapping delle metriche e dei log di diagnostica alla tabella

Per eseguire il mapping dei dati delle metriche e dei log di diagnostica alla tabella, usare la query seguente:

.create table DiagnosticRawRecords ingestion json mapping 'DiagnosticRawRecordsMapping' '[{"column":"Records","Properties":{"path":"$.records"}}]'

Creare e aggiornare i criteri per i dati di metriche e log

Creare criteri di aggiornamento dei dati per le metriche di diagnostica

  1. Creare una funzione che espande la raccolta di record delle metriche di diagnostica in modo che ogni valore della raccolta riceva una riga distinta. Usare l'operatore mv-expand:

    .create function DiagnosticMetricsExpand() {
       DiagnosticRawRecords
       | mv-expand events = Records
       | where isnotempty(events.metricName)
       | project
           Timestamp = todatetime(events['time']),
           ResourceId = tostring(events.resourceId),
           MetricName = tostring(events.metricName),
           Count = toint(events['count']),
           Total = todouble(events.total),
           Minimum = todouble(events.minimum),
           Maximum = todouble(events.maximum),
           Average = todouble(events.average),
           TimeGrain = tostring(events.timeGrain)
    }
    
  2. Aggiungere il criterio di aggiornamento nella tabella di destinazione. Questo criterio eseguirà automaticamente la query su tutti i nuovi dati inseriti nella tabella dati intermedia DiagnosticRawRecords e inserirà i relativi risultati nella tabella DiagnosticMetrics:

    .alter table DiagnosticMetrics policy update @'[{"Source": "DiagnosticRawRecords", "Query": "DiagnosticMetricsExpand()", "IsEnabled": "True", "IsTransactional": true}]'
    

Creare uno spazio dei nomi di Hub eventi di Azure

Le impostazioni di diagnostica di Azure consentono l'esportazione delle metriche e dei log in un account di archiviazione o in un hub eventi. In questa esercitazione le metriche e i log verranno instradati tramite un hub eventi. Si creeranno uno spazio dei nomi dell'hub eventi e un hub eventi per le metriche di diagnostica e i log nei passaggi seguenti. Monitoraggio di Azure creerà il componente insights-operational-logs dell'hub eventi per i log attività.

  1. Creare un hub eventi usando un modello di Azure Resource Manager nel portale di Azure. Per seguire il resto dei passaggi di questo articolo, fare clic con il pulsante destro del mouse sul pulsante Distribuisci in Azure e quindi selezionare Apri in una nuova finestra. Il pulsante Distribuzione in Azure consente di passare al portale di Azure.

    Pulsante Distribuisci in Azure.

  2. Creare uno spazio dei nomi di Hub eventi e un hub eventi per i log di diagnostica. Informazioni su come creare uno spazio dei nomi di Hub eventi.

  3. Compilare il modulo con le informazioni seguenti. Per tutte le impostazioni non elencate nella tabella seguente usare i valori predefiniti.

    Impostazione Valore consigliato Descrizione
    Sottoscrizione Sottoscrizione in uso Selezionare la sottoscrizione di Azure da usare per l'hub eventi.
    Gruppo di risorse test-resource-group Creare un nuovo gruppo di risorse.
    Posizione Selezionare l'area più appropriata in base alle esigenze. Creare lo spazio dei nomi dell'hub eventi nella stessa posizione delle altre risorse.
    Nome spazio dei nomi AzureMonitoringData Scegliere un nome univoco per identificare lo spazio dei nomi.
    Nome hub eventi DiagnosticData L'hub eventi si trova nello spazio dei nomi, che fornisce un contenitore di ambito univoco.
    Nome gruppo di consumer adxpipeline Creare un nome del gruppo di consumer. I gruppi di consumer consentono a più applicazioni di avere ognuna una visualizzazione distinta del flusso di eventi.

Connettere le metriche e i log di Monitoraggio di Azure all'hub eventi

A questo punto è necessario connettere le metriche e i log di diagnostica e i log attività all'hub eventi.

Connettere le metriche e i log di diagnostica all'hub eventi

Selezionare una risorsa da cui esportare le metriche. Diversi tipi di risorse supportano l'esportazione dei dati di diagnostica, tra cui lo spazio dei nomi di Hub eventi, azure Key Vault, hub IoT di Azure e cluster di Azure Esplora dati. In questa esercitazione come risorsa verrà usato un cluster di Esplora dati di Azure e si esamineranno le metriche delle prestazioni delle query e i log dei risultati di inserimento.

  1. Selezionare il cluster Kusto nel portale di Azure.

  2. Selezionare Impostazioni di diagnostica e quindi selezionare il collegamento Abilita diagnostica.

    Impostazioni di diagnostica.

  3. Viene visualizzato il riquadro Impostazioni di diagnostica. Eseguire questa procedura:

    1. Assegnare ai dati del log di diagnostica il nome ADXExportedData.

    2. In LOG selezionare le caselle di controllo SucceededIngestion e FailedIngestion.

    3. In METRICAselezionare la casella di controllo Prestazioni query.

    4. Selezionare la casella di controllo Streaming in un hub eventi.

    5. Selezionare Configura.

      Riquadro Impostazioni di diagnostica.

  4. Nel riquadro Selezionare l'hub eventi configurare il modo in cui esportare i dati dai log di diagnostica nell'hub eventi creato:

    1. Nell'elenco Selezionare lo spazio dei nomi dell'hub eventi selezionare AzureMonitoringData.
    2. Nell'elenco Selezionare il nome dell'hub eventi selezionare DiagnosticData.
    3. Nell'elenco Selezionare il nome dei criteri per l'hub eventi selezionare RootManagerSharedAccessKey.
    4. Selezionare OK.
  5. Selezionare Salva.

Esaminare il flusso di dati verso gli hub eventi

  1. Attendere alcuni minuti finché non viene definita la connessione e non viene completata l'esportazione dei log attività nell'hub eventi. Passare allo spazio dei nomi di Hub eventi per visualizzare gli hub eventi creati.

    Hub eventi creati.

  2. Esaminare il flusso di dati verso l'hub eventi:

    Dati dell'hub eventi.

Connettere un hub eventi a Esplora dati di Azure

A questo punto è necessario creare le connessioni dati per le metriche e i log di diagnostica e i log attività.

Creare la connessione dati per le metriche e i log di diagnostica e i log attività

  1. Nel cluster di Esplora dati di Azure denominato kustodocs scegliere Database dal menu a sinistra.

  2. Nella finestra Database selezionare il database TestDatabase.

  3. Scegliere Inserimento dati dal menu a sinistra.

  4. Nella finestra Inserimento dati selezionare + Aggiungi connessione dati.

  5. Nella finestra Connessione dati immettere le informazioni seguenti:

    Connessione dati dell'hub eventi.

  1. Nella finestra Connessione dati usare le impostazioni seguenti:

    Origine dati:

    Impostazione Valore consigliato Descrizione campo
    Data connection name (Nome connessione dati) DiagnosticsLogsConnection Nome della connessione da creare in Esplora dati di Azure.
    Spazio dei nomi dell'hub eventi AzureMonitoringData Nome scelto in precedenza che identifica lo spazio dei nomi.
    Hub eventi DiagnosticData Hub eventi creato.
    Gruppo di consumer adxpipeline Gruppo di consumer definito nell'hub eventi creato.

    Tabella di destinazione:

    Sono disponibili due opzioni per il routing: statico e dinamico. Per questa esercitazione viene usato il routing statico (impostazione predefinita), in cui vengono specificati il nome della tabella, il formato dati e il mapping. Lasciare deselezionato My data includes routing info (I miei dati includono le informazioni di routing).

    Impostazione Valore consigliato Descrizione campo
    Tabella DiagnosticRawRecords Tabella creata nel database TestDatabase.
    Formato dati JSON Formato usato nella tabella.
    Mapping di colonne DiagnosticRawRecordsMapping Il mapping creato nel database TestDatabase, che mappa i dati JSON in ingresso con i nomi di colonna e i tipi di dati della tabella DiagnosticRawRecords.
  2. Selezionare Crea.

Eseguire una query sulle nuove tabelle

È stata configurata una pipeline con un flusso di dati. L'inserimento tramite il cluster richiede 5 minuti per impostazione predefinita, quindi aspettare alcuni minuti durante il flusso di dati prima di avviare la query.

Eseguire una query sulla tabella delle metriche di diagnostica

La query seguente analizza i dati sulla durata della query dai record delle metriche di diagnostica di Esplora dati di Azure:

DiagnosticMetrics
| where Timestamp > ago(15m) and MetricName == 'QueryDuration'
| summarize avg(Average)

Risultati della query:

avg_Average
00:06,156