Surveillance en temps réel, métriques et journaux d’accès pour Azure CDN
Grâce à Azure CDN de Microsoft, vous pouvez surveiller les ressources des manières suivantes pour vous aider à résoudre, suivre et déboguer les problèmes :
- Les journaux bruts, qui fournissent des informations détaillées sur chaque requête reçue par CDN. Les journaux bruts diffèrent des journaux d’activité. Les journaux d’activité apportent une visibilité dans les opérations effectuées sur des ressources Azure.
- Les métriques, qui affichent quatre métriques clés relatives à CDN, notamment le taux d’accès par octet, le nombre de requêtes, la taille de la réponse et la latence totale. Différentes dimensions sont également fournies pour décomposer les métriques.
- Les alertes, qui permettent au client de configurer une alerte pour les métriques clés.
- Des métriques supplémentaires, qui permettent aux clients d’utiliser Azure Log Analytics pour activer des métriques supplémentaires de valeur. Nous fournissons également des exemples de requêtes pour quelques autres métriques sous Azure Log Analytics.
Important
La fonctionnalité des journaux bruts HTTP est disponible pour Azure CDN à partir de Microsoft.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Connexion à Azure
Connectez-vous au portail Azure.
Configuration – Portail Azure
Pour configurer les journaux bruts de votre instance Azure CDN à partir du profil Microsoft :
Dans le menu du portail Azure, sélectionnez Toutes les ressources>><votre_profil_CDN>.
Sous Supervision, sélectionnez Paramètres de diagnostic.
Sélectionnez + Ajouter le paramètre de diagnostic.
Important
Les journaux bruts sont disponibles uniquement au niveau du profil, tandis que les journaux agrégés des codes d’état HTTP sont disponibles au niveau du point de terminaison.
Sous Paramètres de diagnostic, entrez un nom pour le paramètre de diagnostic sous Nom des paramètres de diagnostic.
Sélectionnez le journal AzureCdnAccessLog et définissez la rétention en jours.
Sélectionnez les Détails de la destination. Les options de destination sont les suivantes :
- Envoyer à Log Analytics
- Sélectionnez l’Abonnement et l’Espace de travail Log Analytics.
- Archiver dans un compte de stockage
- Sélectionnez l’Abonnement et le Compte de stockage.
- Diffuser vers un hub d’événements
- Sélectionnez l’Abonnement, l’Espace de noms du hub d’événements, le Nom du hub d’événements (facultatif) et le Nom de la stratégie du hub d’événements.
- Envoyer à Log Analytics
Sélectionnez Enregistrer.
Configuration – Azure PowerShell
Utilisez Set-AzDiagnosticSetting pour configurer le paramètre de diagnostic des journaux bruts.
Les données conservées sont définies par l’option -RetentionInDays dans la commande.
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
Activer les journaux de diagnostic dans un compte de stockage
Connectez-vous à Azure PowerShell :
Connect-AzAccount
Pour activer les journaux de diagnostic dans un compte de stockage, entrez ces commandes. Remplacez les variables par vos valeurs :
## 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
Activer les journaux de diagnostic pour l’espace de travail Log Analytics
Connectez-vous à Azure PowerShell :
Connect-AzAccount
Pour activer les journaux de diagnostic pour un espace de travail Log Analytics, entrez ces commandes. Remplacez les variables par vos valeurs :
## 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
Activer les journaux de diagnostic pour l’espace de noms Event Hub
Connectez-vous à Azure PowerShell :
Connect-AzAccount
Pour activer les journaux de diagnostic pour un espace de noms Event Hubs, entrez ces commandes. Remplacez les variables par vos valeurs :
## 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
Propriétés des journaux bruts
Azure CDN du service Microsoft fournit actuellement des journaux bruts. Les journaux bruts présentent chaque requête d’API individuellement, chaque entrée appliquant le schéma suivant :
Propriété | Description |
---|---|
BackendHostname | Si la requête est transférée à un serveur principal, ce champ représente le nom d’hôte du serveur principal. Ce champ est vide si la requête est redirigée ou transférée vers un cache régional (lorsque la mise en cache est activée pour la règle d’acheminement). |
CacheStatus | Pour les scénarios de mise en cache, ce champ définit une absence/une correspondance dans le cache au niveau POP |
ClientIp | Adresse IP du client à l’origine de la demande. S’il existait un en-tête X-Forwarded-For dans la demande, l’adresse IP du client est sélectionnée de la même façon. |
ClientPort | Adresse IP du port du client qui a effectué la requête. |
HttpMethod | Méthode HTTP utilisée par la requête. |
HttpStatusCode | Code d’état HTTP retourné par le proxy. Si une requête adressée à l’origine expire, la valeur de HttpStatusCode est définie sur 0. |
HttpStatusDetails | État résultant de la requête. Vous trouverez la signification de cette valeur de chaîne dans la Table de référence des états. |
HttpVersion | Type de la requête ou de la connexion. |
POP | Nom abrégé de la périphérie où la demande est arrivée. |
RequestBytes | Taille du message de requête HTTP en octets, en-têtes de requête et corps de requête compris. |
RequestUri | URI de la requête reçue. |
ResponseBytes | Octets envoyés en tant que réponse par le serveur back-end. |
RoutingRuleName | Nom de la règle de routage correspondant à la requête. |
RulesEngineMatchNames | Noms des règles correspondant à la demande. |
SecurityProtocol | Version du protocole TLS/SSL utilisée par la requête, ou Null si aucun chiffrement. |
SentToOriginShield (déprécié) * Consultez les notes sur la dépréciation dans la section suivante. |
Si la valeur est true, cela signifie que la requête a été traitée à partir du cache de protection d’origine au lieu du pop de périphérie. La protection d’origine est un cache parent utilisé pour améliorer le taux d’accès au cache. |
isReceivedFromClient | Si la valeur est true, cela signifie que la requête provient du client. Si la valeur est false, la requête est en échec dans la périphérie (POP enfant) et reçoit une réponse à partir de la protection d’origine (POP parent). |
TimeTaken | Durée, en secondes, écoulée entre le premier octet de la requête Azure Front Door et le dernier octet de la réponse. |
TrackingReference | Chaîne de référence unique qui identifie une requête traitée par Azure Front Door, également envoyée en tant qu’en-tête X-Azure-Ref au client. Nécessaire pour pouvoir effectuer une recherche détaillée dans les journaux d’accès pour une requête spécifique. |
UserAgent | Type de navigateur utilisé par le client. |
ErrorInfo | Ce champ contient le type d’erreur spécifique permettant de réduire la zone de résolution des problèmes. Les valeurs possibles sont les suivantes : NoError : Indique qu’aucune erreur n’a été trouvée. CertificateError: Erreur de certificat SSL générique. CertificateNameCheckFailed : Le nom d’hôte dans le certificat SSL n’est pas valide ou ne correspond pas. ClientDisconnected : Échec de la requête en raison de la connexion réseau du client. UnspecifiedClientError : Erreur du client générique. InvalidRequest : Requête non valide. Cela peut se produire en raison d’un en-tête, d’un corps et d’une URL incorrect(e)s. DNSFailure : Échec de DNS. DNSNameNotResolved : Le nom ou l’adresse du serveur n’a pas pu être résolu. OriginConnectionAborted : La connexion avec l’origine a été brusquement interrompue. OriginConnectionError : Erreur de connexion d’origine générique. OriginConnectionRefused : La connexion avec l’origine n’a pas pu être établie. OriginError : Erreur d’origine générique. OriginInvalidResponse : L’origine a retourné une réponse non valide ou non reconnue. OriginTimeout : Le délai d’expiration de la requête d’origine a expiré. ResponseHeaderTooBig : L’origine a retourné un en-tête de réponse trop grand. RestrictedIP : La requête a été bloquée en raison d’une adresse IP restreinte. SSLHandshakeError : Impossible d’établir la connexion avec l’origine en raison d’un échec d’établissement d’une liaison SSL. UnspecifiedError : une erreur ne correspondant à aucune des erreurs dans le tableau s’est produite. |
TimeToFirstByte | Durée, en millisecondes, entre le moment où Microsoft CDN reçoit la requête et le moment où le premier octet est envoyé au client. La durée est mesurée uniquement du côté de Microsoft. Les données côté client ne sont pas mesurées. |
Result | SSLMismatchedSNI est un code d’état qui signifie une requête réussie avec un avertissement d’incompatibilité entre l’indication du nom du serveur (SNI) et l’en-tête de l’hôte. Ce code d’état implique une utilisation de domaine-écran, une technique qui enfreint les conditions d’utilisation du service Azure Front Door. Les requêtes avec SSLMismatchedSNI lesquelles elles seront rejetées après le 22 janvier 2024. |
SNI | Ce champ spécifie l’indication de nom du serveur (SNI) envoyée lors de l’établissement d’une liaison TLS/SSL. Il peut être utilisé pour identifier la valeur SNI exacte s’il existe un code d’état SSLMismatchedSNI . En outre, il peut être comparé à la valeur de l’hôte dans le champ requestUri pour détecter et résoudre le problème d’incompatibilité. |
Remarque
Vous pouvez voir les journaux sous votre profil Log Analytics en exécutant une requête. Voici un exemple de requête : AzureDiagnostics | where Category == "AzureCdnAccessLog"
Dépréciation de Sent to origin shield
La propriété de journal brut isSentToOriginShield est déconseillée et remplacée par un nouveau champ isReceivedFromClient. Utilisez le nouveau champ si vous utilisez déjà le champ déconseillé.
Les journaux bruts incluent les journaux générés à partir de la périphérie de CDN (POP enfant) et de la protection d’origine. La protection d’origine fait référence aux nœuds parents qui se trouvent stratégiquement dans le monde entier. Ces nœuds communiquent avec les serveurs d’origine et réduisent la charge du trafic sur l’origine.
Pour chaque requête qui accède à une protection d’origine, il existe deux entrées de journal :
- une pour les nœud de périphérie
- l’autre pour la protection d’origine
Pour différencier la sortie ou les réponses des nœuds de périphérie par rapport à la protection d’origine, vous pouvez utiliser le champ isReceivedFromClient pour récupérer les données correctes.
Si la valeur est false, cela signifie que la requête reçoit une réponse de la protection d’origine jusqu’aux nœuds de périphérie. Cette approche est efficace pour comparer les journaux bruts aux données de facturation. Les frais ne sont pas facturés pour la sortie de la protection d’origine jusqu’aux nœuds de périphérie. Des frais sont facturés pour la sortie des nœuds de périphérie jusqu’aux clients.
Exemple de requête Kusto pour exclure les journaux générés sur la protection d’origine dans Log Analytics.
AzureDiagnostics
| where OperationName == "Microsoft.Cdn/Profiles/AccessLog/Write" and Category == "AzureCdnAccessLog"
| where isReceivedFromClient == true
Important
La fonctionnalité des journaux bruts HTTP est disponible automatiquement pour tous les profils créés ou mis à jour après le 25 février 2020. Pour les profils CDN créés précédemment, vous devez mettre à jour le point de terminaison CDN après la configuration de la journalisation. Par exemple, vous pouvez accéder au filtrage géographique sous les points de terminaison CDN et bloquer tous les pays/régions qui ne sont pas pertinents pour votre charge de travail, puis cliquer sur Enregistrer.
Mesures
Azure CDN de Microsoft est intégré à Azure Monitor et publie quatre métriques CDN pour faciliter le suivi, la résolution et le débogage des problèmes.
Les métriques sont affichées dans des graphiques et sont accessibles via PowerShell, l’interface CLI et l’API. Les métriques CDN sont gratuites.
Azure CDN de Microsoft mesure et envoie ses métriques par intervalles de 60 secondes. Les métriques peuvent prendre jusqu’à 3 minutes pour s’afficher dans le portail.
Pour plus d’informations, voir Mesures Azure Monitor.
Métriques prises en charge par Azure CDN de Microsoft
Mesures | Description | Dimensions |
---|---|---|
Taux d’accès par octet* | Pourcentage de sortie du cache CDN, calculé par rapport à la sortie totale. | Point de terminaison |
RequestCount | Nombre de requêtes de clients prises en charge par CDN. | Point de terminaison Pays du client. Région du client. État HTTP. Groupe d’états HTTP. |
ResponseSize | Nombre d’octets envoyés en tant que réponses de la périphérie de CDN aux clients. | Point de terminaison Pays du client. Région du client. État HTTP. Groupe d’états HTTP. |
TotalLatency | Durée totale de la requête du client reçue par CDN jusqu’au dernier octet de réponse envoyé de CDN au client. | Point de terminaison Pays du client. Région du client. État HTTP. Groupe d’états HTTP. |
Remarque
Si une requête adressée à l’origine expire, la valeur de HttpStatusCode est définie sur 0.
*Taux d’accès en octets = (sortie de la périphérie - sortie de l’origine)/sortie de la périphérie
Scénarios exclus du calcul du taux d’accès par octet :
- Vous ne configurez explicitement aucun cache par le biais du comportement de mise en cache des chaînes de requête ou du moteur de règles.
- Vous configurez explicitement une directive de contrôle du cache avec un cache privé ou sans magasin.
Configuration des métriques
Dans le menu du portail Azure, sélectionnez Toutes les ressources>><votre_profil_CDN>.
Sous Supervision, sélectionnez Métriques :
Sélectionnez Ajouter une métrique, puis sélectionnez la métrique à ajouter :
Sélectionnez Ajouter un filtre pour ajouter un filtre :
Sélectionnez Appliquer le fractionnement pour afficher la tendance selon différentes dimensions :
Sélectionnez Nouveau graphique pour ajouter un nouveau graphique :
Alertes
Vous pouvez configurer des alertes sur Microsoft CDN en sélectionnant Supervision>>Alertes.
Sélectionnez Nouvelle règle d’alerte pour les métriques répertoriées dans la section Métriques :
L’alerte est facturée conformément à Azure Monitor. Pour plus d’informations sur les alertes, consultez Alertes Azure Monitor.
Métriques supplémentaires
Vous pouvez activer des métriques supplémentaires à l’aide d’Azure Log Analytics et des journaux bruts pour un coût supplémentaire.
Procédez comme expliqué dans la section précédente pour permettre aux diagnostics d’envoyer un journal brut à Log Analytics.
Sélectionnez l’espace de travail Log Analytics que vous avez créé :
Sous Général dans l’espace de travail Log Analytics, sélectionnez Journaux. Sélectionnez ensuite Prise en main.
Sélectionnez Profils CDN. Sélectionnez un exemple de requête à exécuter ou fermez l’écran d’exemple pour entrer une requête personnalisée :
Pour afficher les données par graphique, sélectionnez Graphique. Sélectionnez Épingler au tableau de bord pour épingler le graphique au tableau de bord Azure :
Étapes suivantes
Dans cet article, vous avez activé les journaux bruts HTTP pour le service CDN Microsoft.
Pour plus d’informations sur Azure CDN et les autres services Azure mentionnés dans cet article, consultez :
Analyser des modèles d’utilisation Azure CDN.
En savoir plus sur Azure Monitor.
Configurer Log Analytics dans Azure Monitor.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour