Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложения контейнеров Azure интегрированы с Azure Monitor Log Analytics для отслеживания и анализа журналов приложения контейнера. При выборе в качестве решения для мониторинга журналов среда "Приложения контейнеров" включает рабочую область Log Analytics, которая предоставляет общее место для хранения данных журнала системы и приложений из всех приложений контейнеров, работающих в среде.
Записи журнала доступны путем запроса таблиц Log Analytics через портал Azure или командную оболочку с помощью Azure CLI.
Приложения контейнеров Azure предоставляют два типа журналов, которые помогут вам отслеживать и устранять неполадки.
- Журналы консоли: приложение создает эти журналы.
- Системные журналы: служба приложений контейнеров создает эти журналы.
Системные журналы
Служба "Приложения-контейнеры" предоставляет системные сообщения журнала на уровне приложения контейнера. Системные журналы выдают следующие сообщения:
| Исходный код | Тип | Сообщение |
|---|---|---|
| Dapr | Сведения | Успешно создано имя< компонента >dapr с областью <dapr-component-scope> |
| Dapr | Сведения | Успешно обновлено имя< компонента компонента >dapr с типом компонента области <> |
| Dapr | Ошибка | Ошибка при создании имени компонента <dapr> |
| Подключения томов | Сведения | Успешно подключенное имя< тома тома >для области редакции <> |
| Подключения томов | Ошибка | Ошибка подключения тома с именем тома <> |
| Привязка домена | Сведения | Успешно привязан <домен домена> к имени приложения-контейнера <контейнера> |
| Проверка подлинности | Сведения | Включена проверка подлинности в приложении. Создание конфигурации проверки подлинности |
| Проверка подлинности | Сведения | Конфигурация проверки подлинности успешно создана |
| Вес трафика | Сведения | Установка веса трафика в процентах <>для редакции с именем редакции<\> |
| Подготовка редакции | Сведения | Создание новой редакции: <имя редакции> |
| Подготовка редакции | Сведения | Успешно подготовлено имя редакции <> |
| Подготовка редакции | Сведения | Отключение старых редакций с момента "ActiveRevisionsMode=Single" |
| Подготовка редакции | Ошибка | Имя< редакции редакции для >подготовки ошибок. ErrorCode: <[ErrImagePull]|[ Время ожидания]|[ContainerCrashing]> |
Данные системного журнала доступны путем запроса ContainerAppSystemLogs_CL таблицы. Наиболее используемыми столбцами в таблице являются следующие столбцы:
| Столбец | Описание |
|---|---|
ContainerAppName_s |
Имя приложения-контейнера |
EnvironmentName_s |
Имя окружения службы "Контейнеры приложений" |
Log_s |
Сообщение журнала |
RevisionName_s |
Имя редакции |
Журналы консоли
Журналы консоли исходят из stderrstdout контейнеров и сообщений из контейнеров в приложении контейнера и на стороне Dapr. Журналы консоли можно просматривать, запрашивая таблицу ContainerAppConsoleLogs_CL .
Совет
Инструментирование кода с помощью четко определенных сообщений журнала поможет понять, как выполняется код и как выполняется отладка проблем. Дополнительные сведения о рекомендациях см. в разделе "Проектирование операций".
К наиболее часто используемым столбцам приложений контейнеров в ContainerAppConsoleLogs_CL относятся следующие:
| Столбец | Описание |
|---|---|
ContainerAppName_s |
Имя приложения-контейнера |
ContainerGroupName_g |
Имя реплики |
ContainerId_s |
Идентификатор контейнера |
ContainerImage_s |
Имя образа контейнера |
EnvironmentName_s |
Имя окружения службы "Контейнеры приложений" |
Log_s |
Сообщение журнала |
RevisionName_s |
Имя редакции |
Запрос журнала с помощью Log Analytics
Log Analytics — это средство на портале Azure, которое можно применять для просмотра и анализа данных журнала. С помощью Log Analytics можно написать запросы Kusto, а затем сортировать, фильтровать и визуализировать результаты в диаграммах для выявления тенденций и выявления проблем. С результатами запроса можно работать в интерактивном режиме или же использовать их в других возможностях, таких как оповещения, информационные панели и книги.
Портал Azure
Запустите Log Analytics из раздела Журналы в меню боковой панели на странице контейнера приложения. Кроме того, Log Analytics можно запустить, выбрав Мониторинг>Журналы.
Журналы можно запросить с помощью таблиц, перечисленных на вкладке "Таблицы категорий CustomLogs". Таблицы в этой категории — это ContainerAppSystemlogs_CL таблицы и ContainerAppConsoleLogs_CL таблицы.
В следующем запросе Kusto отображаются записи журнала консоли для приложения-контейнера с именем 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
В следующем запросе Kusto отображаются системные записи журнала для приложения-контейнера с именем 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
Дополнительные сведения о Log Analytics и запросах на журналы см. в учебнике по Log Analytics.
Azure CLI/PowerShell
Журналы службы "Контейнеры приложений" можно запрашивать с помощью Azure CLI.
В этом примере azure CLI запрашивает таблицу, содержащую записи журнала для api имени приложения-контейнера. Параметры после указания столбцов таблицы оператором project . Переменная $WORKSPACE_CUSTOMER_ID содержит GUID рабочей области Log Analytics.
В этом примере выполняется запрос таблицы ContainerAppConsoleLogs_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
В этом примере выполняется запрос таблицы ContainerAppSystemLogs_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