Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся сведения о настройке сбора данных в Container Insights для кластера Kubernetes после его интеграции. Рекомендации по включению Container insights в вашем кластере см. в разделе Включение мониторинга для кластеров Kubernetes.
Методы конфигурации
Существует два метода настройки и фильтрации данных, собираемых в Аналитике контейнеров. В зависимости от настроек, вы можете выбрать между двумя методами или вам может быть необходимо использовать один из них. Эти два метода описаны в таблице ниже с подробными сведениями в следующих разделах.
Метод | Описание |
---|---|
Правило сбора данных (DCR) | Правила сбора данных — это наборы инструкций, поддерживающих сбор данных с помощью конвейера Azure Monitor. DCR создается при включении аналитики контейнеров, и можно изменить параметры в этом DCR с помощью портала Azure или других методов. |
Карта конфигурации | 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
ИнвентарьKubePodЕсли вы хотите настроить параметры, нажмите кнопку "Изменить параметры коллекции".
Имя Описание Частота сбора Определяет частоту сбора данных агентом. Допустимые значения: от 1 мин до 30 мин с шагом 1 минута. Значение по умолчанию — 1 минута. Этот параметр нельзя настроить с помощью ConfigMap. Фильтрация пространства имен Выключено: Включает сбор данных по всем пространствам имен.
Включить: собирает только данные из значений в поле пространств имен.
Исключить: Собирает данные из всех пространств имен, за исключением значений в поле пространств имен.
Массив пространств имен Kubernetes, разделенных запятыми, для сбора данных об инвентаризации и производительности на основе namespaceFilteringMode. Например, пространства имен = ["kube-system", "default"] с параметром Include собирают только эти два пространства имен. С параметром Исключить агент собирает данные из всех других пространств имен, за исключением kube-system и default.Собранные данные Определяет, какие таблицы аналитики контейнеров необходимо собирать. Ниже приведено описание каждой группировки. Включение ContainerLogV2 Логический флаг для включения схемы ContainerLogV2. Если задано значение true, отправляются журналы stdout/stderr в таблицу ContainerLogV2. В противном случае журналы контейнеров отправляются в таблицу ContainerLog , если иное не указано в ConfigMap. При указании отдельных потоков необходимо включить соответствующую таблицу для ContainerLog или ContainerLogV2. Включение коллекции Syslog Включает сбор данных Syslog из кластера. Параметр "Собранные данные" позволяет выбрать таблицы, заполненные для кластера. Таблицы группируются по наиболее распространенным сценариям. Чтобы указать отдельные таблицы, необходимо изменить DCR с помощью другого метода.
Группировка Таблицы Примечания. Все (по умолчанию) Все стандартные таблицы аналитики контейнеров Требуется для включения визуализаций аналитики контейнеров по умолчанию Производительность Перф, InsightsMetrics Журналы и события ContainerLog или ContainerLogV2, KubeEvents, KubePodInventory Рекомендуется, если вы включили управляемые метрики Prometheus Рабочие нагрузки, развертывания и HPA ИнсайтсМетрикс, КубПодИнвентори, КубСобытия, КонтейнерИнвентори, КонтейнерУзелИнвентори, КубУзелИнвентори, КубСервисы Постоянные тома InsightsMetrics, KubePVInventory Нажмите кнопку "Настроить", чтобы сохранить параметры.
Применимые таблицы и метрики для DCR
Параметры для частоты сбора и фильтрации пространства имен в DCR не применяются ко всем данным Container Insights. В следующих таблицах перечислены таблицы в рабочей области Log Analytics, используемой аналитикой контейнеров и метриками, которые собираются вместе с параметрами, применяемыми к каждому.
Имя таблицы | Интервал? | Пространство имен? | Замечания |
---|---|---|---|
Инвентаризация контейнеров | Да | Да | |
Инвентарь контейнерного узла | Да | Нет | Параметр сбора данных для пространств имен не применяется, так как узел Kubernetes не является ресурсом с областью действия пространства имен |
KubeNodeInventory | Да | Нет | Параметр сбора данных для пространств имен неприменим, так как узлы Kubernetes не являются ресурсами с областью видимости пространства имен. |
ИнвентарьKubePod | Да | Да | |
Инвентарь KubePV | Да | Да | |
KubeServices | Да | Да | |
KubeEvents | Нет | Да | Параметр сбора данных для интервала не применим для событий Kubernetes |
Перф | Да | Да | Настройка сбора данных для пространств имен неприменима к метрикам, связанным с узлом Kubernetes, так как узел Kubernetes не является объектом с областью имен. |
Инсайты и метрики | Да | Да | Параметры сбора данных применимы только для метрик, которые собирают следующие пространства имен: container.azm.ms/kubestate, container.azm.ms/pv и container.azm.ms/gpu |
Примечание.
Фильтрация пространства имен не применяется к записям агента ama-logs. В результате, даже если пространство имен kube-system указано среди исключенных пространств имен, записи, связанные с контейнером агента ama-logs, по-прежнему будут обрабатываться.
Пространство имен метрик | Интервал? | Пространство имен? | Замечания |
---|---|---|---|
Взаимосвязи.контейнер/узлы | Да | Нет | Узел не является ресурсом, имеющим область действия в рамках пространства имён |
Insights.Контейнер/Подсистемы | Да | Да | |
Insights.контейнер/контейнеры | Да | Да | |
Insights.container/persistentvolumes | Да | Да |
Потоковые значения в DCR
При указании таблиц для сбора с помощью CLI или ARM необходимо указать имя потока, соответствующее определенной таблице в рабочей области Log Analytics. В следующей таблице перечислены имена потока для каждой таблицы.
Примечание.
Если вы знакомы со структурой правила сбора данных, имена потоков в этой таблице указываются в разделе потоков данных DCR.
Стрим | Таблица аналитики контейнеров |
---|---|
Microsoft-ContainerInventory | Инвентаризация контейнеров |
Microsoft-ContainerLog | Журнал контейнера |
Microsoft-ContainerLogV2 | ContainerLogV2 |
Microsoft-ContainerLogV2-HighScale | ContainerLogV2 (режим высокой шкалы)1 |
Microsoft-ContainerNodeInventory | Инвентарь контейнерного узла |
Microsoft-InsightsMetrics | Инсайты и метрики |
Microsoft-KubeEvents | KubeEvents |
Microsoft-KubeMonAgentEvents | События KubeMonAgent |
Microsoft-KubeNodeInventory | KubeNodeInventory |
Microsoft-KubePodInventory | ИнвентарьKubePod |
Microsoft-KubePVInventory | Инвентарь KubePV |
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 в кластере перезагрузятся. Перезапуск — это пошаговый перезапуск для всех подов агента Azure Monitor, поэтому они не перезапускаются одновременно. После завершения перезапуска вы получите сообщение, аналогичное следующему результату:
configmap "container-azm-ms-agentconfig" created`.
Проверка конфигурации
Чтобы убедиться, что конфигурация была успешно применена к кластеру, используйте следующую команду для того, чтобы просмотреть журналы из пода агента.
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, а все остальные символы усекаются. | |
[параметры_сбора_логов] | |||
[stdout] enabled |
Логический | истина ложь |
Определяет, включен ли сбор журналов контейнера stdout. Если установлено значение true и никакие пространства имен не исключаются для сбора журналов stdout, журналы stdout будут собираться из всех контейнеров во всех pod и узлах кластера. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является true . |
[stdout] exclude_namespaces |
Строка | Массив, разделённый запятыми | Массив пространств имен Kubernetes, для которых журналы stdout не будут собираться. Этот параметр действует только в том случае, если enabled задано значение true . Если это не указано в ConfigMap, используется значение по умолчанию.["kube-system","gatekeeper-system"] . |
[stderr] enabled |
Логический | истина ложь |
Определяет, включен ли сбор логов контейнера stderr. Если задается true и никакие пространства имен не исключаются для сбора журналов stderr, журналы stderr будут собираться из всех контейнеров во всех подах и узлах кластера. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является true . |
[stderr] exclude_namespaces |
Строка | Массив, разделённый запятыми | Массив пространств имен Kubernetes, для которых журналы ошибок stderr не будут собираться. Этот параметр действует только в том случае, если enabled задано значение true . Если это не указано в ConfigMap, используется значение по умолчанию.["kube-system","gatekeeper-system"] . |
[env_var] enabled |
Логический | истина ложь |
Управляет коллекцией переменных среды во всех модулях pod и узлах кластера. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является true . |
[enrich_container_logs] enabled |
Логический | истина ложь |
Управляет обогащением журнала контейнеров для заполнения значений свойств Name и Image для каждой записи журнала, записываемой в таблицу ContainerLog для всех журналов контейнеров в кластере. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . |
[collect_all_kube_events] enabled |
Логический | истина ложь |
Определяет, собираются ли события 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 |
Логический | истина ложь |
Определяет, включены ли журналы контейнеров с несколькими линиями. См. Многострочный журнал в Службе Аналитика контейнеров для получения подробной информации. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . Для этого параметр schema должен быть v2 . |
[metadata_collection] enabled |
Логический | истина ложь |
Определяет, собираются ли метаданные в KubernetesMetadata столбце ContainerLogV2 таблицы. |
[metadata_collection] include_fields |
Строка | Массив, разделённый запятыми | Список полей метаданных для включения. Если параметр не используется, собираются все поля. Допустимые значения: ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"] |
[log_collection_settings.multi_tenancy] enabled |
Логический | истина ложь |
Определяет, включена ли многотенантность. Дополнительные сведения см. в многотенантном управляемом логировании. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . |
[настройки_сбора_метрик] | |||
[collect_kube_system_pv_metrics] enabled |
Логический | истина ложь |
Позволяет собирать метрики использования постоянного тома (PV) в пространстве имен kube-system. По умолчанию метрики использования постоянных томов с запросами на постоянный том в пространстве имен kube-system не собираются. Если этот параметр установлен на true , то метрики использования PV собираются для всех пространств имен. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . |
[agent_settings] | |||
[proxy_config] ignore_proxy_settings |
Логический | истина ложь |
Когда true , параметры прокси-сервера игнорируются. Для сред Kubernetes с поддержкой AKS и Arc, если ваш кластер настроен с прямым прокси-сервером, то параметры прокси-сервера автоматически применяются и используются агентом. Для определенных конфигураций, таких как AMPLS + Proxy, может потребоваться игнорировать конфигурацию прокси-сервера. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . |
[agent_settings.fbit_config] | |||
enable_internal_metrics |
Логический | истина ложь |
Определяет, включена ли коллекция внутренних метрик. Если значение по умолчанию не указано в ConfigMap, значением по умолчанию является false . |
Следующие шаги
- См. раздел Сбор журналов фильтрации в службе "Аналитика контейнеров" для получения сведений о экономии затрат за счет настройки фильтрации данных, которые вам не требуются.