Journaux de diagnostic – Azure Content Delivery Network
Important
Azure CDN Standard de Microsoft (classique) sera mis hors service le 30 septembre 2027. Pour éviter toute interruption de service, il est important de migrer vos profils du niveau Azure CDN Standard de Microsoft (classique) vers le niveau Azure Front Door Standard ou Premium au plus tard le 30 septembre 2027. Pour découvrir plus d’informations, consultez Mise hors service d’Azure CDN Standard de Microsoft (classique).
Azure CDN d’Edgio sera mis hors service le 15 janvier 2025. Pour éviter toute interruption de service, vous devez migrer votre charge de travail vers Azure Front Door avant cette date. Pour plus d’informations, consultez la FAQ sur la mise hors service d’Azure CDN d’Edgio.
Les journaux de diagnostic Azure permettent d’afficher l’analytique principale et de l’enregistrer dans une ou plusieurs destinations, dont les suivantes :
- Compte de Stockage Azure
- Espace de travail Log Analytics
- Azure Event Hubs
Cette fonctionnalité est disponible sur les points de terminaison de réseau de distribution de contenu à tous les niveaux tarifaires.
Les journaux de diagnostic vous permettent d’exporter des métriques d’utilisation de base de votre point de terminaison de réseau de distribution de contenu vers différents types de sources afin de pouvoir les utiliser de façon personnalisée. Voici les types d’exportation de données que vous pouvez effectuer :
- Exporter des données vers un stockage d’objets blob, exporter au format CSV et générer des graphiques dans Excel.
- Exporter des données vers des hubs d’événements et mettre les données en corrélation avec d’autres services Azure.
- Exporter des données vers des journaux Azure Monitor et afficher les données dans votre propre espace de travail Log Analytics
Un profil Azure Content Delivery Network est nécessaire pour les étapes suivantes. Reportez-vous à Créer un profil et un point de terminaison Azure Content Delivery Network avant de continuer.
Activation de la journalisation avec le portail Azure
Procédez comme suit pour activer la journalisation pour votre point de terminaison Azure Content Delivery Network :
Connectez-vous au portail Azure.
Sur le Portail Azure, accédez à Toutes les ressources>votre-profil-cdn.
Sélectionnez le point de terminaison de réseau de distribution de contenu pour lequel vous souhaitez activer les journaux de diagnostic :
Dans la section Supervision, sélectionnez Journaux de diagnostic :
Activation de la journalisation avec Stockage Azure
Pour utiliser un compte de stockage afin de stocker les journaux d’activité, effectuez les étapes suivantes :
Notes
Un compte de stockage est nécessaire pour effectuer ces étapes. Consultez : Créer un compte Stockage Azure pour plus d’informations.
Pour Nom des paramètres de diagnostic, entrez un nom pour les paramètres du journal de diagnostic.
Sélectionnez Archiver dans un compte de stockage, puis CoreAnalytics.
Dans le champ Rétention (jours) , choisissez le nombre de jours de rétention. Si la valeur zéro est appliquée à la rétention, les journaux d’activité sont stockés pour une durée indéfinie.
Sélectionnez l’abonnement et le compte de stockage pour les journaux.
Sélectionnez Enregistrer.
Envoyer à Log Analytics
Pour utiliser Log Analytics pour les journaux, suivez ces étapes :
Notes
Un espace de travail Log Analytics est nécessaire pour effectuer ces étapes. Consultez : Créer un espace de travail Log Analytics sur le portail Azure pour plus d’informations.
Pour Nom des paramètres de diagnostic, entrez un nom pour les paramètres du journal de diagnostic.
Sélectionnez Envoyer à Log Analytics, puis CoreAnalytics.
Sélectionnez l’abonnement et l’espace de travail Log Analytics pour les journaux.
Sélectionnez Enregistrer.
Diffuser vers un hub d’événements
Pour utiliser un hub d’événements pour les journaux, suivez ces étapes :
Notes
Un hub d’événements est nécessaire pour effectuer ces étapes. Consultez : Démarrage rapide : Créer un hub d’événements avec le portail Azure pour plus d’informations.
Pour Nom des paramètres de diagnostic, entrez un nom pour les paramètres du journal de diagnostic.
Sélectionnez Diffuser vers Event Hub, puis CoreAnalytics.
Sélectionnez l’abonnement et l’espace de noms Event Hub pour les journaux.
Sélectionnez Enregistrer.
Activer la journalisation avec PowerShell
L’exemple suivant montre comment activer les journaux de diagnostic via les applets de commande Azure PowerShell.
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, 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 :
$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
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 :
$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
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 travail Log Analytics, entrez ces commandes. Remplacez les variables par vos valeurs :
$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
Utilisation des journaux de diagnostic à partir de Stockage Azure
Cette section décrit le schéma de l’analytique principale du réseau de distribution de contenu et l’organisation dans un compte de Stockage Azure, et fournit un exemple de code pour télécharger les journaux dans un fichier CSV.
Utilisation de l’explorateur de stockage Microsoft Azure
Pour télécharger l’outil, consultez Explorateur de stockage Azure. Après le téléchargement et l’installation du logiciel, configurez-le pour utiliser le même compte de Stockage Azure que celui qui a été configuré en tant que destination pour les journaux de diagnostic du réseau de distribution de contenu.
- Ouvrez l’explorateur de stockage Microsoft Azure
- Localiser le compte de stockage
- Développez le nœud Conteneurs d’objets Blob sous ce compte de stockage.
- Sélectionnez le conteneur nommé journaux-insights-coreanalytics.
- Les résultats s’affichent dans le volet droit, en commençant par le premier niveau, soir resourceId= . Continuez à sélectionner chaque niveau jusqu’à atteindre le fichier PT1H.json. Pour obtenir une explication sur le chemin, consultez Format du chemin des objets blob.
- Chaque fichier d’objet blob PT1H.json représente les journaux d’activité d’analyse pendant une heure pour un point de terminaison de réseau de distribution de contenu spécifique ou son domaine personnalisé.
- Le schéma du contenu de ce fichier JSON est décrit dans la section Schéma des journaux d’activité Core Analytics.
Format du chemin des objets blob
Les journaux d’activité Core Analytics sont générés toutes les heures et les données sont collectées et stockées dans un objet blob Azure unique sous forme de charge utile JSON. L’outil Explorateur de stockage interprète '/' comme un séparateur de répertoire et affiche la hiérarchie. Le chemin de l’objet blob Azure apparaît comme s’il existait une structure hiérarchique et représente le nom de l’objet blob. Ce nom d’objet blob suit la convention d’affectation de noms suivante :
resourceId=/SUBSCRIPTIONS/{Subscription Id}/RESOURCEGROUPS/{Resource Group Name}/PROVIDERS/MICROSOFT.CDN/PROFILES/{Profile Name}/ENDPOINTS/{Endpoint Name}/ y=/m=/d=/h=/m=/PT1H.json
Description des champs :
Valeur | Description |
---|---|
Identifiant d’abonnement | ID de l’abonnement Azure au format GUID (Global Unique Identifier, Identificateur global unique). |
Nom du groupe de ressources | Nom du groupe de ressources auquel appartiennent les ressources de réseau de distribution de contenu. |
Nom de profil | Nom du profil de réseau de distribution de contenu |
Nom du point de terminaison | Nom du point de terminaison de réseau de distribution de contenu |
Year | Représentation à quatre chiffres de l’année, par exemple, 2017 |
Month | Représentation à deux chiffres du mois de l’année. 01 = Janvier ... 12 = Décembre |
jour | Représentation à deux chiffres du jour du mois |
PT1H.json | Fichier JSON où sont effectivement stockées les données d’analyse |
Exportation des données de Core Analytics vers un fichier CSV
Pour accéder à l’analytique principale, un exemple de code pour un outil est fourni. Cet outil permet de télécharger les fichiers JSON dans un format de fichier plat avec séparation par virgules, qui peut être utilisé pour créer des graphiques ou autres agrégations.
Voici comment vous pouvez utiliser l’outil :
- Consultez le lien GitHub : https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
- Téléchargez le code.
- Suivez les instructions pour la compilation et la configuration.
- Exécutez l’outil.
- Le fichier CSV résultant présente les données d’analyse dans une hiérarchie plate simple.
Retards des données de journal
Le tableau suivant présente les retards des données de journal pour Azure CDN Standard fourni par Microsoft et Azure CDN Standard/Premium fourni par Edgio.
Retards des données de journal Microsoft | Retards des données de journal Edgio |
---|---|
Retard de 1 heure. | Retard de 1 heure et possibilité de nécessiter jusqu’à 2 heures pour commencer à apparaître après l’achèvement de la propagation du point de terminaison. |
Types de journaux de diagnostic pour l’analytique principale du réseau de distribution de contenu
Actuellement, Microsoft propose uniquement les journaux d’activité de l’analytique principale, qui contiennent les métriques affichant les statistiques de réponse HTTP et de sortie, comme dans les points de présence/périmètres du réseau de distribution de contenu.
Détails des métriques de Core Analytics
Le tableau suivant présente la liste des métriques disponibles dans les journaux de l’analytique principale pour :
- Azure CDN Standard par Microsoft
- Azure CDN Standard/Premium fourni par Edgio
Toutes les métriques ne sont pas disponibles auprès tous les fournisseurs, même si ces différences sont minimes. Ce tableau indique également si une métrique donnée est disponible à partir d’un fournisseur particulier. Les métriques sont disponibles uniquement pour les points de terminaison de réseau de distribution de contenu recevant du trafic.
Métrique | Description | Microsoft | Edgio |
---|---|---|---|
RequestCountTotal | Nombre total d’occurrences de requêtes pendant cette période. | Oui | Oui |
RequestCountHttpStatus2xx | Nombre total des requêtes ayant abouti à un code HTTP 2xx (par exemple, 200, 202). | Oui | Oui |
RequestCountHttpStatus3xx | Nombre total des requêtes ayant abouti à un code HTTP 3xx (par exemple, 300, 302). | Oui | Oui |
RequestCountHttpStatus4xx | Nombre total des requêtes ayant abouti à un code HTTP 4xx (par exemple, 400, 404). | Oui | Oui |
RequestCountHttpStatus5xx | Nombre total des requêtes ayant abouti à un code HTTP 5xx (par exemple, 500, 504). | Oui | Oui |
RequestCountHttpStatusOthers | Nombre total des autres codes HTTP (en dehors de 2xx-5xx). | Oui | Oui |
RequestCountHttpStatus200 | Nombre total des requêtes ayant abouti à un code HTTP 200. | Oui | Non |
RequestCountHttpStatus206 | Nombre total des requêtes ayant abouti à un code HTTP 206. | Oui | Non |
RequestCountHttpStatus302 | Nombre total des requêtes ayant abouti à un code HTTP 302. | Oui | Non |
RequestCountHttpStatus304 | Nombre total des requêtes ayant abouti à un code HTTP 304. | Oui | Non |
RequestCountHttpStatus404 | Nombre total des requêtes ayant abouti à un code HTTP 404. | Oui | Non |
RequestCountCacheHit | Nombre de toutes les requêtes qui ont abouti à un accès au cache. La ressource a été traitée directement du point de présence vers le client. | Oui | Oui |
RequestCountCacheMiss | Nombre de toutes les requêtes qui ont abouti à un échec de cache. Un échec de cache signifie que la ressource est introuvable sur le point de présence le plus proche du client et qu’elle a été récupérée à l’origine. | Oui | Oui |
RequestCountCacheNoCache | Nombre de requêtes vers une ressource qui sont empêchées d’être mises en cache en raison d’une configuration utilisateur sur le périmètre. | Oui | Oui |
RequestCountCacheUncacheable | Nombre de toutes les demandes envoyées aux ressources ne pouvant pas être mises en cache en raison de leurs en-têtes Cache-Control et Expires. Ce nombre indique qu’elles ne doivent pas être mises en cache sur un point de présence ou par le client HTTP. | Oui | Oui |
RequestCountCacheOthers | Nombre de toutes les demandes avec un état de cache non couvert par les métriques listées précédemment. | Non | Oui |
EgressTotal | Transfert de données sortantes en Go | Oui | Oui |
EgressHttpStatus2xx | Transfert de données sortantes* pour les réponses avec des codes d’état HTTP 2xx en Go. | Oui | Oui |
EgressHttpStatus3xx | Transfert de données sortantes pour les réponses avec des codes d’état HTTP 3xx en Go. | Oui | Oui |
EgressHttpStatus4xx | Transfert de données sortantes pour les réponses avec des codes d’état HTTP 4xx en Go. | Oui | Oui |
EgressHttpStatus5xx | Transfert de données sortantes pour les réponses avec des codes d’état HTTP 5xx en Go. | Oui | Oui |
EgressHttpStatusOthers | Transfert de données sortantes pour les réponses avec d’autres codes d’état HTTP en Go. | Oui | Oui |
EgressCacheHit | Transfert de données sortantes pour les réponses qui ont été livrées directement à partir du cache de réseau de distribution de contenu sur les points de présence/périmètres de réseau de distribution de contenu. | Oui | Oui |
EgressCacheMiss. | Transfert de données sortantes pour les réponses qui n’ont pas été trouvées sur le serveur POP le plus proche et qui ont été récupérées à partir du serveur d’origine. | Oui | Oui |
EgressCacheNoCache | Transferts de données sortants pour les ressources qui sont empêchés d’être mises en cache en raison d’une configuration l’utilisateur sur le périmètre. | Oui | Oui |
EgressCacheUncacheable | Transfert de données sortant pour les ressources ne pouvant pas être mises en cache en raison de leurs en-têtes Cache-Control et/ou Expires. Cela indique qu’elles ne doivent pas être mises en cache sur un point de présence ou par le client HTTP. | Oui | Oui |
EgressCacheOthers | Transfère les données sortantes pour d’autres scénarios de cache. | Non | Oui |
* Le transfert de données sortantes fait référence au trafic produit des serveurs POP de réseau de distribution de contenu vers le client.
Schéma des journaux d’activité Core Analytics
Tous les journaux d’activité sont stockés au format JSON, et chaque entrée comprend des champs de chaîne conformément au schéma suivant :
"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,
}
}
]
}
Où time représente l’heure de début des limites d’heure pour lesquelles les statistiques sont rapportées. Une métrique non prise en charge par un fournisseur de réseau de distribution de contenu donne une valeur Nulle et non un entier ou un double. Cette valeur null indique l’absence de métrique, et diffère de la valeur 0. Un ensemble de ces métriques par domaine est configuré sur le point de terminaison.
Exemple de propriétés :
{
"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
}