10 votes

Où puis-je trouver les journaux des conteneurs Docker pour Azure App Service ?

J'ai un conteneur Docker qui exécute une application .net core 2.

L'enregistrement est configuré en utilisant ce code dans Program.cs

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureLogging((hostingContext, logging) =>
        {
            logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
            logging.AddConsole();
            logging.AddDebug();
        })
        .UseStartup<Startup>();

et le appsettings.json fichier

{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  },
}

La journalisation semble être Ok, lorsque je lance Kestrel directement, je peux voir les journaux dans le terminal. Même chose, quand il est conteneurisé : la commande docker logs montre ce que je veux.

Les problèmes surviennent en production, lors de l'exécution en tant que conteneur dans Azure Web App. Je ne trouve aucun journal de docker cohérent.

J'ai essayé de visiter le fichier Log via FTP ou via l'url. https://[mysite].scm.azurewebsites.net/api/logs/docker les fichiers journaux sont presque vides, par exemple, https://[mysite].scm.azurewebsites.net/api/vfs/LogFiles/2018_09_09_RD0003FF74F63E_docker.log , seules les lignes de départ des conteneurs sont présentes enter image description here

J'ai également les mêmes lignes dans l'interface habituelle du portail.

La question est la suivante : les journaux de docker sont-ils automatiquement publiés dans les fichiers docker.log dans Azure Web App ? Y a-t-il quelque chose qui m'échappe ?

16voto

dima_horror Points 1375

Tout d'abord, vous devez activer les journaux des conteneurs

[App Service] -> Surveillance -> Journaux d'App Service

app service logs in monitoring for app service

Vous pouvez ensuite voir les journaux du conteneur dans [App Service] -> Monitoring -> Log stream.

view container logs in log stream

UPD

Vous pouvez également trouver les journaux dans KUDU. enter image description here

Puis "Current Docker Logs"

enter image description here

7voto

Carboni Points 469

J'ai maudit cela pendant un bon moment, et j'ai fini par trouver quelque chose qui fonctionne pour moi.

J'ai d'abord activé la journalisation du système de fichiers comme indiqué dans la réponse de @dima_horror.

Ensuite, j'ai lancé une ligne de commande az webapp log tail --name myApp --resource-group myRg

Cela semble maintenant me donner une sortie utile (cela ne me donnait rien avant d'activer la journalisation du système de fichiers).

2voto

Mitch Stewart Points 882

Avez-vous vérifié les journaux dans les paramètres du conteneur ? J'ai suivi este pour déployer un conteneur vers une application web Azure.

Container Logs

0voto

Yorro Points 1889

J'ai exactement le même problème, les logs du conteneur App Service sont génériques et vagues. Ce ne sont pas les mêmes journaux que ceux que Docker nous montre chaque fois que nous exécutons un conteneur.

17/02/2020 08:59:25.186 INFO - Site: tutorial-api - Start container succeeded. Container: f8bfa7e27680c0e9551c6157f9d1c8a73c9a3e739b4f15de8586ce52809798d3 17/02/2020 08:59:30.675 INFO - Site: tutorial-api - Application Logging (Filesystem): On 17/02/2020 08:59:44.106 INFO - Site: tutorial-api - Waiting for container to be ready 17/02/2020 08:59:49.116 INFO - Site: tutorial-api - Container has exited 17/02/2020 08:59:49.117 ERROR - Site: tutorial-api - Container could not be started 17/02/2020 08:59:49.120 INFO - Site: tutorial-api - Purging after container failed to start 17/02/2020 08:59:49.120 ERROR - Site: tutorial-api - Unable to start container. Error message: Container could not be started: tutorial-api_20

"Impossible de démarrer le conteneur, le conteneur n'a pas pu être démarré".

Wow ! Azure vient de me dire que toutes les 60 secondes, une minute s'est écoulée.

Je comprends que c'est un environnement de production, mais vous devez nous donner quelque chose !

Par frustration, j'ai décidé d'exécuter la même image dans une ressource Azure Container Instance, où l'on peut voir les mêmes journaux détaillés que ceux fournis par Docker (voir la capture d'écran ci-dessous).

enter image description here

Voilà ce que je veux dire !

En utilisant les journaux d'erreurs dans Azure Container Instance, j'ai découvert que mon App Service ne pouvait pas accéder à la ressource Sql Server (bien qu'ils soient dans le même groupe de ressources). J'ai simplement activé l'accès à la ressource Sql Server dans le même groupe de ressources.

enter image description here

0voto

Banjer Points 2806

Pour compléter les réponses, si vous avez des difficultés à déployer l'image dans votre App Service et que vous avez besoin de journaux pour cela spécifiquement, vous pouvez obtenir les journaux docker pour la phase de provisionnement de votre conteneur sous Deployment Center, par exemple :

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X