Activer la journalisation des diagnostics pour les applications dans Azure App Service
Remarque
Depuis le 1er juin 2024, toutes les applications App Service nouvellement créées ont la possibilité de générer un nom d’hôte par défaut unique en utilisant la convention d’affectation de noms <app-name>-<random-hash>.<region>.azurewebsites.net
. Les noms d’application existants restent inchangés.
Exemple : myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Pour plus d’informations, reportez-vous à Nom d’hôte par défaut unique pour les ressources App Service.
Cette vidéo vous montre comment activer l’enregistrement des diagnostics pour les applications.
Les étapes de la vidéo sont également décrites dans les sections suivantes.
Vue d’ensemble
Azure fournit des diagnostics intégrés pour aider au débogage d’une application App Service. Cet article vous explique comment activer la journalisation de diagnostic et ajouter la fonctionnalité d’instrumentation à votre application, et comment accéder aux informations enregistrées par Azure.
Cet article utilise le portail Azure et Azure CLI pour l’exploitation des journaux de diagnostic. Pour plus d’informations sur l’utilisation de journaux de diagnostic avec Visual Studio, consultez Résolution des problèmes Azure dans Visual Studio.
Remarque
En plus des instructions de journalisation figurant dans cet article, vous pouvez également utiliser la fonctionnalité de journalisation intégrée Azure Monitor. Pour plus d’informations sur cette fonctionnalité, consultez la section Envoyer des journaux à Azure Monitor.
Type | Plateforme | Un emplacement de stockage de journal | Description |
---|---|---|---|
Journalisation des applications | Windows, Linux | Système de fichiers App Service et/ou objets blob de stockage Azure | Consigne les messages générés par votre code d’application. Les messages peuvent être générés par l’infrastructure web de votre choix ou directement à partir de votre code d’application à l’aide du modèle de journalisation standard de votre langage. Chaque message se voit attribuer l’une des catégories suivantes : Critique, Erreur, Avertissement, Info, Débogage ou Trace. Vous pouvez sélectionner le degré de détail de la journalisation en définissant le niveau de gravité lorsque vous activez la journalisation des applications. |
Journalisation du serveur web | Windows | Système de fichiers App Service ou objets blob de stockage Azure | Données de requête HTTP brutes au format de fichier journal étendu W3C. Chaque message de journalisation comprend des données telles que la méthode HTTP, l’URI de ressource, l’adresse IP du client, le port client, l’agent utilisateur, le code de réponse, etc. |
Messages d’erreur détaillés | Windows | Système de fichiers App Service | Copies des pages d’erreur .htm qui auraient été envoyées au navigateur client. Pour des raisons de sécurité, les pages d’erreur détaillées ne doivent pas être envoyées aux clients en production, mais App Service peut enregistrer la page d’erreur chaque fois qu’une erreur d’application se produit avec le code HTTP 400 ou supérieur. La page peut contenir des informations permettant de déterminer la raison pour laquelle le serveur renvoie ce code d’erreur. |
Suivi des demandes ayant échoué | Windows | Système de fichiers App Service | Informations de suivi détaillées des demandes qui ont échoué, y compris une trace des composants IIS utilisés pour traiter la demande et la durée dans chaque composant. Ces informations sont utiles si vous souhaitez améliorer les performances du site ou isoler une erreur HTTP spécifique. Un dossier est généré pour chaque requête ayant échoué. Le dossier contient le fichier journal XML et la feuille de style XSL permettant d’afficher le fichier journal. |
Journalisation du déploiement | Windows, Linux | Système de fichiers App Service | Journaux relatifs à votre publication de contenu dans une application. La journalisation du déploiement se déroule automatiquement et il n’existe aucun paramètre de configuration de la journalisation du déploiement. Elle vous aide à déterminer la raison de l’échec d’un déploiement. Par exemple, si vous utilisez un script de déploiement personnalisé, vous pouvez recourir à la journalisation de déploiement pour déterminer la cause de l’échec du script. |
Lorsqu’ils sont stockés dans le système de fichiers App Service, les journaux sont soumis au stockage disponible pour votre niveau tarifaire (consultez limites App Service).
Notes
App Service fournit un outil de diagnostic interactif dédié pour vous aider à résoudre les problèmes de votre application. Pour plus d’informations, consultez Présentation des diagnostics Azure App Service.
En outre, vous pouvez utiliser d’autres services Azure pour améliorer les fonctionnalités de journalisation et de surveillance de votre application, tels qu’Azure Monitor.
Activer la journalisation des applications (Windows)
Pour activer la journalisation des applications Windows dans le portail Azure, accédez à votre application et sélectionnez Journaux App Service.
Sélectionnez Activé pour Journal des applications (Système de fichiers) , Journal des applications (Blob) ou les deux.
L’option Système de fichiers est utilisée à des fins de débogage temporaire et se désactive elle-même après 12 heures. L’option Blob est destinée à la journalisation à long terme et a besoin d’un conteneur de stockage d’objets blob dans lequel écrire les journaux. L’option Blob inclut également des informations supplémentaires dans les messages de journalisation, telles que l’ID de l’instance de machine virtuelle d’origine du message de journalisation (InstanceId
), l’ID de thread (Tid
) et un horodateur plus précis (EventTickCount
).
Remarque
Actuellement, seuls les journaux des applications .NET peuvent être écrits dans le Stockage Blob. Les journaux des applications Java, PHP, Node.js et Python peuvent être stockés uniquement dans le système de fichiers App Service (sans modifications du code pour écrire les journaux dans un stockage externe).
De plus, si vous régénérez les clés d’accès de votre compte de stockage, vous devez réinitialiser la configuration de journalisation correspondante pour utiliser les clés d’accès mises à jour. Pour ce faire :
- Sous l’onglet Configurer, définissez la fonctionnalité de journalisation correspondante sur Désactivé. Enregistrez votre paramètre.
- Réactivez la journalisation de l’objet blob du compte de stockage. Enregistrez votre paramètre.
Sélectionnez le niveau ou le niveau de détails à consigner. Le tableau suivant présente les catégories de journaux incluses à chaque niveau :
Level | Catégories incluses |
---|---|
Désactivé | None |
Error | Erreur, Critique |
Avertissement | Avertissement, Erreur, Critique |
Informations | Info, Avertissement, Erreur, Critique |
Verbose | Trace, Débogage, Info, Avertissement, Erreur, Critique (toutes les catégories) |
Lorsque vous avez terminé, sélectionnez Enregistrer.
Notes
Si vous écrivez des journaux dans des objets Blob, la stratégie de rétention ne s’applique plus si vous supprimez l’application tout en conservant les journaux dans les objets Blob. Pour plus d’informations, consultez Coûts qui peuvent s’additionner après la suppression des ressources.
Activer la journalisation des applications (Linux/Conteneur)
Pour activer la journalisation des applications Linux et des conteneurs personnalisés dans le portail Azure, accédez à votre application et sélectionnez Journaux App Service.
Dans Journal des applications, sélectionnez Système de fichiers.
Dans Quota (Mo) , spécifiez le quota de disque pour les journaux des applications. Dans Période de conservation (jours) , définissez le nombre de jours pendant lesquels les journaux doivent être conservés.
Lorsque vous avez terminé, sélectionnez Enregistrer.
Activer la journalisation de serveur Web
Pour activer la journalisation du serveur web pour les applications Windows dans le portail Azure, accédez à votre application et sélectionnez Journaux App Service.
Pour Journalisation du serveur web, sélectionnez Stockage pour stocker les journaux dans le stockage d’objets blob, ou Système de fichiers pour stocker les journaux sur le système de fichiers App service.
Dans Période de conservation (jours) , définissez le nombre de jours pendant lesquels les journaux doivent être conservés.
Notes
Si vous régénérez les clés d’accès de votre compte de stockage, vous devez réinitialiser la configuration de journalisation correspondante pour utiliser les clés mises à jour. Pour ce faire :
- Sous l’onglet Configurer, définissez la fonctionnalité de journalisation correspondante sur Désactivé. Enregistrez votre paramètre.
- Réactivez la journalisation de l’objet blob du compte de stockage. Enregistrez votre paramètre.
Lorsque vous avez terminé, sélectionnez Enregistrer.
Notes
Si vous écrivez des journaux dans des objets Blob, la stratégie de rétention ne s’applique plus si vous supprimez l’application tout en conservant les journaux dans les objets Blob. Pour plus d’informations, consultez Coûts qui peuvent s’additionner après la suppression des ressources.
Consigner les erreurs détaillées
Pour enregistrer la page d’erreur ou le suivi des demandes ayant échoué pour les applications Windows dans le portail Azure, accédez à votre application et sélectionnez Journaux App Service.
Sous Messages d’erreurs détaillés ou Suivi des requêtes ayant échoué, sélectionnez Activé, puis sélectionnez Enregistrer.
Les deux types de journaux sont stockés dans le système de fichiers App Service. Jusqu’à 50 erreurs (fichiers ou dossiers) sont conservées. Lorsque le nombre de fichiers HTML dépasse 50, les fichiers d’erreur les plus anciens sont automatiquement supprimés.
La fonctionnalité de suivi des demandes ayant échoué capture par défaut un journal des demandes qui ont échoué avec les codes d’état HTTP compris entre 400 et 600. Pour spécifier des règles personnalisées, vous pouvez remplacer la section <traceFailedRequests>
dans le fichier web.config.
Ajouter des messages de journalisation dans le code
Dans votre code d’application, vous utilisez les fonctionnalités de journalisation habituelles pour envoyer des messages de journalisation aux journaux des applications. Par exemple :
Les applications ASP.NET peuvent utiliser la classe System.Diagnostics.Trace pour enregistrer des informations dans le journal de diagnostic d'application. Par exemple :
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
Par défaut, ASP.NET Core utilise le fournisseur de journalisation Microsoft.Extensions.Logging.AzureAppServices. Pour plus d’informations, consultez l’article ASP.NET Core logging in Azure (Journalisation ASP.NET Core dans Azure). Pour plus d’informations sur la journalisation du kit SDK WebJobs, consultez Prise en main du Kit de développement logiciel (SDK) Azure WebJobs.
Les applications Python peuvent utiliser le package OpenCensus pour envoyer des journaux au journal de diagnostic de l’application.
Diffuser les journaux d’activité en continu
Avant de diffuser des journaux en temps réel, activez le type de journal souhaité. Toute information enregistrée dans la sortie de la console ou dans un fichier doté de l’extension .txt, .log, ou .htm et stockés dans le répertoire /home/LogFiles (D:\home\LogFiles) est diffusée par App Service.
Remarque
Certains types de mémoire tampon de journalisation écrivent dans le fichier journal, ce qui peut entraîner l’affichage d’événements dans l’ordre incorrect dans le flux. Ainsi, il est possible qu'une entrée du journal d'application qui se produit lorsqu'un utilisateur visite une page soit affichée dans le flux avant l'entrée de journal HTTP correspondante pour la demande de page.
Dans le portail Azure
Pour diffuser les journaux dans le portail Azure, accédez à votre application et sélectionnez Flux de journaux.
Dans Cloud Shell
Pour diffuser les journaux en temps réel dans Cloud Shell, utilisez la commande suivante :
Important
Cette commande peut ne pas fonctionner avec les applications web hébergées dans un plan App Service Linux.
az webapp log tail --name appname --resource-group myResourceGroup
Pour filtrer des types de journaux spécifiques, tels que HTTP, utilisez le paramètre --provider. Par exemple :
az webapp log tail --name appname --resource-group myResourceGroup --provider http
Dans le terminal local
Pour diffuser les journaux dans la console locale, installez Azure CLI et connectez-vous à votre compte. Une fois connecté, suivez les instructions pour Cloud Shell.
Accéder aux fichiers journaux
Si vous configurez l’option des objets blob de stockage Azure pour un type de journal, vous avez besoin d’un outil client qui fonctionne avec le stockage Azure. Pour plus d’informations, consultez Outils clients du stockage Azure.
Pour les journaux stockés dans le système de fichiers App Service, le moyen le plus simple d’accéder aux fichiers consiste à télécharger le fichier ZIP dans le navigateur à l’adresse suivante :
- Conteneurs Linux/personnalisés :
https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
- Applications Windows :
https://<app-name>.scm.azurewebsites.net/api/dump
Pour les conteneurs Linux/personnalisés, le fichier ZIP contient les journaux de sortie de la console pour l’hôte Docker et le conteneur Docker. Pour une application avec scale-out, le fichier ZIP contient un ensemble de journaux pour chaque instance. Dans le système de fichiers App Service, ces fichiers journaux sont le contenu du répertoire /home/LogFiles. Les journaux de déploiement sont stockés dans /site/deployments/.
Pour les applications Windows, le fichier ZIP contient le contenu du répertoire D:\Home\LogFiles dans le système de fichiers App Service. Sa structure est la suivante :
Type de journal | Répertoire | Description |
---|---|---|
Journaux d’application | /LogFiles/Application/ | Contient un ou plusieurs fichiers texte. Le format des messages de journalisation dépend du fournisseur de journalisation que vous utilisez. |
Suivi des demandes ayant échoué | /LogFiles/W3SVC#########/ | Contient des fichiers XML et un fichier XSL. Vous pouvez afficher les fichiers XML mis en forme dans le navigateur. |
Journaux d’erreurs détaillés | /LogFiles/DetailedErrors/ | Contient les fichiers d’erreur HTM. Vous pouvez afficher les fichiers HTM dans le navigateur. Un autre moyen d’afficher le suivi des demandes ayant échoué consiste à accéder à la page de votre application dans le portail. Dans le menu de gauche, sélectionnez Diagnostiquer et résoudre les problèmes, recherchez Journaux de traçage des requêtes ayant échoué, puis cliquez sur l’icône pour parcourir et afficher la trace que vous souhaitez. |
Journaux de serveur web | /LogFiles/http/RawLogs/ | Contient les fichiers texte au format de fichier journal étendu W3C. Vous pouvez lire ces fichiers à l’aide d’un éditeur de texte ou d’un utilitaire tel que Log Parser. App Service ne prend pas en charge les champs s-computername , s-ip ni cs-version . |
Journaux de déploiement | /LogFiles/Git/ et /deployments/ | Contient les journaux générés par les processus de déploiement internes, ainsi que les journaux des déploiements Git. |
Envoyer des journaux à Azure Monitor
Grâce à l’intégration d’Azure Monitor, vous pouvez créer des paramètres de diagnostic pour envoyer des journaux à des comptes de stockage, à des hubs d’événements et à Log Analytics. Lorsque vous ajoutez un paramètre de diagnostic, App Service ajoute des paramètres d’application à votre application, ce qui déclenche un redémarrage de l’application.
Types de journaux pris en charge
Pour obtenir la liste des types de journaux pris en charge, ainsi que leurs descriptions, consultez les Journaux de ressources pris en charge pour Microsoft.Web.
Mise en réseau - Éléments à prendre en compte
Pour connaître les restrictions des paramètres de diagnostic, reportez-vous à la documentation paramètres de diagnostic officiels concernant les limites de destination.
Étapes suivantes
- Interrogation de journaux d’activité grâce à Azure Monitor
- Surveillance des applications dans Azure App Service
- Dépannage d’une application web dans le Service d’application Microsoft Azure à l’aide de Visual Studio
- Tutoriel : exécuter un test de charge pour identifier les goulots d’étranglement de performances dans une application web