Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Аналитика контейнеров хранит данные журнала, собираемые в таблице ContainerLogV2 в рабочей области Log Analytics. В этой статье описывается схема этой таблицы и параметров конфигурации. Она также сравнивает эту таблицу с устаревшей таблицей ContainerLog и содержит подробные сведения о переносе из нее.
Сравнение таблиц
ContainerLogV2 — это схема по умолчанию для CLI версии 2.54.0 и больше. Эта схема является таблицей по умолчанию для клиентов, которые подключают Container insights с аутентификацией с управляемым удостоверением. Явно включите ContainerLogV2 через CLI версии 2.51.0 или более поздней с помощью параметров сбора данных.
Внимание
Поддержка таблицы ContainerLog будет прекращена 30 сентября 2026 г. Клиенты должны перейти на ContainerLogV2 до этой даты. После прекращения поддержки Microsoft может продолжать принимать данные в течение ограниченного переходного периода, чтобы свести к минимуму сбои для существующих клиентов; однако устаревшая версия больше не получает поддержку, исправления ошибок или дальнейшее развитие. Клиенты не должны полагаться на переходный период и как можно скорее завершить миграцию. Чтобы переключить таблицы, см. Включение схемы ContainerLogV2.
В следующей таблице перечислены основные различия между использованием схемы ContainerLogV2 и ContainerLog.
| Отличия функций | Журнал контейнера | ContainerLogV2 |
|---|---|---|
| Схема | Сведения в ContainerLog. | Сведения о ContainerLogV2. Дополнительные столбцы: - ContainerName- PodName- PodNamespace- LogLevel
1- KubernetesMetadata
2 |
| Введение | Настраивается только с помощью ConfigMap. | Настраиваемая с помощью ConfigMap и DCR. 3 |
| Цены | Совместим только с журналами аналитики по полной цене. | Поддерживает недорогой тарифный план базовых журналов в дополнение к журналам аналитики. |
| Выполнение запроса | Требуется несколько операций соединения с таблицами инвентаризации для стандартных запросов. | Включает дополнительные метаданные pod и контейнера для уменьшения сложности запросов и операций соединения. |
| Многострочный | Не поддерживаются: многострочные записи разделяются на несколько строк. | Поддержка многострочного ведения журнала для создания консолидированных единых записей многострочных выходных данных. |
1 Если LogMessage является допустимым JSON и имеет ключ с именем level, используется его значение. В противном случае сопоставление ключевых слов на основе regex выводит LogLevel из LogMessage. Это вывод может привести к некоторым неправильным классификациям.
LogLevel — строковое поле со значением, например CRITICAL, ERROR, WARNING, INFO, DEBUG, TRACE или UNKNOWN.
2KubernetesMetadata — это необязательный столбец, который активируется с помощью метаданных Kubernetes. Значение этого поля — JSON с полями podLabels, podAnnotations, podUid, image, imageID, imageRepo и imageTag.
Конфигурация DCRтребует аутентификации управляемой учетной записи.
Примечание.
Поле LogMessage является динамическим и поддерживает прием форматов JSON и строк открытого текста.
Экспорт данных журнала в концентраторы событий и аккаунт хранения поддерживается, если входящий LogMessage является допустимым JSON или обычной строкой.
Если код LogMessage JSON неправильно сформирован, эти сообщения журнала принимаются с экранированием. По умолчанию сообщения журнала размером более 16 КБ усекаются. Если включен многострочный журнал, сообщения журнала размером более 64 КБ усекаются.
Включение схемы ContainerLogV2
Включите схему ContainerLogV2 для кластера с помощью профиля журнала кластера или ConfigMap. Если оба параметра включены, ConfigMap имеет приоритет. Таблица ContainerLog используется только при явном отключении обоих.
Внимание
Параметр ContainerLogV2 не определяет, собираются ли данные. Он указывает только таблицу, в которую отправляются данные при его сборе.
Прежде чем включить схему ContainerLogV2 , оцените наличие правил генерации оповещений, использующих таблицу ContainerLog . Обновите все такие оповещения, чтобы использовать новую таблицу. Выполните следующий запрос Azure Resource Graph, чтобы проверить правила генерации оповещений, ссылающиеся на таблицу ContainerLog.
resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "ContainerLog"
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc
Фильтрация метаданных и журналов Kubernetes
Фильтрация метаданных и журналов Kubernetes расширяет схему ContainerLogV2 с дополнительными метаданными Kubernetes. Функция фильтрации журналов предоставляет возможности фильтрации как для рабочих нагрузок, так и для контейнеров платформы. Эти функции улучшают наблюдаемость рабочих нагрузок.
Примечание.
Панель мониторинга Grafana для фильтрации метаданных и журналов Kubernetes в настоящее время не поддерживает базовые журналы.
Функции
Расширенная схема ContainerLogV2 При включении метаданных
ContainerLogV2Kubernetes таблица содержит новый столбец с именемKubernetesMetadata. Этот столбец упрощает устранение неполадок с помощью простых запросов к журналам и устраняет необходимость соединения с другими таблицами. Поля в этом столбце включаютpodLabels,podAnnotations,podUid, ,image,imageID,imageRepoиimageTag. Чтобы включить эту функцию, см. раздел "Включить метаданные Kubernetes".Уровень журнала Эта функция добавляет в
ContainerLogV2столбецLogLevelсо следующими возможными значениями:CRITICAL,ERROR,WARNING,INFO,DEBUG,TRACEилиUNKNOWN. Этот столбец помогает оценить состояние приложения на основе уровня серьезности. Панель мониторинга Grafana визуализирует тенденции уровней журналирования с течением времени, чтобы быстро определить затронутые ресурсы.Панель мониторинга Grafana для визуализации Панель мониторинга Grafana предоставляет цветовую визуализацию уровня логирования и аналитические сведения об объеме логов, скорости поступления логов и записях журналов. Панель мониторинга разбивает данные по компьютерам, модулям pod и контейнерам для целенаправленного устранения неполадок. Сведения об установке панели мониторинга см. в разделе Установка панели мониторинга Grafana.
Фильтрация журналов на основе аннотаций для рабочих нагрузок. Эффективная фильтрация журналов с помощью аннотаций Pod. Это позволяет сосредоточиться на релевантной информации, не отвлекаясь на шум. Фильтрация на основе аннотаций позволяет исключать сбор журналов для определённых подов и контейнеров путём аннотирования пода, что поможет значительно снизить затраты на анализ журналов. Дополнительные сведения о настройке фильтрации на основе заметок см. в разделе "Фильтрация журналов на основе заметок".
Фильтрация журналов на основе ConfigMap для журналов платформы (системные пространства имен Kubernetes). Журналы платформы генерируются контейнерами в системных (или аналогичных ограниченных) пространствах имен. По умолчанию все журналы контейнеров из системного пространства имен исключаются, чтобы свести к минимуму затраты на данные в рабочей области Log Analytics. Однако в конкретных сценариях устранения неполадок журналы контейнеров системного контейнера играют важную роль. Одним из примеров
corednsявляется контейнер вkube-systemпространстве имен.
Включение метаданных Kubernetes
Внимание
Для сбора метаданных Kubernetes требуется аутентификация с помощью управляемого удостоверения и ContainerLogV2.
Включите метаданные Kubernetes с помощью ConfigMap со следующими параметрами. Все поля метаданных собираются по умолчанию, когда включено metadata_collection. Раскомментируйте include_fields, чтобы указать отдельные поля для сбора.
[log_collection_settings.metadata_collection]
enabled = true
include_fields = ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
Через несколько минут KubernetesMetadata столбец отображается в любом запросе журнала для ContainerLogV2 таблицы, как показано на следующем снимке экрана.
Установка панели мониторинга Grafana
Внимание
Если вы включили Grafana, следуя руководству по включению мониторинга для кластеров Kubernetes, то ваш экземпляр Grafana уже должен иметь доступ к рабочей области Azure Monitor для метрик Prometheus. Панель мониторинга метаданных журналов Kubernetes также требует доступа к рабочей области Log Analytics, содержащей данные журнала. См. Как изменить разрешения доступа к Azure Monitor для получения рекомендации о предоставлении экземпляру Grafana роли средства чтения мониторинга в рабочей области Log Analytics.
Импортируйте панель мониторинга из галереи Grafana на панели мониторинга ContainerLogV2. Откройте панель мониторинга и выберите значения dataSource, Subscription, ResourceGroup, Cluster, Namespace и Labels.
Примечание.
При первоначальной загрузке панели мониторинга Grafana могут появиться ошибки, так как переменные еще не выбраны. Чтобы это не повторялось, сохраните панель мониторинга после выбора набора переменных, чтобы этот набор переменных стал используемым по умолчанию при первом открытии.
Ведение журнала с несколькими строками
Многострочное ведение журнала объединяет ранее разделенные журналы контейнеров и отправляет их в виде единых записей в таблицу ContainerLogV2. Включите многострочное ведение журнала с помощью ConfigMap, как описано в разделе "Настройка сбора журналов контейнеров с помощью ConfigMap".
Примечание.
Теперь карта конфигурации содержит параметр спецификации языка, который позволяет выбрать только нужные языки. Эту функцию можно включить, изменив языки в параметре stacktrace_languages в конфигурации.
Ограничения
- Многострочное логирование объединяет трассировки стека исключений из контейнеров, используя Java, Python, .NET и Go. Другие записи журнала с несколькими линиями, включая пользовательские исключения и произвольные сообщения журнала, не объединяются.
- Многострочный журнал не поддерживается для трассировок стека исключений Python с fine-grained-error-locations-in-tracebacks. Для работы многострочной записи журнала необходимо отключить эту функцию, как описано в документации Python.
- По умолчанию среда выполнения контейнера усекает строки журнала до 16 КБ. При включении многострочного ведения журнала
ContainerLogV2поддерживает строки журнала до 64 КБ.
Примеры
Отключено многострочное ведение журнала трассировки исключений
Включено многострочное ведение журнала многострочной трассировки стека исключений Go
Включено ведение многострочного журнала трассировки стека Java
Включён многострочный журнал для трассировки стека в Python
Следующие шаги
- Настройте базовые журналы для ContainerLogV2.
- Узнайте, как запрашивать данные из ContainerLogV2.