Поделиться через


Оптимизация затрат на мониторинг для аналитики контейнеров

Кластеры Kubernetes генерируют большой объем данных, который собирается с помощью Container Insights. Так как плата взимается за прием и хранение этих данных, необходимо настроить среду для оптимизации затрат. Вы можете значительно сократить затраты на мониторинг, отфильтровав данные, которые вам не нужны, а также оптимизируя конфигурацию рабочей области Log Analytics, в которой хранятся данные.

Когда вы проанализировали собранные данные и определили, есть ли какие-либо данные, которые вы собираете, которые не требуются, существует несколько вариантов фильтрации любых данных, которые вы не хотите собирать. Этот диапазон от выбора из набора предопределенных конфигураций затрат до использования различных функций для фильтрации данных на основе определенных критериев. В этой статье приведено пошаговое руководство по анализу и оптимизации сбора данных для аналитики контейнеров.

Включите коллекцию метрик с помощью управляемой службы Azure Monitor для Prometheus.

Служба Container Insights ранее использовала данные из Log Analytics для работы с визуализациями на портале Azure. С выпуском Managed Prometheus формат коллекции метрик дешевле и эффективнее. Служба Container Insights теперь предоставляет возможность визуализации с помощью метрики Managed Prometheus. Чтобы начать использование Управляемого Prometheus, см. раздел "Переход на использование визуализаций Managed Prometheus" в Azure Monitor.

Проанализируйте ваш процесс приема данных

Чтобы определить оптимальные возможности экономии затрат, проанализируйте объем данных, собираемых в разных таблицах. Эти сведения помогут определить, какие таблицы потребляют большинство данных, и помочь вам принимать обоснованные решения о том, как сократить затраты.

Вы можете визуализировать, сколько данных поступает в каждую рабочую область, с помощью Runbook по использованию Container Insights, который доступен на странице рабочей книги отслеживаемого кластера.

Снимок экрана: раскрывающийся список

Отчет позволяет просматривать использование данных различными категориями, такими как таблица, пространство имен и источник журнала. Используйте эти различные представления для определения данных, которые вы не используете, и их можно отфильтровать, чтобы сократить затраты.

Снимок экрана: пример книги об использовании данных.

Выберите параметр, чтобы открыть запрос в Log Analytics, где можно выполнить более подробный анализ, включая просмотр отдельных записей, собираемых. Ознакомьтесь с журналами запросов из Container Insights для получения дополнительных запросов, которые можно использовать для анализа собранных данных.

Например, на следующем снимка экрана показана модификация запроса журнала, используемого для таблицы by table , в котором отображаются данные по пространству имен и таблице.

Снимок экрана: запрос журнала, отображающий использование пространства имен и таблицы.

Фильтрация собранных данных

После определения данных, которые можно фильтровать, используйте различные параметры конфигурации в аналитике контейнеров для фильтрации данных, которые не требуются. Доступны параметры для выбора предопределенных конфигураций, задания отдельных параметров и использования пользовательских запросов журналов для подробной фильтрации.

Настройки журналов

Самый простой способ фильтрации данных — использовать предустановки журналов на портале Azure из параметров монитора.> Каждая предустановка включает различные наборы таблиц для сбора на основе различных профилей операций и затрат. Предустановки журналов предназначены для быстрого настройки сбора данных на основе распространенных сценариев.

Снимок экрана: параметры собранных данных.

Параметры фильтрации

После выбора соответствующего предварительного набора журналов можно фильтровать дополнительные данные с помощью различных методов в следующей таблице. Каждый параметр позволяет фильтровать данные на основе разных критериев. Когда вы закончите работу с конфигурацией, необходимо собирать только данные, необходимые для анализа и оповещения.

Фильтровать по Описание
Таблицы Измените DCR вручную, если вы хотите выбрать отдельные таблицы для заполнения групп журналов, отличающихся от предустановленных. Например, вы можете захотеть собрать ContainerLogV2, но не собирать KubeEvents, которые включены в ту же предустановку журнала.

Дополнительные сведения см. в разделе "Потоковые значения " для списка потоков, используемых в DCR.
Журналы контейнеров ContainerLogV2 хранит записи stdout/stderr, созданные контейнерами в кластере. Хотя вы можете отключить коллекцию всей таблицы с помощью DCR, можно настроить коллекцию журналов stderr и stdout отдельно с помощью ConfigMap для кластера. Так как stdout и stderr параметры можно настроить отдельно, можно включить одно и не другое.

См. Фильтрация журналов контейнеров с помощью ConfigMap для получения более подробной информации о фильтрации журналов контейнеров.
Пространство имен В Kubernetes пространства имен служат для группировки ресурсов в кластере. Вы можете отфильтровать данные из ресурсов в определенных пространствах имен, которые не требуются. С помощью DCR вы можете фильтровать данные о производительности только по пространству имен, если вы включили сбор данных для таблицы Perf. Используйте ConfigMap для фильтрации данных для определенных пространств имен в stdout и stderr журналах.

См. фильтрацию журналов контейнеров для получения подробной информации о фильтрации журналов по пространству имен и фильтрацию журналов платформы (пространства имен System Kubernetes) для получения информации о системном пространстве имен.
Поды и контейнеры Фильтрация заметок позволяет отфильтровать журналы контейнеров на основе заметок, которые вы делаете в модуле pod. С помощью ConfigMap можно указать, следует ли собирать журналы stdout и stderr для отдельных pod и контейнеров.

Смотрите фильтрацию на основе аннотаций для рабочих нагрузок для получения сведений об обновлении вашего ConfigMap и настройке аннотаций в ваших pod.

Преобразования

Преобразования времени приёма позволяют применить запрос KQL для фильтрации и преобразования данных в потоке обработки данных Azure Monitor до его сохранения в рабочей области Log Analytics. Это позволяет фильтровать данные на основе условий, которые нельзя выполнить с другими параметрами.

Например, можно отфильтровать журналы контейнеров на основе уровня журнала в ContainerLogV2. Вы можете добавить преобразование в DCR службы аналитики контейнеров, которое будет выполнять функциональность, показанную на следующей схеме. В этом примере собираются события только error и critical уровня, тогда как любые другие события игнорируются.

Альтернативная стратегия заключается в сохранении менее важных событий в отдельной таблице, настроенной для базовых журналов. События по-прежнему будут доступны для устранения неполадок, но с значительной экономией затрат на прием данных.

Для получения дополнительных сведений о добавлении преобразований в DCR сервиса "Аналитика контейнеров" см. раздел "Преобразования данных", включая примеры DCR, использующих данные преобразования.

Настройка ценовых категорий

Базовые журналы в Azure Monitor предоставляют значительную скидку на прием данных в рабочей области Log Analytics для данных, которые иногда используются для отладки и устранения неполадок. Таблицы, настроенные для базовых журналов, предлагают значительную скидку на прием данных в обмен на затраты на запросы журналов, что означает, что они идеально подходят для данных, которые требуются, но к которым вы обращаетесь редко.

Настройте ContainerLogV2 для базовых журналов, чтобы значительно сократить затраты на прием данных для журналов контейнеров. Ознакомьтесь с экономически эффективными стратегиями оповещения для AKS, чтобы продолжать получать оповещения по журналам контейнеров, настроенных с этой таблицей для базовых журналов.

Экономичные стратегии оповещений

Оповещение является важной частью рабочих нагрузок мониторинга в службе Azure Kubernetes (AKS). Для расширенных оповещений требуются журналы уровня Аналитики в рабочей области Log Analytics, но это может быть слишком дорого для сред с большим объемом и определенных типов журналов, таких как журналы аудита.

Вы можете значительно сократить затраты на прием данных, преобразовав таблицы с журналами контейнеров в базовые журналы и используя другие экономичные стратегии платформы Log Analytics. Azure Monitor предоставляет варианты для оповещения по событиям и сводным данным на основе этих таблиц, что дает вам больше контроля над затратами без потери видимости состояния и поведения ваших AKS-нагрузок. Дополнительные сведения см. в стратегиях экономичного оповещения для AKS.

Следующие шаги

Чтобы помочь вам понять, каковы, скорее всего, будут затраты на основе последних шаблонов использования из данных, собранных с помощью возможностей Container insights, см. раздел "Анализ использования в рабочей области Log Analytics".