Freigeben über


Diagnoseprotokolle: Azure Content Delivery Network

Mit Azure-Diagnoseprotokollen können Sie Daten der Basisanalyse anzeigen und diese an mindestens einem Ziel speichern, z. B.:

  • Azure-Speicherkonto
  • Log Analytics-Arbeitsbereich
  • Azure Event Hubs

Diese Funktion steht für Endpunkte des Inhaltsübermittlungs-Netzwerks für alle Tarife zur Verfügung.

Mit den Diagnoseprotokollen können Sie grundlegende Nutzungsmetriken von Ihrem Content Delivery Network-Endpunkt in verschiedene Arten von Quellen exportieren, so dass Sie diese auf individuelle Weise nutzen können. Sie können die folgenden Arten von Datenexport durchführen:

  • Exportieren von Daten in Blobspeicher, Exportieren in eine CSV-Datei und Generieren von Diagrammen in Excel
  • Exportieren von Daten nach Event Hubs und Korrelieren mit Daten von anderen Azure-Diensten
  • Exportieren von Daten in Azure Monitor-Protokolle und Anzeigen von Daten im eigenen Log Analytics-Arbeitsbereich

Für die folgenden Schritte ist ein Azure Content Delivery Network-Profil erforderlich. Lesen Sie das Erstellen eines Azure Content Delivery Network-Profils und -Endpunkts, bevor Sie fortfahren.

Aktivieren der Protokollierung über das Azure-Portal

Führen Sie die folgenden Schritte aus, um die Protokollierung für Ihren Azure Content Delivery Network-Endpunkt zu aktivieren:

  1. Melden Sie sich beim Azure-Portal an.

  2. Navigieren Sie im Azure-Portal zu Alle Ressourcen>Ihr CDN-Profil.

  3. Wählen Sie den Netzwerkendpunkt für die Inhaltsübermittlung aus, für den Sie Diagnoseprotokolle aktivieren möchten:

    Screenshot des Endpunkts für die Inhaltsübermittlung.

  4. Wählen Sie im Abschnitt Überwachung die Option Diagnoseprotokolle aus:

    Screenshot der Schaltfläche „Diagnoseprotokolle“ im Menü „Überwachung“.

Aktivieren der Protokollierung mit Azure Storage

Führen Sie die folgenden Schritte aus, um ein Speicherkonto zum Speichern der Protokolle zu verwenden:

Hinweis

Zur Durchführung dieser Schritte ist ein Speicherkonto erforderlich. Weitere Informationen finden Sie unter: Weitere Informationen finden Sie unter Erstellen eines Azure Storage-Kontos .

  1. Geben Sie für Name der Diagnoseeinstellung einen Namen für Ihre Diagnoseprotokolleinstellungen ein.

  2. Wählen Sie In einem Speicherkonto archivieren und dann CoreAnalytics.

  3. Wählen Sie für Beibehaltungsdauer (Tage) die Anzahl der Aufbewahrungstage. Bei einer Aufbewahrung von 0 Tagen werden die Protokolle dauerhaft gespeichert.

  4. Wählen Sie das Abonnement und Speicherkonto für die Protokolle aus.

    Diagnoseprotokolle – Speicher.

  5. Wählen Sie Speichern aus.

An Log Analytics senden

Führen Sie die folgenden Schritte aus, um Log Analytics für die Protokolle zu verwenden:

Hinweis

Zum Ausführen dieser Schritte ist ein Log Analytics-Arbeitsbereich erforderlich. Weitere Informationen finden Sie unter: Weitere Informationen finden Sie unter Erstellen eines Log Analytics-Arbeitsbereichs im Azure-Portal .

  1. Geben Sie für Name der Diagnoseeinstellung einen Namen für Ihre Diagnoseprotokolleinstellungen ein.

  2. Wählen Sie An Log Analytics senden und anschließend CoreAnalytics aus.

  3. Wählen Sie das Abonnement und den Log Analytics-Arbeitsbereich für die Protokolle aus.

    Diagnoseprotokolle – Log Analytics.

  4. Wählen Sie Speichern aus.

An einen Event Hub streamen

Gehen Sie folgendermaßen vor, um einen Event Hub für die Protokolle zu verwenden:

Hinweis

