Log di diagnostica - Azure rete per la distribuzione di contenuti

Con i log di diagnostica di Azure è possibile visualizzare le principali analisi e salvarle in una o più destinazioni, tra cui:

  • Account di archiviazione di Azure
  • Area di lavoro Log Analytics
  • Hub eventi di Azure

Questa funzionalità è disponibile sugli endpoint di rete per la distribuzione di contenuti per tutti i piani tariffari.

I log di diagnostica consentono di esportare le metriche di utilizzo di base dall'endpoint di rete per la distribuzione di contenuti in origini di tipi diversi in modo da poterle usare in modo personalizzato. È possibile eseguire i tipi di esportazione dei dati seguenti:

  • Esportare i dati in archivi BLOB, esportare in file CSV e generare grafici in Excel.
  • Esportare i dati in Hub eventi e correlarli con dati provenienti da altri servizi di Azure.
  • Esportare i dati nei log di Monitoraggio di Azure e visualizzare i dati nella propria area di lavoro Log Analytics

Per la procedura seguente è necessario un profilo di azure rete per la distribuzione di contenuti. Prima di continuare, vedere Creare un profilo e un endpoint di Azure rete per la distribuzione di contenuti.

Abilitare la registrazione con il portale di Azure

Seguire questa procedura per abilitare la registrazione per l'endpoint di Azure rete per la distribuzione di contenuti:

  1. Accedere al portale di Azure.

  2. Nella portale di Azure passare a Tutte le risorse>your-cdn-profile.

  3. Selezionare l'endpoint di rete per la distribuzione di contenuti per cui si vogliono abilitare i log di diagnostica:

    Screenshot della selezione dell'endpoint di rete per la distribuzione di contenuti.

  4. Selezionare Log di diagnostica nella sezione Monitoraggio :

    Screenshot del pulsante Log di diagnostica nel menu di monitoraggio.

Abilitare la registrazione con Archiviazione di Azure

Per usare un account di archiviazione per archiviare i log, seguire questa procedura:

Nota

Per completare questi passaggi, è necessario un account di archiviazione. Per altre informazioni, vedere Creare un account Archiviazione di Azure.

  1. Per Nome impostazione diagnostica immettere un nome per le impostazioni del log di diagnostica.

  2. Selezionare Archivia in un account di archiviazione e quindi selezionare CoreAnalytics.

  3. In Conservazione (giorni) scegliere il numero di giorni di conservazione. Se il valore di conservazione è zero giorni, i log vengono conservati all'infinito.

  4. Selezionare la sottoscrizione e l'account di archiviazione per i log.

    Log di diagnostica: Archiviazione.

  5. Seleziona Salva.

Invia a Log Analytics

Per usare Log Analytics per i log, seguire questa procedura:

Nota

Per completare questi passaggi, è necessaria un'area di lavoro Log Analytics. Per altre informazioni, vedere Creare un'area di lavoro Log Analytics nel portale di Azure.

  1. Per Nome impostazione diagnostica immettere un nome per le impostazioni del log di diagnostica.

  2. Selezionare Invia a Log Analytics e quindi CoreAnalytics.

  3. Selezionare la sottoscrizione e l'area di lavoro Log Analytics per i log.

    Log di diagnostica - Log Analytics.

  4. Seleziona Salva.

Streaming in un hub eventi

Per usare un hub eventi per i log, seguire questa procedura:

Nota

Per completare questi passaggi, è necessario un hub eventi. Per altre informazioni, vedere: Guida introduttiva: Creare un hub eventi usando portale di Azure.

  1. Per Nome impostazione diagnostica immettere un nome per le impostazioni del log di diagnostica.

  2. Selezionare Stream to an event hub (Stream to an event hub), quindi selezionare CoreAnalytics (CoreAnalytics).

  3. Selezionare la sottoscrizione e lo spazio dei nomi dell'hub eventi per i log.

    Log di diagnostica - Hub eventi.

  4. Seleziona Salva.

Abilitare la registrazione con PowerShell

L'esempio seguente mostra come abilitare i log di diagnostica tramite i cmdlet di Azure PowerShell.

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Abilitare i log di diagnostica in un account di archiviazione

  1. Accedere ad Azure PowerShell:

    Connect-AzAccount 
    
  2. Per abilitare i log di diagnostica in un account di archiviazione, immettere questi comandi. Sostituire le variabili con i valori:

    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $storageacct = <your-storage-account-name>
    $diagname = <your-diagnostic-setting-name>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    $storage = Get-AzStorageAccount -ResourceGroupName $rsg -Name $storageacct
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -StorageAccountId $storage.id -Enabled $true -Categories CoreAnalytics
    

