Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Мониторинг Kubernetes в Azure Monitor описывает службы Azure Monitor , используемые для полного мониторинга среды Kubernetes и рабочих нагрузок, выполняемых на нем. В этой статье приведены рекомендации по использованию этих служб для мониторинга различных уровней среды Kubernetes на основе типичных ролей, которыми они управляют.
Ниже приведена иллюстрация общей модели типичной среды Kubernetes, начиная с уровня инфраструктуры до приложений. Каждый уровень имеет различные требования к мониторингу, которые решаются различными службами и обычно управляются разными ролями в организации.
Ответственность за различные слои среды Kubernetes и приложения, зависящие от него, обычно рассматриваются несколькими ролями. В зависимости от размера организации эти роли могут выполняться разными людьми или даже разными командами. В следующей таблице описываются различные роли, а в разделах ниже приведены сценарии мониторинга, с которыми каждый из них обычно сталкивается.
| Роли | Описание |
|---|---|
| Разработчик | Разработка и обслуживание приложения, работающего в кластере. Отвечает за конкретный трафик приложения, включая производительность приложения и сбои. Обеспечивает надежность приложения в соответствии с соглашениями об уровне обслуживания. |
| Инженер платформы | Отвечает за кластер Kubernetes. Подготавливает и поддерживает платформу, используемую разработчиком. |
| Сетевой инженер | Отвечает за трафик между рабочими нагрузками, а также входящий и исходящий трафик с кластером. Анализирует сетевой трафик и выполняет анализ угроз. |
Сетевой инженер
Сетевой инженер отвечает за трафик между рабочими задачами и любой входящий/исходящий трафик в взаимодействии с кластером. Они анализируют сетевой трафик и выполняют анализ угроз.
Уровень монитора 1 — сеть
Ниже приведены распространенные сценарии мониторинга сети.
- Создайте журналы потоков с помощью наблюдателя за сетями для регистрации сведений о IP-трафике, проходящих через группы безопасности сети, используемые кластером, а затем используйте аналитику трафика для анализа и предоставления аналитических сведений об этих данных. Используйте ту же рабочую область Log Analytics для аналитики трафика, которую вы используете для журналов контейнеров и журналов плоскости управления.
- Используя аналитику трафика, определите, передается ли какой-либо трафик из непредвиденных портов, используемых кластером, а также, если трафик передается по общедоступным IP-адресам, которые не должны предоставляться. Используйте эти сведения для определения необходимости изменения правил сети.
- Для кластеров AKS используйте надстройку "Наблюдаемость сети" для AKS (предварительная версия) для мониторинга и наблюдения за доступом между службами в кластере (трафик на востоке запада).
Инженер платформы
Инженер платформы, также известный как администратор кластера, отвечает за сам кластер Kubernetes. Они подготавливают и поддерживают платформу, используемую разработчиками. Они должны понимать работоспособность кластера и его компонентов и иметь возможность устранять обнаруженные проблемы. Кроме того, они должны понимать затраты на работу кластера и, возможно, иметь возможность выделять затраты для разных команд.
Крупные организации также могут иметь архитектор флота, который аналогичен инженеру платформы, но отвечает за несколько кластеров. Им необходимо иметь общий обзор всей ИТ-среды и выполнять административные задачи в большом масштабе. Рекомендации по масштабированию включены в руководства, приведенные ниже. Дополнительные сведения о создании ресурса Fleet для нескольких кластеров и сценариев масштабирования см. в статье "Что такое Диспетчер флота Azure Kubernetes?" .
Настройка мониторинга для инженера платформы
В следующих разделах описаны действия по мониторингу среды Kubernetes с помощью служб Azure на уровнях контейнеров. Функции и параметры интеграции предоставляются для каждого из них, чтобы определить, где может потребоваться изменить эту конфигурацию в соответствии с конкретными требованиями. Подключение управляемого Prometheus и логирование контейнеров может быть частью того же опыта, что и в разделе Включение мониторинга для кластеров Kubernetes. В следующих разделах описаны каждый отдельно, чтобы можно было рассмотреть все параметры подключения и конфигурации для каждого из них.
Включение очистки метрик Prometheus
Внимание
Чтобы использовать управляемую службу Azure Monitor для Prometheus, необходимо иметь рабочую область Azure Monitor. Для получения информации о факторах проектирования конфигурации рабочей области см. Архитектура рабочей области Azure Monitor.
Включите сбор метрик Prometheus управляемой службой Azure Monitor для Prometheus из вашего кластера при его создании или добавьте эту функциональность в существующий кластер. Дополнительные сведения см. в разделе "Включить метрики Prometheus ".
Если у вас уже есть среда Prometheus, которую вы хотите использовать для кластеров AKS, включите управляемую службу Azure Monitor для Prometheus и используйте удаленную запись для отправки данных в существующую среду Prometheus. Вы также можете использовать удаленную запись для отправки данных из существующей локальной среды Prometheus в управляемую службу Azure Monitor для Prometheus.
Сведения о метриках, собираемых по умолчанию, и их частоте сбора см. в конфигурации метрик Prometheus в Azure Monitor . Если вы хотите настроить конфигурацию, см. раздел Настройка сбора метрик Prometheus в управляемой службе Azure Monitor для Prometheus.
Включение Grafana для анализа данных Prometheus
Примечание.
Панели мониторинга Azure Monitor с Grafana в настоящее время находятся в публичном предварительном тестировании и могут заменить Управляемую Grafana. Эта версия Grafana не имеет затрат, не требует настройки и предоставляет панели мониторинга на портале Azure. Используйте Управляемый Grafana, если вы хотите создать панели мониторинга, которые объединяют данные из нескольких источников данных или если вы хотите интегрировать с существующей средой Grafana.
Создайте экземпляр Managed Grafana и свяжите его с рабочей областью Azure Monitor для использования ваших данных Prometheus в качестве источника данных. Эту конфигурацию можно также выполнить вручную с помощью добавления управляемой службы Azure Monitor для Prometheus в качестве источника данных. Для мониторинга кластеров Kubernetes доступны различные предварительно созданные панели мониторинга, включая несколько, которые представляют аналогичную информацию в виде представлений аналитики контейнеров.
Если у вас есть существующая среда Grafana, вы можете продолжать использовать ее и добавлять управляемую службу Azure Monitor для Prometheus в качестве источника данных. Вы также можете добавить источник данных Azure Monitor в Grafana для использования данных, собранных аналитикой контейнеров в пользовательских панелях мониторинга Grafana. Выполните эту конфигурацию, если вы хотите сосредоточиться на панелях мониторинга Grafana, а не с помощью представлений и отчетов аналитики контейнеров.
Включение сбора журналов контейнеров
Внимание
Чтобы использовать управляемую службу Azure Monitor для Prometheus, необходимо иметь рабочую область Log Analytics. Для получения информации о факторах проектирования конфигурации рабочей области см. Архитектура рабочей области Azure Monitor.
При включении коллекции журналов контейнеров для кластера Kubernetes Azure Monitor развертывает контейнерную версию агента Azure Monitor, которая отправляет журналы stdout/stderr и инфраструктуры в рабочую область Log Analytics в Azure Monitor, где их можно проанализировать с помощью языка запросов Kusto (KQL).
См. раздел "Включение мониторинга для кластеров AKS", чтобы ознакомиться с предварительными требованиями и параметрами конфигурации для подключения кластеров Kubernetes. Подключение с помощью политики Azure для обеспечения согласованности конфигурации всех кластеров.
После включения ведения журнала контейнеров для кластера выполните следующие действия, чтобы оптимизировать установку.
- Если вы используете только журналы для случайного устранения неполадок, попробуйте настроить эту таблицу как базовые журналы.
- Используйте предустановки затрат, описанные в разделе "Включение параметров оптимизации затрат в аналитике контейнеров", чтобы сократить затраты на прием данных аналитики контейнеров, уменьшая объем собранных данных. Отключите сбор метрик, настроив аналитику контейнеров так, чтобы она собирала только журналы и события, поскольку многие из тех же значений метрик уже собираются с помощью Prometheus.
Если у вас есть существующее решение для сбора журналов, следуйте инструкциям для этого средства или включите сбор журналов с помощью Azure Monitor и используйте функцию экспорта данных рабочей области Log Analytics для отправки данных в Центры событий Azure для пересылки в альтернативные системы.
Сбор журналов плоскости управления для кластеров AKS
Журналы компонентов уровня управления AKS реализуются в Azure в виде журналов ресурсов. Создайте параметр диагностики для каждого кластера AKS для отправки журналов ресурсов в рабочую область Log Analytics. Используйте политику Azure для обеспечения согласованной конфигурации в нескольких кластерах.
Существует стоимость отправки журналов ресурсов в рабочую область, поэтому следует собирать только те категории журналов, которые вы планируете использовать. Описание категорий, доступных для AKS, см. в Журналах ресурсов. Начните со сбора данных для минимального числа категорий, а затем измените параметр диагностики, чтобы собрать данные для дополнительных категорий по мере роста потребностей и оценить связанные с ними затраты. Журналы можно отправлять в учетную запись хранения Azure, чтобы сократить затраты, если необходимо сохранить информацию по соображениям соответствия требованиям. Для получения подробной информации о стоимости приема и хранения данных логов см. детали цен на средства мониторинга Azure.
Если вы не уверены, какие журналы ресурсов изначально включить, используйте следующие рекомендации, которые основаны на наиболее распространенных требованиях клиентов. Вы можете включить другие категории позже, если это будет необходимо.
| Категория | Включить? | Назначение |
|---|---|---|
| kube-apiserver | Включить | Рабочая область Log Analytics |
| kube-audit | Включить | хранилище Azure. Позволяет свести к минимуму затраты, сохраняя при этом журналы аудита на случай, если они потребуются аудитору. |
| kube-audit-admin | Включить | Рабочая область Log Analytics |
| kube-controller-manager | Включить | Рабочая область Log Analytics |
| kube-scheduler | Отключить | |
| автоматическое масштабирование кластера | Включите, если включено автомасштабирование | Рабочая область Log Analytics |
| охранник | Включить, если включен идентификатор Microsoft Entra | Рабочая область Log Analytics |
| ВсеМетрики | Отключить, так как метрики собираются в Управляемом Prometheus | Рабочая область Log Analytics |
Если у вас есть решение для сбора журналов, выполните инструкции по этому инструменту или включите сбор журналов с помощью Azure Monitor и используйте функцию экспорта данных рабочей области Log Analytics для отправки данных в концентратор событий Azure для пересылки в альтернативную систему.
Сбор журнала действий для кластеров AKS
Изменения конфигурации кластеров AKS хранятся в журнале действий. Создайте параметр диагностики для отправки этих данных в рабочую область Log Analytics для анализа с другими данными мониторинга. Сбор данных не требует никаких затрат, и вы можете анализировать данные или настраивать оповещения с помощью Log Analytics.
Мониторинг уровня 2. Компоненты уровня кластера
Уровень кластера включает следующие компоненты:
| Компонент | Требования к мониторингу |
|---|---|
| Узел | Изучите состояние готовности и производительность ЦП, памяти, диска и IP-адреса для каждого узла и заранее отслеживайте тенденции их использования перед развертыванием любых рабочих нагрузок. |
Ниже приведены распространенные сценарии мониторинга компонентов уровня кластера.
Портал Azure
- Используйте единую панель мониторинга мониторинга на портале Azure, чтобы увидеть производительность узлов в кластере, включая использование ЦП и памяти.
- Используйте представление "Узлы", чтобы просмотреть работоспособность каждого узла, а также состояние и производительность подов, работающих на них. Дополнительные сведения об анализе работоспособности и производительности узлов см. в статье "Анализ производительности кластера Kubernetes" на портале Azure.
- В разделе "Отчеты" используйте книги мониторинга узлов для анализа емкости диска, операций ввода-вывода диска и использования GPU. Дополнительные сведения об этих рабочих тетрадях см. в разделе мониторинга узлов.
- В разделе "Мониторинг" выберите Рабочие книги, а затем Использование IP-адресов подсети, чтобы просмотреть выделение и распределение IP-адресов на каждом узле для выбранного диапазона времени.
Панели мониторинга Grafana
- Используйте предустановленную панель мониторинга в Managed Grafana для Kubelet, чтобы увидеть здоровье и производительность каждой компоненты.
- Используйте панели мониторинга Grafana со значениями метрик Prometheus, связанными с диском, например
node_disk_io_time_seconds_totalиwindows_logical_disk_free_bytesдля мониторинга подключенного хранилища. - Несколько панелей мониторинга Kubernetes доступны для визуализации производительности и работоспособности узлов на основе данных, хранящихся в Prometheus.
Аналитика журналов
- Выберите категорию "Контейнеры" в диалоговом окне запросов для рабочей области Log Analytics, чтобы получить предварительно созданные запросы журналов для кластера, включая запрос журнала инвентаризации изображений, который извлекает данные из таблицы ContainerImageInventory, заполненной аналитикой контейнеров.
Устранение неполадок
- Для сценариев устранения неполадок может потребоваться доступ к узлам непосредственно для обслуживания или немедленного сбора журналов. В целях безопасности узлы AKS не имеют публичного доступа в интернет, но вы можете использовать команду
kubectl debugдля подключения по SSH к узлам AKS. Дополнительные сведения об этом процессе см. в статье "Подключение с SSH к узлам кластера Служба Azure Kubernetes (AKS) для обслуживания или устранения неполадок.
Анализ затрат
- Настройте OpenCost, который является нейтральным к поставщикам проектом CNCF в песочнице с открытым исходным кодом для понимания затрат на Kubernetes, чтобы поддержать анализ ваших затрат на кластер. Он экспортирует подробные данные о затратах в хранилище Azure.
- Используйте данные из OpenCost для разбивки относительного использования кластера различными командами в организации, чтобы можно было выделить затраты между ними.
- Используйте данные из OpenCost, чтобы убедиться, что кластер использует полную емкость своих узлов путем плотной упаковки рабочих нагрузок, используя меньше больших узлов в отличие от множества небольших узлов.
Мониторинг уровня 3 - компоненты управляемого Kubernetes
Управляемый уровень Kubernetes включает следующие компоненты:
| Компонент | Наблюдение |
|---|---|
| Сервер API | Отслеживайте состояние сервера API и определите любое увеличение нагрузки запроса и узкие места, если служба отключена. |
| kubelet | Отслеживайте Kubelet, чтобы помочь устранить неполадки управления подами, когда поды не запускаются, узлы не готовы или поды убиваются. |
Ниже приведены распространенные сценарии мониторинга управляемых компонентов Kubernetes.
Портал Azure
- Используйте обозреватель метрик для просмотра счетчика запросов inflight для кластера.
- Используйте рабочую книгу Kubelet для просмотра работоспособности и производительности каждого kubelet.
Grafana
- Используйте предварительно созданную панель мониторинга в управляемой Grafana для Kubelet, чтобы увидеть работоспособность и производительность каждого kubelet.
- Используйте панель мониторинга, например сервер API Kubernetes, для полного представления производительности сервера API. Здесь можно получить такие значения, как задержка запросов и время обработки рабочих очередей.
Аналитика журналов
Используйте запросы журналов с журналами ресурсов для анализа журналов уровня управления, созданных компонентами AKS.
Все действия конфигурации для AKS регистрируются в журнале действий. При отправке журнала действий в рабочую область Log Analytics, его можно проанализировать с помощью Log Analytics. Например, следующий пример запроса можно использовать для возврата записей, определяющих успешное обновление во всех кластерах AKS.
AzureActivity | where CategoryValue == "Administrative" | where OperationNameValue == "MICROSOFT.CONTAINERSERVICE/MANAGEDCLUSTERS/WRITE" | extend properties=parse_json(Properties_d) | where properties.message == "Upgrade Succeeded" | order by TimeGenerated desc
Устранение неполадок
- В сценариях устранения неполадок можно воспользоваться журналами kubelet, выполнив для доступа к ним процесс, описанный в статье Получение журналов kubelet из узлов кластера Службы Azure Kubernetes (AKS).
Мониторинг уровня 4 - объектов и рабочих нагрузок Kubernetes
Уровень объектов и рабочих нагрузок Kubernetes включает следующие компоненты:
| Компонент | Требования к мониторингу |
|---|---|
| Развертывания | Отслеживайте фактическое состояние развертывания по сравнению с желаемым, а также статус и использование ресурсов модулей Pods, работающих на них. |
| Поды | Отслеживайте состояние и использование ресурсов модулей Pod, работающих в кластере AKS, в том числе их ЦП и памяти. |
| Контейнеры | Мониторинг использования ресурсов, включая ЦП и память, контейнеров, работающих в кластере AKS. |
Ниже приведены распространенные сценарии мониторинга объектов и рабочих нагрузок Kubernetes.
Портал Azure
- Используйте представления узлов и контроллеров для просмотра работоспособности и производительности модулей pod, выполняемых на них, и детализации до работоспособности и производительности своих контейнеров.
- Используйте представление "Контейнеры", чтобы просмотреть работоспособность и производительность контейнеров. Дополнительные сведения об анализе работоспособности и производительности контейнеров см. в статье "Анализ данных кластера Kubernetes с помощью аналитики контейнеров".
- Используйте книгу "Развертывания" , чтобы просмотреть метрики развертывания. Дополнительные сведения см. в разделе "Метрики развертывания и HPA" с помощью Container Insights.
Панели мониторинга Grafana
- Используйте предварительно созданные панели мониторинга в Управляемой Grafana для узлов и подов, чтобы просмотреть их работоспособность и производительность.
- Несколько панелей мониторинга Kubernetes доступны для визуализации производительности и работоспособности узлов на основе данных, хранящихся в Prometheus.
Динамические данные
- В сценариях устранения неполадок Аналитика контейнеров предоставляет доступ к динамическим журналам контейнеров AKS (stdout/stderror), событиям и метрикам pod. Дополнительные сведения об этой функции см. в статье "Просмотр журналов Kubernetes", событий и метрик pod в режиме реального времени.
Оповещения для инженера платформы
Оповещения в Azure Monitor позволяют заблаговременно получать уведомления об интересных данных и закономерностях в данных мониторинга. Они позволяют выявлять и устранять проблемы в системе до того, как ваши клиенты заметят их. Если у вас есть существующее решение ITSM для оповещения, его можно интегрировать с Azure Monitor. Вы также можете экспортировать данные рабочей области для отправки данных из рабочей области Log Analytics в другое расположение, которое поддерживает текущее решение для оповещения.
Типы оповещений
В следующей таблице описаны различные типы пользовательских правил генерации оповещений, которые можно создать на основе данных, собранных службами, описанными выше.
| Тип оповещения | Описание |
|---|---|
| Оповещения Prometheus | Оповещения Prometheus записываются на языке запросов Prometheus (Prom QL) и применяются к метрикам Prometheus, хранящимся в управляемых службах Azure Monitor для Prometheus. Рекомендуемые оповещения уже включают наиболее распространенные оповещения Prometheus, и при необходимости можно создавать дополнительные правила генерации оповещений. |
| Правила оповещений о метриках | Правила оповещений о метриках используют те же значения метрик, что и Metrics Explorer. На самом деле можно создать правило генерации оповещений непосредственно из обозревателя метрик с данными, которые вы сейчас анализируете. Правила оповещений метрик могут быть полезны для оповещения о производительности AKS с использованием любых значений в эталонных показателях данных AKS. |
| Правила оповещения при поиске по журналам | Используйте правила поиска по журналам для генерации оповещений, чтобы создать оповещение из результатов запроса журнала. Дополнительные сведения см. в статьях "Как создать оповещения поиска по журналам в Container Insights" и "Как выполнять запросы журналов в Container Insights". |
Рекомендуемые оповещения
Начните с набора рекомендуемых оповещений Prometheus из правил оповещения по метрикам в анализе контейнеров (предварительный просмотр), которые включают наиболее распространенные условия создания оповещений для кластера Kubernetes. Вы можете добавить дополнительные правила генерации оповещений позже при определении дополнительных условий генерации оповещений.
разработчик.
Помимо разработки приложения разработчик поддерживает приложение, работающее в кластере. Они отвечают за конкретный трафик приложения, включая производительность и сбои приложений, и обеспечить надежность приложения в соответствии с корпоративными соглашениями об уровне обслуживания.
Монитор уровня 5. Приложение
Используйте дистрибутив Azure Monitor OpenTelemetry для активации возможностей Application Insights и настройте сэмплирование для управления затратами.
Опыт работы с Application Insights
- Просмотрите панель обзора для быстрой оценки работоспособности и производительности приложений.
- Просмотр динамических метрик для анализа активности приложений и производительности в режиме реального времени.
- Анализ сбоев, производительности и транзакций для диагностики работоспособности и эффективности приложений.
- Используйте карту приложения для визуального обзора архитектуры приложения и взаимодействия компонентов.
- Создайте стандартные тесты для мониторинга доступности приложений.
Журналы приложений
- Аналитика контейнеров отправляет логи stdout/stderr в рабочую область Log Analytics. См. журналы ресурсов для описания разных журналов и службы Kubernetes для списка таблиц, в которые они отправляются.
Сетка служб
- Для кластеров AKS разверните надстройку сетевого сервиса с использованием Istio, которая обеспечивает наблюдаемость вашей архитектуры микросервисов. Istio — это сетка службы с открытым исходным кодом, которая прозрачно распространяется на существующие распределенные приложения. Надстройка помогает в развертывании и управлении Istio для AKS.
См. также
- См. раздел "Включение мониторинга для кластеров Kubernetes" чтобы включить Управляемый Prometheus и сбор журналов на вашем кластере.