Activer la journalisation des diagnostics pour les applications dans Azure 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.

Notes

En plus des instructions de journalisation figurant dans cet article, il existe une nouvelle fonctionnalité de journalisation intégrée avec Azure Monitor. Pour plus d’informations sur cette fonctionnalité, consultez la section Envoyer des journaux à Azure Monitor.

Type Plateforme Emplacement 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 demande ayant échoué, qui 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 :

  1. Sous l’onglet Configurer, définissez la fonctionnalité de journalisation correspondante sur Désactivé. Enregistrez votre paramètre.
  2. 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 :

  1. Sous l’onglet Configurer, définissez la fonctionnalité de journalisation correspondante sur Désactivé. Enregistrez votre paramètre.
  2. 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 demandes 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/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 :

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.

Notes

Certains types de mémoire tampon de journalisation sont écrits dans le fichier journal. Dès lors, il se peut que les événements apparaissent de manière désordonnée 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 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.

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, puis 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. Ces informations peuvent être lues à 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 à la nouvelle intégration d’Azure Monitor, vous pouvez créer des paramètres de diagnostic pour envoyer des journaux aux comptes de stockage, à Event Hubs et à Log Analytics.

Paramètres de diagnostic

Types de journaux pris en charge

Le tableau suivant renseigne sur les types et la descriptions des journaux pris en charge :

Nom du journal Type de journal Windows Conteneur Windows Linux Conteneur Linux Description
Journaux de la console App Service AppServiceConsoleLogs Java SE et Tomcat Oui Oui Oui Sortie standard et erreur standard 3
Journaux HTTP AppServiceHTTPLogs Oui Oui Oui Oui Journaux d’activité des serveurs Web
Journaux de plateforme de l’environnement App Service AppServiceEnvironmentPlatformLogs Oui N/A Oui Oui App Service Environment : mise à l’échelle, modifications de configuration et journaux d’état
Journaux d’audit d’accès AppServiceAuditLogs Oui Oui Oui Oui Activité de connexion via FTP et Kudu
Journaux d’audit de modification de contenu de site AppServiceFileAuditLogs Oui Oui À confirmer À confirmer Modifications de fichier apportées au contenu du site ; disponible seulement pour le niveau Premium et supérieur
Journaux d’application App Service AppServiceAppLogs ASP.NET, .NET Core et Tomcat 1 ASP.NET & Tomcat 1 .NET Core, Java, SE et Tomcat Blessed Images 2 Java SE & Tomcat Blessed Images 2 Journaux des applications 3
Journaux d’audit IPSecurity AppServiceIPSecAuditLogs Oui Oui Oui Oui Demandes à partir de règles IP
Journaux de la plateforme App Service AppServicePlatformLogs À confirmer Oui Oui Oui journaux des opérations du conteneur
Journaux d’audit antivirus de rapport AppServiceAntivirusScanAuditLogs 4 Oui Oui Oui Oui Journaux de l’analyse antivirus avec Microsoft Defender pour le cloud ; disponibles seulement pour le niveau Premium

1 Pour les applications Tomcat, ajoutez TOMCAT_USE_STARTUP_BAT aux paramètres de l’application et définissez-le sur false ou 0. Vous devez disposer de la dernière version de Tomcat et utiliser java.util.logging.

2 Pour les applications Java SE, ajoutez WEBSITE_AZMON_PREVIEW_ENABLED aux paramètres de l’application et définissez-le sur true ou 1.

3 La limite de journalisation actuelle est définie sur 100 journaux par minute.

4 Le type de journal AppServiceAntivirusScanAuditLogs est toujours en préversion

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