Abilitare i log di diagnostica per l'area di lavoro Log Analytics

  1. Accedere ad Azure PowerShell:

    Connect-AzAccount 
    
  2. Per abilitare i log di diagnostica per un'area di lavoro Log Analytics, immettere questi comandi. Sostituire le variabili con i valori:

    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $workspacename = <your-log-analytics-workspace-name>
    $diagname = <your-diagnostic-setting-name>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    $workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $rsg -Name $workspacename
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -WorkspaceId $workspace.ResourceId -Enabled $true -Categories CoreAnalytics
    

Abilitare i log di diagnostica per lo spazio dei nomi dell'hub eventi

  1. Accedere ad Azure PowerShell:

    Connect-AzAccount 
    
  2. Per abilitare i log di diagnostica per un'area di lavoro Log Analytics, immettere questi comandi. Sostituire le variabili con i valori:

    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $eventhubname = <your-event-hub-namespace-name>
    $diagname = <your-diagnostic-setting-name>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -EventHubName $eventhubname -Enabled $true -Categories CoreAnalytics
    

Utilizzo di log di diagnostica da Archiviazione di Azure

Questa sezione descrive lo schema dell'analisi principale della rete per la distribuzione di contenuti, l'organizzazione in un account Archiviazione di Azure e fornisce codice di esempio per scaricare i log in un file CSV.

Uso di Microsoft Azure Storage Explorer

Per scaricare lo strumento, vedere Azure Storage Explorer. Dopo aver scaricato e installato il software, configurarlo per l'uso dello stesso account Archiviazione di Azure configurato come destinazione per i log di diagnostica della rete per la distribuzione di contenuti.

  1. Aprire Microsoft Azure Storage Explorer
  2. Individuare l'account di archiviazione
  3. Espandere il nodo Contenitori BLOB in questo account di archiviazione.
  4. Selezionare il contenitore denominato insights-logs-coreanalytics.
  5. I risultati vengono visualizzati nel riquadro di destra, a partire dal primo livello, come "resourceId=". Continuare selezionando ogni livello fino a quando non si trova il file PT1H.json. Per una spiegazione del percorso, vedere Formato del percorso BLOB.
  6. Ogni BLOB PT1H.json file rappresenta i log di analisi per un'ora per un endpoint di rete per la distribuzione di contenuti specifico o per il relativo dominio personalizzato.
  7. Lo schema del contenuto di questo file JSON è descritto nella sezione dello schema dei log dell'analisi principale.

Formato del percorso BLOB

I log dell'analisi principale vengono generati ogni ora e i dati vengono raccolti e archiviati all'interno di un singolo BLOB di Azure come payload JSON. Archiviazione strumento Explorer interpreta '/' come separatore di directory e mostra la gerarchia. Il percorso del BLOB di Azure viene visualizzato come se fosse presente una struttura gerarchica e rappresenta il nome del BLOB. Il nome del BLOB segue la convenzione di denominazione seguente:

resourceId=/SUBSCRIPTIONS/{Subscription Id}/RESOURCEGROUPS/{Resource Group Name}/PROVIDERS/MICROSOFT.CDN/PROFILES/{Profile Name}/ENDPOINTS/{Endpoint Name}/ y=/m=/d=/h=/m=/PT1H.json

Descrizione dei campi:

Valore Descrizione
ID sottoscrizione ID della sottoscrizione di Azure in formato identificatore univoco globale (GUID).
Nome gruppo di risorse Nome del gruppo di risorse a cui appartengono le risorse di rete per la distribuzione di contenuti.
Nome profilo Nome del profilo di rete per la distribuzione di contenuti
Nome endpoint Nome dell'endpoint di rete per la distribuzione di contenuti
Anno Rappresentazione a quattro cifre dell'anno, ad esempio 2017
Mese Rappresentazione a due cifre del numero del mese. 01=Gennaio ... 12=Dicembre
Giornaliera Rappresentazione a due cifre del giorno del mese
PT1H.json File JSON effettivo in cui vengono archiviati i dati di analisi

Esportazione dei dati dell'analisi principale in un file CSV

Per accedere all'analisi di base, viene fornito il codice di esempio per uno strumento. Questo strumento consente di scaricare i file JSON in un formato di file normale con valori delimitati da virgole, che può essere usato per creare grafici o altre aggregazioni.