Zur Durchführung dieser Schritte ist ein Event Hub erforderlich. Weitere Informationen finden Sie unter: Schnellstart: Erstellen eines Event Hubs mithilfe des Azure-Portals .

  1. Geben Sie für Name der Diagnoseeinstellung einen Namen für Ihre Diagnoseprotokolleinstellungen ein.

  2. Wählen Sie An einen Event Hub streamen und anschließend CoreAnalytics aus.

  3. Wählen Sie das Abonnement und den Event Hub-Namespace für die Protokolle aus.

    Diagnoseprotokolle – Event Hub.

  4. Wählen Sie Speichern aus.

Aktivieren der Protokollierung mit PowerShell

Das folgende Beispiel zeigt, wie Sie Diagnoseprotokolle über die Azure PowerShell-Cmdlets aktivieren.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Aktivieren von Diagnoseprotokollen in einem Speicherkonto

  1. Melden Sie sich bei Azure PowerShell an:

    Connect-AzAccount 
    
  2. Geben Sie die folgenden Befehle ein, um Diagnoseprotokolle in einem Speicherkonto zu aktivieren. Ersetzen Sie die Variablen durch Ihre Werte:

    $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
    

Aktivieren von Diagnoseprotokollen für den Log Analytics-Arbeitsbereich

  1. Melden Sie sich bei Azure PowerShell an:

    Connect-AzAccount 
    
  2. Geben Sie diese Befehle ein, um Diagnoseprotokolle für einen Log Analytics-Arbeitsbereich zu aktivieren. Ersetzen Sie die Variablen durch Ihre Werte:

    $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
    

Aktivieren von Diagnoseprotokollen für den Event Hub-Namespace

  1. Melden Sie sich bei Azure PowerShell an:

    Connect-AzAccount 
    
  2. Geben Sie diese Befehle ein, um Diagnoseprotokolle für einen Log Analytics-Arbeitsbereich zu aktivieren. Ersetzen Sie die Variablen durch Ihre Werte:

    $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
    

Nutzen von Diagnoseprotokollen aus Azure Storage

Dieser Abschnitt beschreibt das Schema der Content Delivery Network Core Analytics, die Organisation in einem Azure Storage-Konto und bietet einen Beispielcode zum Herunterladen der Protokolle in eine CSV-Datei.

Verwenden des Microsoft Azure Storage-Explorers

Informationen zum Herunterladen des Tools finden Sie unter Azure Storage-Explorer. Nachdem Sie die Software heruntergeladen und installiert haben, konfigurieren Sie diese so, dass sie dasselbe Azure Speicherkonto verwendet, das als Ziel für die Diagnoseprotokolle des Content Delivery Network konfiguriert wurde.

  1. Öffnen Sie den Microsoft Azure Storage-Explorer.
  2. Ermitteln Sie das Speicherkonto.
  3. Erweitern Sie den Knoten Blobcontainer unter diesem Speicherkonto.
  4. Wählen Sie den Container mit dem Namen insights-logs-coreanalytics aus.
  5. Im Bereich auf der rechten Seite werden Ergebnisse angezeigt. Es wird mit der ersten Ebene begonnen: resourceId= . Wählen Sie weiterhin jede Ebene aus, bis Sie die Datei PT1H.json gefunden haben. Eine Erläuterung des Pfads finden Sie unter Blobpfadformat.
  6. Jede Blob PT1H.json-Datei stellt die Analyseprotokolle für eine Stunde für einen bestimmten Content Delivery Network-Endpunkt oder seine benutzerdefinierte Domain dar.
  7. Das Schema der Inhalte dieser JSON-Datei wird im Abschnitt „Schema der Basisanalyseprotokolle“ beschrieben.

Blobpfadformat

Basisanalyseprotokolle werden stündlich generiert. Die Daten werden gesammelt und als JSON-Nutzlast in einem einzelnen Azure-Blob gespeichert. Das Storage-Explorer-Tool interpretiert „/“ als Verzeichnistrennzeichen und zeigt die Hierarchie an. Der Pfad zum Azure-Blob wird angezeigt, als ob es eine hierarchische Struktur gebe, und stellt den Blobnamen dar. Für den Namen des Blobs wird die folgende Benennungskonvention verwendet:

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

Beschreibung der Felder:

