Partager via


Surveiller les journaux dans Azure Container Apps avec Log Analytics

Azure Container Apps est intégré à Azure Monitor Log Analytics pour surveiller et analyser les journaux de votre application conteneur. Lorsqu’il est sélectionné comme solution de monitoring des journaux, votre environnement Container Apps inclut un espace de travail Log Analytics qui fournit un emplacement commun pour stocker les données des journaux du système et des applications de toutes les applications de conteneurs s’exécutant dans l’environnement.

Les entrées de journal sont accessibles en interrogeant des tables Log Analytics via le Portail Microsoft Azure ou un interpréteur de commandes à l’aide d’Azure CLI.

Azure Container Apps fournit deux types de journaux d’activité pour vous aider à surveiller et résoudre les problèmes suivants :

  • Journaux de la console : votre application génère ces journaux.
  • Journaux système : le service Container Apps génère ces journaux.

Journaux système

Le service Container Apps fournit des messages de journal système au niveau de l’application conteneur. Les journaux système émettent les messages suivants :

Origine Catégorie Message
Dapr Informations Création réussie du composant darp<component-name>avec l’étendue <dapr-component-scope >
Dapr Informations Mise à jour du composant dapr <component-name> réussie avec l’étendue <type-de-composant>
Dapr Erreur Erreur lors de la création du composant darp <component-name>
Montages de volumes Informations Volume <volume-name> monté avec succès pour la révision<étendue-de-la-révision>
Montages de volumes Erreur Erreur de montage du volume <volume-name>
Liaison de domaine Informations Domaine <domain> lié avec succès au conteneur d’application <nom-du-conteneur-d’application>
Authentification Informations Authentification activée sur l’application. Création d’une configuration d’authentification
Authentification Informations Configuration d’authentification créée avec succès
Poids du trafic Informations Définition d’un poids de trafic de <pourcentage>% pour la révision<revision-name\>
Approvisionnement de révision Informations Création d’une nouvelle révision : <revision-name>
Approvisionnement de révision Informations <Nom de révision> provisionné avec succès
Approvisionnement de révision Informations Désactivation des anciennes révisions depuis « ActiveRevisionsMode=Single »
Approvisionnement de révision Erreur Erreur d’approvisionnement de révision<revision-name>. ErrorCode : <[ErrImagePull]|[ Délai d’expiration]| [ContainerCrashing]>

Les données du journal système sont accessibles en interrogeant la ContainerAppSystemLogs_CL table. Les colonnes spécifiques de Container Apps les plus utilisées dans la table sont les suivantes :

Colonne Descriptif
ContainerAppName_s Nom de l’application conteneur
EnvironmentName_s Nom de l’environnement Container Apps
Log_s Message de journal
RevisionName_s Nom de la révision

Journaux de la console

Les journaux de console proviennent des messages de conteneursstderretstdout de votre application de conteneur et des sidecars Dapr. Vous pouvez afficher les journaux de console en interrogeant la ContainerAppConsoleLogs_CL table.

Conseil

L’instrumentation de votre code avec des messages de journal bien définis peut vous aider à comprendre comment votre code fonctionne et pour déboguer les problèmes. Pour en savoir plus sur les meilleures pratiques, reportez-vous à Conception pour les opérations.

Les colonnes spécifiques Container Apps les plus couramment utilisées dans ContainerAppConsoleLogs_CL sont les suivantes :

Colonne Descriptif
ContainerAppName_s Nom de l’application conteneur
ContainerGroupName_g Nom du réplica
ContainerId_s Identificateur du conteneur
ContainerImage_s Nom d'image du conteneur
EnvironmentName_s Nom de l’environnement Container Apps
Log_s Message de journal
RevisionName_s Nom de la révision

Journal des requêtes avec Log Analytics

Log Analytics est un outil du portail Azure que vous pouvez utiliser pour afficher et analyser les données de journaux. Avec Log Analytics, vous pouvez écrire des requêtes Kusto, puis trier, filtrer et visualiser les résultats dans des graphiques pour repérer les tendances et identifier les problèmes. Vous pouvez travailler de manière interactive avec les résultats de la requête ou les utiliser avec d’autres fonctionnalités comme les alertes, les tableaux de bord et les classeurs.

Portail Azure

Pour démarrer Log Analytics, sélectionnez Journaux dans le menu de la barre latérale de la page de votre application conteneur. Vous pouvez également démarrer Log Analytics à partir de Moniteur>Journaux.

Vous pouvez interroger les journaux à l’aide des tables répertoriées dans l’onglet Tables de catégorie CustomLogs. Les tables de cette catégorie sont les ContainerAppSystemlogs_CL tables et ContainerAppConsoleLogs_CL les tables.

Capture d’écran des tables de journal personnalisées Log Analytics.

La requête Kusto suivante affiche les entrées du journal de console pour l’application conteneur nommée album-api.

ContainerAppConsoleLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s
| take 100

La requête Kusto suivante affiche les entrées de journal système de l’application conteneur nommée album-api.

ContainerAppSystemLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, EnvName=EnvironmentName_s, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s
| take 100

Pour plus d’informations sur Log Analytics et les requêtes de journal, consultez le tutoriel Log Analytics.

Azure CLI/PowerShell

Vous pouvez interroger les journaux Container Apps en utilisant Azure CLI.

Ces exemples de requêtes Azure CLI génèrent une table contenant des enregistrements de journal pour l’album-api du nom de l’application conteneur. Le paramètre après l’opérateur project spécifie les colonnes du tableau. La variable$WORKSPACE_CUSTOMER_ID contient le GUID de l’espace de travail Log Analytics.

Cet exemple interroge la tableContainerAppConsoleLogs_CL :

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s, LogLevel_s | take 5" --out table

Cet exemple interroge la tableContainerAppSystemLogs_CL :

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppSystemLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s, LogLevel_s | take 5" --out table

Étapes suivantes