Echtzeitüberwachung, Metriken und Zugriffsprotokolle für Azure CDN
Mit Azure CDN von Microsoft können Sie Ressourcen auf folgende Weise überwachen, um Probleme zu behandeln, nachzuverfolgen und zu debuggen.
- Unformatierte Protokolle enthalten umfangreiche Informationen zu jeder Anforderung, die in CDN empfangen wird. Unformatierte Protokolle unterscheiden sich von Aktivitätsprotokollen. Aktivitätsprotokolle geben Einblicke in die Vorgänge, die für Azure-Ressourcen ausgeführt wurden.
- Metriken, die u. a. vier wichtige Metriken in CDN anzeigen: Bytetrefferquote, Anforderungsanzahl, Antwortgröße und Gesamtlatenz. Außerdem stehen unterschiedliche Dimensionen zur Aufschlüsselung von Metriken zur Verfügung.
- Kunden können Warnungen für wichtige Metriken einrichten.
- Kunden können über Azure Log Analytics weitere nützliche Metriken aktivieren. Auch werden Abfragebeispiele für einige andere Metriken unter Azure Log Analytics bereitgestellt.
Wichtig
Das Feature für unformatierte HTTP-Protokolle ist für Azure CDN von Microsoft verfügbar.
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Anmelden bei Azure
Melden Sie sich beim Azure-Portal an.
Konfiguration – Azure-Portal
So konfigurieren Sie unformatierte Protokolle für Azure CDN über Microsoft-Profile
Wählen Sie im Menü des Azure-Portals Alle Ressourcen>><Ihr-CDN-Profil>> aus.
Wählen von unter Überwachung die Option Diagnoseeinstellungen aus.
Wählen Sie +Diagnoseeinstellung hinzufügen aus.
Wichtig
Unformatierte Protokolle sind nur auf Profilebene verfügbar, während aggregierte HTTP-Statuscodeprotokolle auf Endpunktebene verfügbar sind.
Geben Sie unter Diagnoseeinstellungen einen Namen für die Diagnoseeinstellung unter Name der Diagnoseeinstellungen ein.
Wählen Sie AzureCdnAccessLog aus, und legen Sie die Aufbewahrungsdauer in Tagen fest.
Wählen Sie die Zieldetails aus. Folgende Optionen für das Ziel sind verfügbar:
- An Log Analytics senden
- Wählen Sie das Abonnement und den Log Analytics-Arbeitsbereich aus.
- In einem Speicherkonto archivieren
- Wählen Sie das Abonnement und das Speicherkonto aus.
- An einen Event Hub streamen
- Wählen Sie das Abonnement, den Event Hub-Namespace, den Event Hub-Namen (optional) und den Event Hub-Richtliniennamen aus.
- An Log Analytics senden
Wählen Sie Speichern aus.
Konfiguration – Azure PowerShell
Verwenden Sie Set-AzDiagnosticSetting, um die Diagnoseeinstellung für unformatierte Protokolle zu konfigurieren.
Aufbewahrungsdaten werden durch die Option -RetentionInDays im Befehl definiert.
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 des Azure Az PowerShell-Moduls. 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:
## Variables for the commands ## $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> $days = '30' $cdn = Get-AzCdnProfile -ResourceGroupName $rsg -ProfileName $cdnprofile $storage = Get-AzStorageAccount -ResourceGroupName $rsg -Name $storageacct Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -StorageAccountId $storage.id -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
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:
## Variables for the commands ## $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> $days = '30' $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 -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
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 Event Hub-Namespace zu aktivieren. Ersetzen Sie die Variablen durch Ihre Werte:
## Variables for the commands ## $rsg = <your-resource-group-name> $cdnprofile = <your-cdn-profile-name> $cdnendpoint = <your-cdn-endpoint-name> $evthubnamespace = <your-event-hub-namespace-name> $diagname = <your-diagnostic-setting-name> $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint $eventhub = Get-AzEventHubNamespace -ResourceGroupName $rsg -Name $eventhubname Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -EventHubName $eventhub.id -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
Eigenschaften von unformatierten Protokollen
Azure CDN vom Microsoft-Dienst stellt zurzeit unformatierte Protokolle bereit. Unformatierte Protokolle enthalten einzelne API-Anforderungen, wobei jeder Eintrag folgendem Schema entspricht:
Eigenschaft | BESCHREIBUNG |
---|---|
BackendHostname | Wenn die Anforderung an ein Back-End weitergeleitet wird, stellt dieses Feld den Hostnamen des Back-Ends dar. Dieses Feld ist leer, wenn die Anforderung umgeleitet oder an einen regionalen Cache weitergeleitet wird (sofern Zwischenspeicherung für die Routingregel aktiviert wurde). |
CacheStatus | Bei Zwischenspeicherungsszenarien definiert dieses Feld den Cachetreffer/Cachefehler im POP. |
ClientIp | Die IP-Adresse des Clients, der die Anforderung gestellt hat. Wenn in der Anforderung ein X-Forwarded-For-Header vorhanden ist, wird die Client-IP daraus ausgewählt. |
ClientPort | Der IP-Port des Clients, der die Anforderung gestellt hat. |
HttpMethod | Von der Anforderung verwendete HTTP-Methode |
HttpStatusCode | Der HTTP-Statuscode, der vom Proxy zurückgegeben wurde. Wenn eine Anforderung an den Ursprung mit einem Timeout endet, wird der Wert für „HttpStatusCode“ auf 0 festgelegt. |
HttpStatusDetails | Resultierender Status in der Anforderung. Informationen zur Bedeutung dieses Zeichenfolgenwerts finden Sie in der Verweistabelle zum Status. |
HttpVersion | Typ der Anforderung oder Verbindung. |
POP | Kurzname des Edges, in dem die Anforderung gelandet ist. |
RequestBytes | Die Größe der HTTP-Anforderungsnachricht in Byte, einschließlich Anforderungsheader und -text. |
RequestUri | URI der empfangenen Anforderung |
ResponseBytes | Die vom Back-End-Server als Antwort gesendeten Bytes. |
RoutingRuleName | Der Name der Routingregel, der die Anforderung entspricht. |
RulesEngineMatchNames | Die Namen der Regeln, mit denen die Anforderung übereinstimmte. |
SecurityProtocol | Die TLS-/SSL-Protokollversion, die von der Anforderung verwendet wird, oder NULL, wenn keine Verschlüsselung verwendet wird. |
SentToOriginShield (veraltet) * Hinweise dazu finden Sie im folgenden Abschnitt. |
Wenn der Wert TRUE ist, wurde die Anforderung vom Origin Shield-Cache anstelle des Edge-POP beantwortet. Origin Shield ist ein übergeordneter Cache zum Verbessern der Cachetrefferquote. |
isReceivedFromClient | Wenn dies „true“ ergibt, stammte die Anforderung vom Client. Wenn dies „false“ ergibt, ist die Anforderung ein Fehler in der Edge (untergeordneter POP) und wird von Origin Shield (übergeordneter POP) beantwortet. |
TimeTaken | Die Dauer vom ersten Byte der Anforderung an Azure Front Door bis zum letzten Byte der Antwort in Sekunden. |
TrackingReference | Die eindeutige Verweiszeichenfolge zur Identifizierung einer Anforderung, die von der Azure Front Door-Instanz verarbeitet wird. Diese wird auch als X-Azure-Ref-Header an den Client gesendet. Sie ist für die Suche nach Informationen in den Zugriffsprotokollen für eine bestimmte Anforderung erforderlich. |
UserAgent | Der vom Client verwendete Browsertyp |
ErrorInfo | Dieses Feld enthält den spezifischen Fehlertyp, um den Bereich der Problembehandlung einzugrenzen. Mögliche Werte sind: NoError: Gibt an, dass keine Fehler gefunden wurden. Generischer SSL-Zertifikatfehler: CertificateNameCheckFailed:Der Hostname im SSL-Zertifikat ist ungültig oder stimmt nicht überein. ClientDisconnected: Anforderungsfehler aufgrund der Clientnetzwerkverbindung. UnspecifiedClientError: Generischer Clientfehler. InvalidRequest: Ungültige Anforderung. Dies kann aufgrund einer falschen Formatierung von Header, Text und URL auftreten. DNSFailure: DNS-Fehler. DNSNameNotResolved: Der Servername oder die Adresse konnte nicht aufgelöst werden. OriginConnectionAborted: Die Verbindung mit dem Ursprung wurde nicht ordnungsgemäß getrennt. OriginConnectionError: Generischer Fehler der Ursprungsverbindung. OriginConnectionRefused: Die Verbindung mit dem Ursprung konnte nicht hergestellt werden. OriginError: Generischer Ursprungsfehler. OriginInvalidResponse: Der Ursprung hat eine ungültige oder unbekannte Antwort zurückgegeben. OriginTimeout: Das Zeitlimit für die Ursprungsanforderung ist abgelaufen. ResponseHeaderTooBig: Der Ursprung hat einen zu großen Antwortheader zurückgegeben. RestrictedIP: Die Anforderung wurde aufgrund einer eingeschränkten IP-Adresse blockiert. SSLHandshakeError: Aufgrund eines Fehlers beim SSL-Handshake kann keine Verbindung mit dem Ursprung hergestellt werden. UnspecifiedError: Es ist ein Fehler aufgetreten, der keinem Fehler in der Tabelle entspricht. |
TimeToFirstByte | Die Zeitspanne in Millisekunden zwischen dem Zeitpunkt, zu dem Microsoft CDN die Anforderung erhält, und dem Zeitpunkt, zu dem das erste Byte an den Client gesendet wird. Die Zeit wird nur auf Microsoft-Seite gemessen. Clientseitige Daten werden nicht gemessen. |
Ergebnis | SSLMismatchedSNI ist ein Statuscode, der eine erfolgreiche Anfrage mit einer Warnung über eine Fehlanpassung zwischen der Servernamensanzeige (Server Name Indication, SNI) und dem Host-Header anzeigt. Dieser Statuscode impliziert Domain Fronting, eine Technik, die gegen die Nutzungsbedingungen von Azure Front Door verstößt. Anfragen mit SSLMismatchedSNI werden nach dem 22. Januar 2024 abgelehnt. |
SNI | Dieses Feld gibt die Servernamenanzeige (Server Name Indication, SNI) an, die während des TLS/SSL-Handshakes gesendet wird. Sie kann verwendet werden, um den genauen SNI-Wert zu identifizieren, wenn ein SSLMismatchedSNI -Statuscode vorhanden ist. Darüber hinaus kann sie mit dem Hostwert im requestUri -Feld verglichen werden, um das Problem der Fehlanpassung zu erkennen und zu beheben. |
Hinweis
Die Protokolle können unter Ihrem Log Analytics-Profil durch Ausführen einer Abfrage angezeigt werden. Eine Beispielabfrage sieht wie folgt aus: AzureDiagnostics | where Category == "AzureCdnAccessLog"
An eingestellte Unterstützung von Origin Shield gesendet
Die unformatierte Protokolleigenschaft isSentToOriginShield ist eingestellt und durch ein neues Feld, isReceivedFromClient, ersetzt. Verwenden Sie das neue Feld, wenn Sie bereits das veraltete Feld verwenden.
Unformatierte Protokolle umfassen Protokolle, die sowohl über CDN Edge (untergeordneter POP) als auch Origin Shield generiert wurden. Origin Shield bezieht sich auf übergeordnete Knoten, die strategisch über den Globus verteilt sind. Diese Knoten kommunizieren mit den Ursprungsservern und reduzieren den Datenverkehr am Ursprung.
Für jede an Origin Shield gesendete Anforderung gibt es zwei Protokolleinträge:
- Einen für Edgeknoten.
- Einen für Origin Shield.
Um die ausgehenden Daten oder Antworten von den Edgeknoten von denen von Origin Shield zu unterscheiden, können Sie das Feld isReceivedFromClient verwenden, um die richtigen Daten zu erhalten.
Wenn der Wert „false“ ergibt, bedeutet dies, dass die Anforderung von Origin Shield bis zu den Edgeknoten beantwortet wird. Dieser Ansatz ist effektiv, um unformatierte Protokolle mit Abrechnungsdaten zu vergleichen. Für die ausgehenden Daten von Origin Shield zu den Edgeknoten fallen keine Gebühren an. Es fallen Gebühren für ausgehende Daten von den Edgeknoten zu Clients an.
Beispiel für eine Kusto-Abfrage zum Ausschließen von Protokollen, die von Origin Shield in Log Analytics generiert werden.
AzureDiagnostics
| where OperationName == "Microsoft.Cdn/Profiles/AccessLog/Write" and Category == "AzureCdnAccessLog"
| where isReceivedFromClient == true
Wichtig
Das Feature der unformatierten HTTP-Protokolle ist automatisch für alle Profile verfügbar, die nach dem 25. Februar 2020 erstellt oder aktualisiert wurden. Bei früher erstellten CDN-Profilen sollte der CDN-Endpunkt nach der Einrichtung der Protokollierung aktualisiert werden. Sie können z. B. zur geografischen Filterung unter CDN-Endpunkte navigieren und jedes Land/jede Region, das bzw. die für ihre Workload nicht relevant ist, blockieren und auf „Speichern“ klicken.
Metriken
Azure CDN von Microsoft ist mit Azure Monitor integriert und veröffentlicht vier CDN-Metriken, um Probleme zu behandeln, nachzuverfolgen und zu debuggen.
Die Metriken werden in Diagrammen angezeigt und können über PowerShell, die Befehlszeilenschnittstelle und die API aufgerufen werden. Die CDN-Metriken sind kostenlos verfügbar.
Die Metriken von Azure CDN von Microsoft werden in Intervallen von 60 Sekunden gemessen und gesendet. Es kann bis zu 3 Minuten dauern, bis die Metriken im Portal angezeigt werden.
Weitere Informationen finden Sie unter Azure Monitor-Metriken.
In Azure CDN von Microsoft unterstützte Metriken
Metriken | BESCHREIBUNG | Dimensionen |
---|---|---|
Bytetrefferquote* | Der Prozentsatz der ausgehenden Daten aus dem CDN-Cache, berechnet im Vergleich zu den ausgehenden Gesamtdaten | Endpunkt |
RequestCount | Die Anzahl der in CDN bereitgestellten Clientanforderungen | Endpunkt Land des Clients. Region des Client. HTTP-Status. HTTP-Statusgruppe. |
ResponseSize | Die Anzahl der vom CDN-Edge als Antworten an Clients gesendeten Bytes | Endpunkt Land des Clients. Region des Client. HTTP-Status. HTTP-Statusgruppe. |
TotalLatency | Die Gesamtzeit zwischen dem Empfang der Clientanforderung in CDN und dem letzten von CDN an den Client gesendeten Antwortbyte | Endpunkt Land des Clients. Region des Client. HTTP-Status. HTTP-Statusgruppe. |
Hinweis
Wenn eine Anforderung an den Ursprung mit einem Timeout endet, wird der Wert für den HttpStatusCode auf 0 festgelegt.
*Bytetrefferquote = (vom Edge ausgehende Daten - vom Ursprung ausgehende Daten)/vom Edge ausgehende Daten
Von der Berechnung der Bytetrefferquote ausgeschlossene Szenarien:
- Sie konfigurieren entweder über die Regel-Engine oder das Verhalten beim Zwischenspeichern von Abfragezeichenfolgen explizit keinen Cache.
- Sie konfigurieren die Cache-Control-Direktive explizit mit „no-store“ oder „private cache“.
Metrikkonfiguration
Wählen Sie im Menü des Azure-Portals Alle Ressourcen>><Ihr-CDN-Profil>> aus.
Wählen Sie unter Überwachung die Option Metriken aus:
Wählen Sie Metrik hinzufügen und dann die hinzuzufügende Metrik aus:
Wählen Sie Filter hinzufügen aus, um einen Filter hinzuzufügen:
Wählen Sie Apply splitting (Teilung anwenden) aus, um Trends nach verschiedenen Dimensionen anzuzeigen:
Wählen Sie Neues Diagramm aus, um ein neues Diagramm hinzuzufügen:
Alerts
Durch Auswählen von Überwachung>>Warnungen können Sie Warnungen für Microsoft CDN einrichten.
Wählen Sie Neue Warnungsregel für die im Abschnitt „Metriken“ aufgeführten Metriken aus:
Die Warnung wird basierend auf Azure Monitor abgerechnet. Weitere Informationen zu Warnungen finden Sie unter Azure Monitor-Warnungen.
Weitere Metriken
Sie können weitere Metriken mithilfe von Azure Log Analytics und unformatierte Protokolle mit Zusatzkosten aktivieren.
Führen Sie die Schritte im vorhergehenden Abschnitt aus, um die Diagnose zum Senden von unformatierten Protokollen an die Protokollanalyse zu aktivieren.
Wählen Sie den erstellten Log Analytics-Arbeitsbereich aus:
Wählen Sie im Log Analytics-Arbeitsbereich unter Allgemein die Option Protokolle aus. Wählen Sie dann Erste Schritte aus:
Wählen Sie CDN-Profile aus. Wählen Sie eine Beispielabfrage für die Ausführung aus, oder schließen Sie das Beispielfenster, um eine benutzerdefinierte Abfrage einzugeben:
Wählen Sie Diagramm aus, um Daten nach Diagrammen anzuzeigen. Wählen Sie An Dashboard anheften aus, um das Diagramm an das Azure-Dashboard anzuheften:
Nächste Schritte
In diesem Artikel haben Sie unformatierte HTTP-Protokolle für den Microsoft CDN-Dienst aktiviert.
Weitere Informationen zu Azure CDN und den anderen in diesem Artikel erwähnten Azure-Diensten finden Sie unter den folgenden Quellen:
Analysieren Sie Azure CDN-Verwendungsmuster.
Weitere Informationen zu Azure Monitor finden Sie hier.
Konfigurieren Sie Log Analytics in Azure Monitor.