Wert BESCHREIBUNG
Abonnement-ID ID des Azure-Abonnements im GUID-Format (Globally Unique Identifier).
Ressourcengruppenname Name der Ressourcengruppe, zu der die Netzwerkressourcen für die Inhaltsübermittlung gehören.
Profilname Name des Netzwerkprofils für die Inhaltsübermittlung
Endpunktname Name des Netzwerkendpunkts für die Inhaltsübermittlung
Year Vierstellige Jahresangabe, z.B. 2017
Month (Monat) Zweistellige Monatsangabe. 01 = Januar bis 12 = Dezember
Day (Tag) Zweistellige Tagesangabe
PT1H.json JSON-Datei, in der die Analysedaten gespeichert sind

Exportieren der Basisanalysedaten in eine CSV-Datei

Für den Zugriff auf Basisanalysen wird Beispielcode für ein Tool bereitgestellt. Mit diesem Tool ist das Herunterladen der JSON-Dateien in einem flachen Dateiformat mit Kommas als Trennzeichen möglich. Diese Datei kann dann zum Erstellen von Diagrammen oder anderen Aggregationen verwendet werden.

Sie können das Tool wie folgt verwenden:

  1. Nutzen Sie den GitHub-Link: https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
  2. Laden Sie den Code herunter.
  3. Befolgen Sie die Anleitung zum Kompilieren und Konfigurieren.
  4. Führen Sie das Tool aus.
  5. In der sich ergebenden CSV-Datei werden die Analysedaten in einer einfachen flachen Hierarchie angezeigt.

Protokolldatenverzögerungen

Die folgende Tabelle zeigt die Verzögerungen bei den Protokolldaten für Azure CDN Standard von Microsoft und Azure CDN Standard/Premium von Edgio.

Microsoft-Protokolldatenverzögerungen Edgio-Protokolldatenverzögerungen
Um eine Stunde verzögert Um eine Stunde verzögert, und es dauert bis zu zwei Stunden, bis die Daten nach Abschluss der Verteilung auf die Endpunkte angezeigt werden.

Diagnoseprotokolltypen für Die Kernanalyse des Inhaltsübermittlungs-Netzwerks

Microsoft bietet derzeit nur Core Analytics-Protokolle an, die Metriken mit HTTP-Antwortstatistiken und ausgehenden Statistiken aus Sicht der POPs/Edges des Content Delivery Network enthalten.

Details zu Basisanalysemetriken

Die folgende Tabelle enthält eine Liste mit den Metriken, die in den Basisanalyseprotokollen für Folgendes verfügbar sind:

  • Azure CDN Standard von Microsoft
  • Azure CDN Standard/Premium von Edgio

Nicht alle Metriken sind für alle Anbieter verfügbar, aber die Unterschiede sind nur minimal. In dieser Tabelle ist jeweils auch angegeben, ob eine Metrik von einem Anbieter verfügbar ist. Die Metriken sind nur für die Endpunkte des Content Delivery Network verfügbar, über die Datenverkehr stattfindet.

