Настройка коллекции журналов в аналитике контейнеров
В этой статье содержатся сведения о настройке сбора данных в аналитике контейнеров для кластера Kubernetes после его подключения. Рекомендации по включению аналитики контейнеров в кластере см. в разделе "Включение мониторинга для кластеров Kubernetes".
Методы конфигурации
Существует два метода настройки и фильтрации данных, собираемых в аналитике контейнеров. В зависимости от параметра можно выбрать один или другой метод. Эти два метода описаны в таблице ниже с подробными сведениями в следующих разделах.
Метод | Description |
---|---|
Правило сбора данных (DCR) | Правила сбора данных — это наборы инструкций, поддерживающих сбор данных с помощью конвейера Azure Monitor. DCR создается при включении аналитики контейнеров и можно изменить параметры в этом DCR с помощью портал Azure или других методов. |
ConfigMap | ConfigMaps — это механизм Kubernetes, позволяющий хранить не конфиденциальные данные, такие как файл конфигурации или переменные среды. Аналитика контейнеров ищет ConfigMap в каждом кластере с определенными параметрами, определяющими данные, которые должны собираться. |
Настройка сбора данных с помощью DCR
DCR, созданный аналитикой контейнеров, называется MSCI-cluster-region-cluster-name><<>. Этот DCR можно просмотреть вместе с другими пользователями в подписке, а также изменить его с помощью методов, описанных в разделе "Создание и изменение правил сбора данных" (DCR) в Azure Monitor. Хотя вы можете напрямую изменить DCR для определенных настроек, вы можете выполнить наиболее необходимую настройку, используя описанные ниже методы. Дополнительные сведения об изменении DCR см. в разделе "Преобразования данных" в аналитике контейнеров.
Внимание
Кластеры AKS должны использовать управляемое удостоверение, назначаемое системой или назначаемое пользователем. Если кластер использует субъект-службу, необходимо обновить кластер, чтобы использовать управляемое удостоверение, назначаемое системой, или управляемое удостоверение, назначаемое пользователем.
Настройка DCR с помощью портал Azure
С помощью портал Azure можно выбрать несколько предварительно настроенных конфигураций для сбора данных в аналитике контейнеров. Эти конфигурации включают различные наборы таблиц и частот сбора в зависимости от ваших приоритетов. Вы также можете настроить параметры для сбора только необходимых данных. Вы можете использовать портал Azure для настройки конфигурации существующего кластера после включения аналитики контейнеров или при включении аналитики контейнеров в кластере.
Выберите кластер в портал Azure.
Выберите параметр "Аналитика" в разделе "Мониторинг" в меню.
Если аналитика контейнеров уже включена в кластере, нажмите кнопку "Параметры мониторинга". В противном случае выберите "Настройка Azure Monitor " и ознакомьтесь с разделом "Включить мониторинг в кластере Kubernetes" с помощью Azure Monitor , чтобы получить подробные сведения о включении мониторинга.
Для AKS и Kubernetes с поддержкой Arc выберите использовать управляемое удостоверение , если кластер еще не перенесен на проверку подлинности управляемого удостоверения.
Выберите один из предустановок затрат.
Предустановка затрат Частота сбора Фильтры пространства имен Сбор сообщений системного журнала Собранные данные Стандартные 1 м нет Не включено Все стандартные таблицы аналитики контейнеров Оптимизированные для затрат 5 м Исключает kube-system, gatekeeper-system, azure-arc Не включено Все стандартные таблицы аналитики контейнеров Системный журнал 1 м нет Включено по умолчанию Все стандартные таблицы аналитики контейнеров Журналы и события 1 м нет Не включено ContainerLog/ContainerLogV2
KubeEvents
KubePodInventoryЕсли вы хотите настроить параметры, нажмите кнопку "Изменить параметры коллекции".
Имя Описание Частота сбора Определяет частоту сбора данных агентом. Допустимые значения: 1 млн – 30 млн в интервалах 1 млн. Значение по умолчанию — 1 млн. Фильтрация пространства имен Выкл. Собирает данные во всех пространствах имен.
Включить: собирает только данные из значений в поле пространств имен.
Исключение. Собирает данные из всех пространств имен, за исключением значений в поле пространств имен.
Массив пространств имен Kubernetes разделенных запятыми для сбора данных инвентаризации и perf на основе пространства именFilteringMode. Например, пространства имен = ["kube-system", "default"] с параметром Include собирают только эти два пространства имен. С параметром "Исключить" агент собирает данные из всех других пространств имен, за исключением kube-system и по умолчанию.Собранные данные Определяет, какие таблицы аналитики контейнеров необходимо собирать. Ниже приведено описание каждой группировки. Включение ContainerLogV2 Логический флаг для включения схемы ContainerLogV2. Если задано значение true, журналы stdout/stderr отправляются в таблицу ContainerLogV2 . В противном случае журналы контейнеров отправляются в таблицу ContainerLog , если иное не указано в ConfigMap. При указании отдельных потоков необходимо включить соответствующую таблицу для ContainerLog или ContainerLogV2. Включение коллекции Syslog Включает коллекцию Syslog из кластера. Параметр "Собранные данные" позволяет выбрать таблицы, заполненные для кластера. Таблицы группируются по наиболее распространенным сценариям. Чтобы указать отдельные таблицы, необходимо изменить DCR с помощью другого метода.
Группировка Таблицы Примечания. Все (по умолчанию) Все стандартные таблицы аналитики контейнеров Требуется для включения визуализаций аналитики контейнеров по умолчанию Производительность Perf, InsightsMetrics Журналы и события ContainerLog или ContainerLogV2, KubeEvents, KubePodInventory Рекомендуется, если вы включили управляемые метрики Prometheus Рабочие нагрузки, развертывания и hpAs InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices Постоянные тома InsightsMetrics, KubePVInventory Нажмите кнопку "Настроить", чтобы сохранить параметры.
Применимые таблицы и метрики для DCR
Параметры для фильтрации частоты сбора и пространства имен в DCR не применяются ко всем данным аналитики контейнеров. В следующих таблицах перечислены таблицы в рабочей области Log Analytics, используемой аналитикой контейнеров и метриками, которые собираются вместе с параметрами, применяемыми к каждому.
Имя таблицы | Интервал? | Пространства имен? | Замечания |
---|---|---|---|
ContainerInventory | Да | Да | |
ContainerNodeInventory | Да | Нет | Параметр сбора данных для пространств имен не применяется, так как узел Kubernetes не является ресурсом с областью действия пространства имен |
KubeNodeInventory | Да | Нет | Параметр сбора данных для пространств имен не является применимым узлом Kubernetes не является ресурсом области имен |
KubePodInventory | Да | Да | |
KubePVInventory | Да | Да | |
KubeServices | Да | Да | |
KubeEvents | No | Да | Параметр сбора данных для интервала не применим для событий Kubernetes |
Производительность | Да | Да | Параметр сбора данных для пространств имен не применим для связанных метрик узла Kubernetes, так как узел Kubernetes не является объектом области имен. |
InsightsMetrics | Да | Да | Параметры сбора данных применимы только для метрик, которые собирают следующие пространства имен: container.azm.ms/kubestate, container.azm.ms/pv и container.azm.ms/gpu |
Пространство имен метрик | Интервал? | Пространства имен? | Замечания |
---|---|---|---|
Insights.container/nodes | Да | Нет | Узел не является ресурсом с областью действия пространства имен |
Insights.container/pods | Да | Да | |
Insights.container/containers | Да | Да | |
Insights.container/persistentvolumes | Да | Да |
Потоковая передача значений в DCR
При указании таблиц для сбора с помощью CLI или ARM необходимо указать имя потока, соответствующее определенной таблице в рабочей области Log Analytics. В следующей таблице перечислены имена потока для каждой таблицы.
Примечание.
Если вы знакомы со структурой правила сбора данных, имена потоков в этой таблице указываются в разделе потоков данных DCR.
Stream | Таблица аналитики контейнеров |
---|---|
Microsoft-ContainerInventory | ContainerInventory |
Microsoft-ContainerLog | Журнал контейнера |
Microsoft-ContainerLogV2 | ContainerLogV2 |
Microsoft-ContainerLogV2-HighScale | ContainerLogV2 (режим высокой шкалы)1 |
Microsoft-ContainerNodeInventory | ContainerNodeInventory |
Microsoft-InsightsMetrics | InsightsMetrics |
Microsoft-KubeEvents | KubeEvents |
Microsoft-KubeMonAgentEvents | KubeMonAgentEvents |
Microsoft-KubeNodeInventory | KubeNodeInventory |
Microsoft-KubePodInventory | KubePodInventory |
Microsoft-KubePVInventory | KubePVInventory |
Microsoft-KubeServices | KubeServices |
Microsoft-Perf | Производительность |
1 Не следует использовать Microsoft-ContainerLogV2 и Microsoft-ContainerLogV2-HighScale в одном DCR. Это приведет к тому, что данные будут повторяться.
Совместное использование DCR с несколькими кластерами
Если включить аналитику контейнеров в кластере Kubernetes, для этого кластера создается новый DCR, а DCR для каждого кластера можно изменять независимо. Если у вас несколько кластеров с настраиваемыми конфигурациями мониторинга, может потребоваться предоставить общий доступ к одному DCR с несколькими кластерами. Затем можно внести изменения в один DCR, который автоматически реализуется для всех кластеров, связанных с ним.
DCR связан с кластером с соответствующим правилом сбора данных (DCRA). Используйте интерфейс предварительной версии DCR для просмотра и удаления существующих связей DCR для каждого кластера. Затем эту функцию можно использовать для добавления связи в один DCR для нескольких кластеров.
Настройка сбора данных с помощью ConfigMap
ConfigMap — это механизм Kubernetes, позволяющий хранить не конфиденциальные данные, такие как файл конфигурации или переменные среды. Аналитика контейнеров ищет ConfigMap в каждом кластере с определенными параметрами, определяющими данные, которые должны собираться.
Внимание
ConfigMap — это глобальный список, который может применяться только к агенту ConfigMap для аналитики контейнеров. Применение другого ConfigMap переопределит предыдущие параметры коллекции ConfigMap.
Необходимые компоненты
- Минимальная версия агента, поддерживаемая для сбора stdout, stderr и переменных среды из рабочих нагрузок контейнеров, — ciprod06142019 или более поздней версии.
Настройка и развертывание ConfigMap
Используйте следующую процедуру, чтобы настроить и развернуть файл конфигурации ConfigMap в кластере:
Если у вас еще нет ConfigMap для аналитики контейнеров, скачайте файл YAML шаблона ConfigMap и откройте его в редакторе.
Измените файл YAML ConfigMap с помощью настроек. Шаблон содержит все допустимые параметры с описанием. Чтобы включить параметр, удалите символ комментария (#) и задайте его значение.
Создайте ConfigMap, выполнив следующую команду kubectl:
kubectl config set-context <cluster-name> kubectl apply -f <configmap_yaml_file.yaml> # Example: kubectl config set-context my-cluster kubectl apply -f container-azm-ms-agentconfig.yaml
Изменение конфигурации и ее вступление в силу может занять несколько минут. Затем все модули pod агента Azure Monitor в кластере перезагрузятся. Перезапуск — это последовательный перезапуск для всех модулей pod агента Azure Monitor, поэтому не все они одновременно перезапускают. После завершения перезапуска вы получите сообщение, аналогичное следующему результату:
configmap "container-azm-ms-agentconfig" created`.
Проверка конфигурации
Чтобы убедиться, что конфигурация была успешно применена к кластеру, используйте следующую команду, чтобы просмотреть журналы из модуля pod агента.
kubectl logs ama-logs-fdf58 -n kube-system -c ama-logs
Если из модулей pod агента Azure Monitor возникают ошибки конфигурации, выходные данные будут отображать ошибки, аналогичные следующим:
***************Start Config Processing********************
config::unsupported/missing config schema version - 'v21' , using defaults
Используйте следующие параметры для устранения неполадок изменений конфигурации:
Используйте ту же
kubectl logs
команду из модуля pod агента.Просмотрите динамические журналы для ошибок, аналогичных следующим:
config::error::Exception while parsing config map for log collection/env variable settings: \nparse error on value \"$\" ($end), using defaults, please check config map for errors
Данные отправляются
KubeMonAgentEvents
в таблицу в рабочей области Log Analytics каждый час с серьезностью ошибок в конфигурации. Если ошибки отсутствуют, запись в таблице будет содержать данные с информацией о серьезности, которая не сообщает об ошибках. СтолбецTags
содержит дополнительные сведения об идентификаторе модуля pod и контейнера, на котором произошла ошибка, а также первое вхождение, последнее вхождение и подсчет за последний час.
Проверка версии схемы
Поддерживаемые версии схемы конфигурации доступны в виде заметки pod (версии схемы) в модуле агента Azure Monitor. Их можно увидеть с помощью следующей команды kubectl.
kubectl describe pod ama-logs-fdf58 -n=kube-system.
Параметры ConfigMap
В следующей таблице описаны параметры, которые можно настроить для управления сбором данных с помощью ConfigMap.
Параметр | Тип данных | значение | Описание |
---|---|---|---|
schema-version |
Строка (с учетом регистра) | Версия 1 | Используется агентом при анализе этого ConfigMap. Поддерживаемая в данный момент версия схемы — v1. Изменение этого значения не поддерживается и будет отклонено при оценке ConfigMap. |
config-version |
Строка | Позволяет отслеживать версию файла конфигурации в системе или репозитории системы управления версиями. Максимально допустимое количество символов равно 10, а все остальные символы усекаются. | |
[log_collection_settings] | |||
[stdout] enabled |
Логический | true false |
Определяет, включена ли коллекция журналов контейнеров stdout. Если задано true значение и нет пространств имен для коллекции журналов stdout, журналы stdout будут собираться из всех контейнеров во всех модулях pod и узлах кластера. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является true . |
[stdout] exclude_namespaces |
Строка | Массив с разделителями-запятыми | Массив пространств имен Kubernetes, для которых журналы stdout не будут собираться. Этот параметр действует только в том случае, если enabled задано значение true . Если значение по умолчанию не указано в ConfigMap, значение по умолчанию["kube-system","gatekeeper-system"] . |
[stderr] enabled |
Логический | true false |
Определяет, включена ли коллекция журналов контейнеров stderr. Если задано true значение и нет пространств имен для коллекции журналов stderr, журналы stderr будут собираться из всех контейнеров во всех модулях pod и узлах кластера. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является true . |
[stderr] exclude_namespaces |
Строка | Массив с разделителями-запятыми | Массив пространств имен Kubernetes, для которых журналы stderr не будут собираться. Этот параметр действует только в том случае, если enabled задано значение true . Если значение по умолчанию не указано в ConfigMap, значение по умолчанию["kube-system","gatekeeper-system"] . |
[env_var] enabled |
Логический | true false |
Управляет коллекцией переменных среды во всех модулях pod и узлах кластера. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является true . |
[enrich_container_logs] enabled |
Логический | true false |
Управляет обогащением журнала контейнеров для заполнения Name значений и Image свойств для каждой записи журнала, записанной в таблицу ContainerLog для всех журналов контейнеров в кластере. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . |
[collect_all_kube_events] enabled |
Логический | true false |
Определяет, собираются ли события Kube всех типов. По умолчанию события Kube с типом Normal не собираются. Если этот параметр задан true , обычные события больше не фильтруются, а все события собираются. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . |
[schema] containerlog_schema_version |
Строка (с учетом регистра) | Версия 2 Версия 1 |
Задает формат приема журналов. Если v2 используется таблица ContainerLogV2. Если v1 используется таблица ContainerLog (эта таблица устарела). Для кластеров, включающего аналитику контейнеров с помощью Azure CLI версии 2.54.0 или более поздней, используется v2 параметр по умолчанию. Дополнительные сведения см. в схеме журнала Аналитики контейнеров. |
[enable_multiline_logs] enabled |
Логический | true false |
Определяет, включены ли журналы контейнеров с несколькими линиями. Дополнительные сведения см . в разделе "Многострочный журнал" в Службе "Аналитика контейнеров". Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . Для этого требуется schema , чтобы параметр был v2 . |
[metadata_collection] enabled |
Логический | true false |
Определяет, собираются ли метаданные в KubernetesMetadata столбце ContainerLogV2 таблицы. |
[metadata_collection] include_fields |
Строка | Массив с разделителями-запятыми | Список полей метаданных для включения. Если параметр не используется, собираются все поля. Допустимые значения: ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"] |
[metric_collection_settings] | |||
[collect_kube_system_pv_metrics] enabled |
Логический | true false |
Позволяет собирать метрики использования постоянного тома (PV) в пространстве имен kube-system. По умолчанию метрики использования для постоянных томов с утверждениями сохраняемого тома в пространстве имен kube-system не собираются. Если этот параметр имеет значение true , то собираются метрики использования для всех пространств имен. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . |
[agent_settings] | |||
[proxy_config] ignore_proxy_settings |
Логический | true false |
Если true параметры прокси-сервера игнорируются. Для сред Kubernetes с поддержкой AKS и Arc, если кластер настроен с помощью перенаправленного прокси-сервера, то параметры прокси-сервера автоматически применяются и используются для агента. Для определенных конфигураций, таких как AMPLS + Proxy, может потребоваться игнорировать конфигурацию прокси-сервера. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . |
Следующие шаги
- Сведения о экономии затрат см. в коллекции журналов фильтров в службе "Аналитика контейнеров" в службе "Аналитика контейнеров " для фильтрации данных, которые не требуются.