Где я могу найти журналы док-контейнера для службы приложений Azure
У меня есть Docker-контейнер с приложением.net core 2.
Ведение журнала настраивается с использованием этого кода в 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>();
и appsettings.json
файл
{
"Logging": {
"LogLevel": {
"Default": "Information"
}
},
}
Ведение журнала, кажется, в порядке, при запуске Kestrel напрямую, я вижу журналы в терминале. То же самое, когда в контейнере: команда docker logs
показывает что я хочу.
Проблемы возникают на производстве, когда они запускаются как контейнер в Azure Web App. Я не могу найти никаких последовательных журналов докера.
Я пытался зайти в файл журнала через FTP или через URL https://[mysite].scm.azurewebsites.net/api/logs/docker
например, файлы журнала почти пусты,https://[mysite].scm.azurewebsites.net/api/vfs/LogFiles/2018_09_09_RD0003FF74F63E_docker.log
, присутствуют только стартовые строки контейнера
Также у меня есть те же строки в обычном интерфейсе портала.
Вопрос заключается в следующем: автоматически ли выводятся журналы Docker в файлы docker.log в Azure Web App? Есть что-то, чего мне не хватает?
6 ответов
Во-первых, вам нужно включить журналы контейнеров
[Служба приложений] -> Мониторинг -> Журналы службы приложений
Затем вы можете увидеть журналы контейнера в [Служба приложений] -> Мониторинг -> Поток журналов
UPD
Также вы можете найти логи в KUDU
Затем "Текущие журналы Docker"
Я проклинал это долгое время и в конце концов нашел кое-что, что мне подходит.
Сначала я включил ведение журнала файловой системы в соответствии с ответом @dima_horror.
Затем я запустил командную строку az webapp log tail --name myApp --resource-group myRg
Теперь, похоже, это дает мне полезный результат (он ничего не дал мне до включения ведения журнала файловой системы).
Чтобы добавить к ответам, если у вас возникли проблемы с развертыванием образа в службе приложений и вам нужны журналы именно для этого, вы можете получить журналы докеров для этапа подготовки вашего контейнера в Центре развертывания, например:
Вы проверили логи в настройках контейнера? Я следовал этому руководству, чтобы развернуть контейнер в веб-приложении Azure.
Даже после включения всех параметров журнала, упомянутых в ответах, я столкнулся с той же проблемой, что и упомянутый Йорро. Из приложения не поступает журнал, позволяющий понять, почему приложение не запускается в веб-приложении. Например, пустая трата времени. Тот же образ работает локально (автономно), но не запускается в веб-приложении. У разработчика нет другого выбора, кроме как попытать счастья, придумывая всевозможные варианты.
2023-05-31T01:58:52.713Z ERROR - Container 78cacfab for site xxx-dev has exited, failing site start
2023-05-31T01:58:52.722Z ERROR - Container 78cacfab didn't respond to HTTP pings on port: 8098, failing site start. See container logs for debugging.
2023-05-31T01:58:58.662Z INFO - Stopping site xxx-dev because it failed during startup.
должна быть присуждена за разработку такой системы регистрации.
У меня такая же проблема, журналы контейнера службы приложений являются общими и расплывчатыми. Это не те журналы, которые Docker показывает нам всякий раз, когда мы запускаем контейнер.
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
"Не удалось запустить контейнер, контейнер не может быть запущен"
Вау! Лазур сказал мне, что каждые 60 секунд прошло.
Я понимаю, что это производственная среда, но вы должны нам кое-что дать!
Из-за разочарования я решил запустить тот же образ в ресурсе экземпляра контейнера Azure, там он показывает те же подробные журналы, которые предоставляет Docker (см. Снимок экрана ниже).
Вот о чем я говорю!
Используя журналы ошибок в экземпляре контейнера Azure, я обнаружил, что моя служба приложений не может получить доступ к ресурсу Sql Server (даже если они находятся в одной группе ресурсов). Я просто включил доступ к ресурсу Sql Server в той же группе ресурсов