Metrik BESCHREIBUNG Microsoft Edgio
RequestCountTotal Gesamtzahl von Anforderungstreffern während dieses Zeitraums Ja Ja
RequestCountHttpStatus2xx Anzahl aller Anforderungen, die zum HTTP-Code 2xx geführt haben (z.B. 200, 202) Ja Ja
RequestCountHttpStatus3xx Anzahl aller Anforderungen, die zum HTTP-Code 3xx geführt haben (z.B. 300, 302) Ja Ja
RequestCountHttpStatus4xx Anzahl aller Anforderungen, die zum HTTP-Code 4xx geführt haben (z.B. 400, 404) Ja Ja
RequestCountHttpStatus5xx Anzahl aller Anforderungen, die zum HTTP-Code 5xx geführt haben (z.B. 500, 504) Ja Ja
RequestCountHttpStatusOthers Anzahl aller anderen HTTP-Codes (außerhalb des Bereichs von 2xx bis 5xx) Ja Ja
RequestCountHttpStatus200 Anzahl aller Anforderungen, die zu einer Antwort mit dem HTTP-Code 200 geführt haben Ja No
RequestCountHttpStatus206 Anzahl aller Anforderungen, die zu einer Antwort mit dem HTTP-Code 206 geführt haben Ja No
RequestCountHttpStatus302 Anzahl aller Anforderungen, die zu einer Antwort mit dem HTTP-Code 302 geführt haben Ja No
RequestCountHttpStatus304 Anzahl aller Anforderungen, die zu einer Antwort mit dem HTTP-Code 304 geführt haben Ja No
RequestCountHttpStatus404 Anzahl aller Anforderungen, die zu einer Antwort mit dem HTTP-Code 404 geführt haben Ja No
RequestCountCacheHit Anzahl aller Anforderungen, die zu einem Cachetreffer geführt haben. Das Objekt wurde direkt vom POP für den Client bereitgestellt. Ja Ja
RequestCountCacheMiss Anzahl aller Anforderungen, die zu einem Cachefehler geführt haben. Ein Cachefehler bedeutet, dass das Objekt nicht auf dem POP gefunden wurde, der die geringste Entfernung zum Client aufweist, und vom Ursprungsserver abgerufen wurde. Ja Ja
RequestCountCacheNoCache Anzahl aller Anforderungen eines Objekts, die aufgrund einer Benutzerkonfiguration im Edgebereich nicht zwischengespeichert wurden. Ja Ja
RequestCountCacheUncacheable Anzahl aller Anforderungen an Objekte, bei denen durch die Header „Cache-Control“ und „Expires“ des Objekts eine Zwischenspeicherung verhindert wird. Diese Anzahl zeigt an, dass keine Zwischenspeicherung auf einem POP oder durch den HTTP-Client erfolgen soll. Ja Ja
RequestCountCacheOthers Anzahl aller Anforderungen mit einem Cachestatus, der durch die vorstehenden Metriken nicht abgedeckt wird. Nein Ja
EgressTotal Datenübertragung in ausgehender Richtung in GB Ja Ja
EgressHttpStatus2xx Datenübertragung in ausgehender Richtung* für Antworten mit dem HTTP-Statuscode 2xx in GB Ja Ja
EgressHttpStatus3xx Datenübertragung in ausgehender Richtung für Antworten mit dem HTTP-Statuscode 3xx in GB Ja Ja
EgressHttpStatus4xx Datenübertragung in ausgehender Richtung für Antworten mit dem HTTP-Statuscode 4xx in GB Ja Ja
EgressHttpStatus5xx Datenübertragung in ausgehender Richtung für Antworten mit dem HTTP-Statuscode 5xx in GB Ja Ja
EgressHttpStatusOthers Datenübertragung in ausgehender Richtung für Antworten mit anderen HTTP-Statuscodes in GB Ja Ja
EgressCacheHit Ausgehende Datenübertragung für Antworten, die direkt aus dem Netzwerkcache für die Inhaltsübermittlung im Inhaltsübermittlungs-Netzwerk-POPs/Edges übermittelt wurden. Ja Ja
EgressCacheMiss Datenübertragung in ausgehender Richtung für Antworten, die nicht auf dem nächstgelegenen POP-Server gefunden und daher vom Ursprungsserver abgerufen wurden Ja Ja
EgressCacheNoCache Datenübertragung in ausgehender Richtung für Objekte, die aufgrund einer Benutzerkonfiguration im Edgebereich nicht zwischengespeichert wurden Ja Ja
EgressCacheUncacheable Datenübertragung in ausgehender Richtung für Objekte, bei denen durch die Header „Cache-Control“ und/oder „Expires“ eine Zwischenspeicherung verhindert wird. Mit diesen Headern wird angegeben, dass keine Zwischenspeicherung auf einem POP oder durch den HTTP-Client erfolgen soll. Ja Ja
EgressCacheOthers Datenübertragungen in ausgehender Richtung für andere Cacheszenarien Nein Ja

*Ausgehende Datenübertragung bezieht sich auf Datenverkehr, der von POP-Servern des Inhaltsübermittlungs-Netzwerks an den Client übermittelt wird.

Schema der Basisanalyseprotokolle

Alle Protokolle werden im JSON-Format gespeichert, und jeder Eintrag enthält Zeichenfolgenfelder gemäß dem folgenden Schema:

    "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,
            }
        }

    ]
}

Hierbei steht time für die Startzeit der Stundengrenze, für die die Statistik gemeldet wird. Eine Metrik, die von einem Content Delivery Network-Anbieter nicht unterstützt wird, ergibt anstelle eines Double- oder Integer-Werts einen Nullwert. Mit diesem NULL-Wert wird das Fehlen einer Metrik angegeben. Dies ist ein anderer Wert als der Wert 0. Auf dem Endpunkt ist pro Domäne ein Satz mit diesen Metriken konfiguriert.

Beispiele für Eigenschaften:

{
     "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
}

Weitere Ressourcen