Diagnoseprotokolle: Azure Content Delivery Network
Wichtig
Azure CDN Standard von Microsoft (klassisch) wird am 30. September 2027 eingestellt. Um Dienstunterbrechungen zu vermeiden, ist es wichtig, dass Sie Ihre Profile von Azure CDN Standard von Microsoft (klassisch) bis zum 30. September 2027 auf die Dienstebene Azure Front Door Standard oder Premium migrieren. Weitere Informationen finden Sie unter Einstellung von Azure CDN Standard von Microsoft (klassisch).
Azure CDN von Edgio wird am 4. November 2025 eingestellt. Sie müssen Ihre Workload vor diesem Datum zu Azure Front Door migrieren, um Dienstunterbrechungen zu vermeiden. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Einstellung von Azure CDN von Edgio.
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:
Melden Sie sich beim Azure-Portal an.
Navigieren Sie im Azure-Portal zu Alle Ressourcen>Ihr CDN-Profil.
Wählen Sie den Netzwerkendpunkt für die Inhaltsübermittlung aus, für den Sie Diagnoseprotokolle aktivieren möchten:
Wählen Sie im Abschnitt Überwachung die Option Diagnoseprotokolle aus:
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 .
Geben Sie für Name der Diagnoseeinstellung einen Namen für Ihre Diagnoseprotokolleinstellungen ein.
Wählen Sie In einem Speicherkonto archivieren und dann CoreAnalytics.
Wählen Sie für Beibehaltungsdauer (Tage) die Anzahl der Aufbewahrungstage. Bei einer Aufbewahrung von 0 Tagen werden die Protokolle dauerhaft gespeichert.
Wählen Sie das Abonnement und Speicherkonto für die Protokolle aus.
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 .
Geben Sie für Name der Diagnoseeinstellung einen Namen für Ihre Diagnoseprotokolleinstellungen ein.
Wählen Sie An Log Analytics senden und anschließend CoreAnalytics aus.
Wählen Sie das Abonnement und den Log Analytics-Arbeitsbereich für die Protokolle aus.
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 .
Geben Sie für Name der Diagnoseeinstellung einen Namen für Ihre Diagnoseprotokolleinstellungen ein.
Wählen Sie An einen Event Hub streamen und anschließend CoreAnalytics aus.
Wählen Sie das Abonnement und den Event Hub-Namespace für die Protokolle aus.
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
Melden Sie sich bei Azure PowerShell an:
Connect-AzAccount
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
Melden Sie sich bei Azure PowerShell an:
Connect-AzAccount
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
Melden Sie sich bei Azure PowerShell an:
Connect-AzAccount
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.
- Öffnen Sie den Microsoft Azure Storage-Explorer.
- Ermitteln Sie das Speicherkonto.
- Erweitern Sie den Knoten Blobcontainer unter diesem Speicherkonto.
- Wählen Sie den Container mit dem Namen insights-logs-coreanalytics aus.
- 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.
- 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.
- 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:
- Nutzen Sie den GitHub-Link: https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
- Laden Sie den Code herunter.
- Befolgen Sie die Anleitung zum Kompilieren und Konfigurieren.
- Führen Sie das Tool aus.
- 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
}