Di seguito è illustrato come è possibile usare lo strumento:

  1. Visitare il collegamento di github: https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
  2. Scaricare il codice.
  3. Seguire le istruzioni per la compilazione e la configurazione.
  4. Eseguire lo strumento.
  5. Il file CSV risultate mostra i dati di analisi in una semplice gerarchia.

Ritardi dei dati di log

La tabella seguente illustra i ritardi dei dati di log per Rete CDN di Azure Standard di Microsoft e Rete CDN di Azure Standard/Premium da Edgio.

Ritardi dei dati di log di Microsoft Ritardi dei dati di log edgio
Ritardato di 1 ora. Ritardato di 1 ora e può richiedere fino a 2 ore prima di essere visualizzati dopo il completamento della propagazione dell'endpoint.

Tipi di log di diagnostica per l'analisi principale della rete per la distribuzione di contenuti

Microsoft offre attualmente solo log di analisi di base, che contengono metriche che mostrano statistiche di risposta HTTP e statistiche in uscita, come illustrato dai POP/archi della rete per la distribuzione di contenuti.

Dettagli delle metriche dell'analisi principale

La tabella seguente mostra un elenco di metriche disponibili nei log di analisi di base per:

  • Rete CDN Standard di Azure offerta da Microsoft
  • Rete CDN di Azure Standard/Premium di Edgio

Non tutte le metriche sono disponibili da tutti i provider, sebbene le differenze siano minime. La tabella mostra anche se una determinata metrica può essere indicata da un provider. Le metriche sono disponibili solo per gli endpoint di rete per la distribuzione di contenuti con traffico su di essi.

Metrico Descrizione Microsoft Edgio
RequestCountTotal Numero totale di riscontri della richiesta durante questo periodo.
RequestCountHttpStatus2xx Numero di tutte le richieste che hanno generato un codice HTTP 2xx (ad esempio 200, 202).
RequestCountHttpStatus3xx Numero di tutte le richieste che hanno generato un codice HTTP 3xx (ad esempio 300, 302).
RequestCountHttpStatus4xx Numero di tutte le richieste che hanno generato un codice HTTP 4xx (ad esempio 400, 404).
RequestCountHttpStatus5xx Numero di tutte le richieste che hanno generato un codice HTTP 5xx (ad esempio 500, 504).
RequestCountHttpStatusOthers Numero di tutti gli altri codici HTTP (non inclusi nell'intervallo 2xx-5xx).
RequestCountHttpStatus200 Numero di tutte le richieste che hanno generato una risposta di codice HTTP 200. No
RequestCountHttpStatus206 Numero di tutte le richieste che hanno generato una risposta di codice HTTP 206. No
RequestCountHttpStatus302 Numero di tutte le richieste che hanno generato una risposta di codice HTTP 302. No
RequestCountHttpStatus304 Numero di tutte le richieste che hanno generato una risposta di codice HTTP 304. No
RequestCountHttpStatus404 Numero di tutte le richieste che hanno generato una risposta di codice HTTP 404. No
RequestCountCacheHit Conteggio di tutte le richieste che hanno generato un riscontro nella cache. L'asset è stato servito direttamente dal POP al client.
RequestCountCacheMiss Conteggio di tutte le richieste che hanno generato un mancato riscontro nella cache. Un mancato riscontro nella cache indica che l'asset non è stato trovato nel POP più vicino al client ed è stato recuperato dall'origine.
RequestCountCacheNoCache Numero di tutte le richieste a un asset che non possono essere memorizzate nella cache a causa di una configurazione utente sul perimetro.
RequestCountCacheUncacheable Numero di tutte le richieste agli asset che non possono essere memorizzate nella cache dalle intestazioni Cache-Control e Expires dell'asset. Questo conteggio indica che non deve essere memorizzato nella cache in un POP o dal client HTTP.
RequestCountCacheOthers Numero di tutte le richieste con stato della cache non coperte dalle metriche elencate in precedenza. No
EgressTotal Trasferimento di dati in uscita in GB
EgressHttpStatus2xx Trasferimento di dati in uscita* per risposte con codici di stato HTTP 2xx in GB.
EgressHttpStatus3xx Trasferimento di dati in uscita per risposte con codici di stato HTTP 3xx in GB.
EgressHttpStatus4xx Trasferimento di dati in uscita per risposte con codici di stato HTTP 4xx in GB.
EgressHttpStatus5xx Trasferimento di dati in uscita per risposte con codici di stato HTTP 5xx in GB.
EgressHttpStatusOthers Trasferimento di dati in uscita per risposte con altri codici di stato HTTP in GB.
EgressCacheHit Trasferimento dei dati in uscita per le risposte recapitate direttamente dalla cache della rete per la distribuzione di contenuti nei POP/Archi della rete per la distribuzione di contenuti.
EgressCacheMiss. Trasferimento dei dati in uscita per le risposte non trovate nel server POP più vicino e recuperate dal server di origine.
EgressCacheNoCache Trasferimento dei dati in uscita per gli asset che non possono essere memorizzati nella cache a causa di una configurazione utente sul perimetro.
EgressCacheUncacheable Trasferimento dei dati in uscita per gli asset che non possono essere memorizzati nella cache dalle intestazioni Cache-Control e Expires dell'asset. Indica che non deve essere memorizzato nella cache in un POP o dal client HTTP.
EgressCacheOthers Trasferimento di dati in uscita per altri scenari di cache. No

*Il trasferimento dei dati in uscita si riferisce al traffico distribuito dai server POP della rete per la distribuzione di contenuti al client.

Schema dei log dell'analisi principale

Tutti i log vengono archiviati in formato JSON e per ogni voce sono presenti campi stringa in base allo schema seguente:

    "records": [
        {
            "time": "2017-04-27T01:00:00",
            "resourceId": "<ARM Resource Id of the CDN Endpoint>",
            "operationName": "Microsoft.Cdn/profiles/endpoints/contentDelivery",
            "category": "CoreAnalytics",
            "properties": {
                "DomainName": "<Name of the domain for which the statistics is reported>",
                "RequestCountTotal": integer value,
                "RequestCountHttpStatus2xx": integer value,
                "RequestCountHttpStatus3xx": integer value,
                "RequestCountHttpStatus4xx": integer value,
                "RequestCountHttpStatus5xx": integer value,
                "RequestCountHttpStatusOthers": integer value,
                "RequestCountHttpStatus200": integer value,
                "RequestCountHttpStatus206": integer value,
                "RequestCountHttpStatus302": integer value,
                "RequestCountHttpStatus304": integer value,
                "RequestCountHttpStatus404": integer value,
                "RequestCountCacheHit": integer value,
                "RequestCountCacheMiss": integer value,
                "RequestCountCacheNoCache": integer value,
                "RequestCountCacheUncacheable": integer value,
                "RequestCountCacheOthers": integer value,
                "EgressTotal": double value,
                "EgressHttpStatus2xx": double value,
                "EgressHttpStatus3xx": double value,
                "EgressHttpStatus4xx": double value,
                "EgressHttpStatus5xx": double value,
                "EgressHttpStatusOthers": double value,
                "EgressCacheHit": double value,
                "EgressCacheMiss": double value,
                "EgressCacheNoCache": double value,
                "EgressCacheUncacheable": double value,
                "EgressCacheOthers": double value,
            }
        }

    ]
}

