Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Аналитика контейнеров хранит данные журнала, собираемые в таблице ContainerLogV2 в рабочей области Log Analytics. В этой статье описывается схема этой таблицы и параметров конфигурации. Она также сравнивает эту таблицу с устаревшей таблицей ContainerLog и содержит подробные сведения о переносе из нее.
Сравнение таблиц
ContainerLogV2 — это схема по умолчанию для CLI версии 2.54.0 и больше. Эта схема является таблицей по умолчанию для клиентов, которые подключены к аналитике контейнеров с проверкой подлинности управляемого удостоверения. Явно включите ContainerLogV2 через CLI версии 2.51.0 или более поздней с помощью параметров сбора данных.
Внимание
Поддержка таблицы ContainerLog прекращена 30 сентября 2026 г. После этой даты устаревшая таблица перестает получать данные. Перед этим выполните миграцию в ContainerLogV2 , чтобы избежать пробелов в коллекции журналов. Сведения о переключении таблиц см. в разделе "Включить схему ContainerLogV2".
В следующей таблице перечислены основные различия между использованием схемы ContainerLogV2 и ContainerLog.
| Отличия функций | Журнал контейнера | ContainerLogV2 |
|---|---|---|
| Схема | Сведения в ContainerLog. | Сведения о ContainerLogV2. Дополнительные столбцы: - ContainerName- PodName- PodNamespace- LogLevel
1- KubernetesMetadata
2 |
| Введение | Настраивается только с помощью ConfigMap. | Настраиваемая с помощью ConfigMap и DCR. 3 |
| Цены | Совместим только с журналами аналитики по полной цене. | Поддерживает низкий уровень базовых журналов в дополнение к журналам аналитики. |
| Выполнение запроса | Требуется несколько операций соединения с таблицами инвентаризации для стандартных запросов. | Включает дополнительные метаданные pod и контейнера для уменьшения сложности запросов и операций соединения. |
| Многострочный | Не поддерживаются: многострочные записи разделяются на несколько строк. | Поддержка многострочного ведения журнала для создания консолидированных единых записей многострочных выходных данных. |
1 Если LogMessage является допустимым JSON и имеет ключ с именем level, используется его значение. В противном случае ключевое слово на основе regex, соответствующее инфрезерам LogLevelLogMessage. Это вывод может привести к некоторым неправильным классификациям.
LogLevel— строковое поле со значением, например CRITICAL, ERROR, WARNING, INFO, DEBUGили TRACEUNKNOWN.
2KubernetesMetadata — это необязательный столбец, который активируется с помощью метаданных Kubernetes. Значение этого поля — JSON с полями podLabels, podAnnotations, podUid, , image, imageIDimageRepoи 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. Функция фильтрации журналов предоставляет возможности фильтрации как для рабочих нагрузок, так и для контейнеров платформы. Эти функции улучшают видимость рабочих нагрузок.
Примечание.
Метаданные и журналы Kubernetes, фильтрующие панель мониторинга Grafana, в настоящее время не поддерживает базовые журналы.
Функции
Расширенная схема ContainerLogV2 При включении метаданных
ContainerLogV2Kubernetes таблица содержит новый столбец с именемKubernetesMetadata. Этот столбец упрощает устранение неполадок с помощью простых запросов журналов и удаляет необходимость соединения с другими таблицами. Поля в этом столбце включаютpodLabels,podAnnotations,podUid, ,image,imageID,imageRepoиimageTag. Чтобы включить эту функцию, см. раздел "Включить метаданные Kubernetes".Уровень журнала Эта функция добавляет
LogLevelстолбецContainerLogV2к возможным значениямCRITICAL,ERROR, ,WARNING,INFO,DEBUGилиTRACEUNKNOWN. Этот столбец помогает оценить работоспособность приложений на основе уровня серьезности. Панель мониторинга 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.