Dove time rappresenta l'ora di inizio del limite di ore per cui vengono restituite le statistiche. Una metrica non supportata da un provider di rete per la distribuzione di contenuti, anziché un valore double o integer, restituisce un valore Null. Questo valore null indica l'assenza di una metrica ed è diverso da un valore 0. Un set di queste metriche per dominio è configurato nell'endpoint.

Proprietà di esempio:

{
     "DomainName": "azurecdntest.azureedge.net",
     "RequestCountTotal": 480,
     "RequestCountHttpStatus2xx": 480,
     "RequestCountHttpStatus3xx": 0,
     "RequestCountHttpStatus4xx": 0,
     "RequestCountHttpStatus5xx": 0,
     "RequestCountHttpStatusOthers": 0,
     "RequestCountHttpStatus200": 480,
     "RequestCountHttpStatus206": 0,
     "RequestCountHttpStatus302": 0,
     "RequestCountHttpStatus304": 0,
     "RequestCountHttpStatus404": 0,
     "RequestCountCacheHit": null,
     "RequestCountCacheMiss": null,
     "RequestCountCacheNoCache": null,
     "RequestCountCacheUncacheable": null,
     "RequestCountCacheOthers": null,
     "EgressTotal": 0.09,
     "EgressHttpStatus2xx": null,
     "EgressHttpStatus3xx": null,
     "EgressHttpStatus4xx": null,
     "EgressHttpStatus5xx": null,
     "EgressHttpStatusOthers": null,
     "EgressCacheHit": null,
     "EgressCacheMiss": null,
     "EgressCacheNoCache": null,
     "EgressCacheUncacheable": null,
     "EgressCacheOthers": null
}

Altre risorse