Веб-интерфейсы, связанные с модулем: grafana

Устанавливает и полностью настраивает Prometheus, настраивает сбор метрик со многих распространенных приложений, а также предоставляет необходимый минимальный набор alert’ов для Prometheus и dashboard Grafana.

Если используется StorageClass с поддержкой автоматического расширения (allowVolumeExpansion: true), при нехватке места на диске для данных Prometheus его емкость будет увеличена.

Ресурсы CPU и memory автоматически выставляются при пересоздании пода на основе истории потребления, благодаря модулю Vertical Pod Autoscaler. Также, благодаря кэшированию запросов к Prometheus с помощью Trickster, потребление памяти Prometheus сильно сокращается.

Поддерживается как pull-, так и push-модель получения метрик.

Мониторинг аппаратных ресурсов

Реализовано отслеживание нагрузки на аппаратные ресурсы кластера с графиками по утилизации:

  • процессора;
  • памяти;
  • диска;
  • сети.

Графики доступны с агрегацией в разрезе:

  • по подам;
  • контроллерам;
  • пространствам имен;
  • узлам.

Мониторинг Kubernetes

Deckhouse настраивает мониторинг широкого набора параметров «здоровья» Kubernetes и его компонентов, в частности:

  • общей утилизации кластера;
  • связанности узлов Kubernetes между собой (измеряется rtt между всеми узлами);
  • доступности и работоспособности компонентов control plane:
    • etcd;
    • coredns и kube-dns;
    • kube-apiserver и др.
  • синхронизации времени на узлах и др.

Мониторинг Ingress

Подробно описан здесь

Режим расширенного мониторинга

В Deckhouse возможно использование режима расширенного мониторинга, который предоставляет возможности алертов по дополнительным метрикам: свободному месту и inode на дисках узлов, утилизации узлов, доступности подов и образов контейнеров, истечении действия сертификатов, другим событиям кластера.

Алертинг в режиме расширенного мониторинга

Deckhouse позволяет гибко настроить алертинг на каждый из namespace’ов и указывать разную критичность в зависимости от порогового значения. Есть возможность указать множество пороговых значений отправки алертов в различные namespace’ы, например, для таких параметров, как:

  • значения свободного места и inodes на диске;
  • утилизация CPU узлов и контейнера;
  • процент 5xx ошибок на nginx-ingress;
  • количество возможных недоступных подов в Deployment, StatefulSet, DaemonSet.

Алерты

Мониторинг в составе Deckhouse включает также и возможности уведомления о событиях. В стандартной поставке уже идет большой набор только необходимых алертов, покрывающих состояние кластера и его компонентов. При этом всегда остается возможность добавления кастомных алертов.

Отправка алертов во внешние системы

Deckhouse поддерживает отправку алертов с помощью Alertmanager:

  • по протоколу SMTP;
  • в PagerDuty;
  • в Slack;
  • в Telegram;
  • посредством Webhook;
  • по любым другим каналам, поддерживаемым в Alertmanager.

Включенные модули

Схема взаимодействия

Компоненты, устанавливаемые Deckhouse

Компонент Описание
prometheus-main Основной Prometheus, который выполняет scrape каждые 30 секунд (с помощью параметра scrapeInterval можно изменить это значение). Именно он обрабатывает все правила, отправляет алерты и является основным источником данных.
prometheus-longterm Дополнительный Prometheus, который выполняет scrape данных из основного Prometheus (prometheus-main) каждые 5 минут (с помощью параметра longtermScrapeInterval можно изменить это значение). Используется для продолжительного хранения истории и отображения больших промежутков времени.
trickster Кэширующий прокси, снижающий нагрузку на Prometheus.
aggregating-proxy Агрегирующий и кеширующий прокси, снижающий нагрузку на Prometheus и объединяющий main и longterm в один источник.
memcached Сервис кэширования данных в оперативной памяти.
grafana Управляемая платформа визуализации данных. Включает подготовленные dashboard’ы для всех модулей Deckhouse и некоторых популярных приложений. Grafana умеет работать в режиме высокой доступности, не хранит состояние и настраивается с помощью CRD.
metrics-adapter Компонент, соединяющий Prometheus и Kubernetes metrics API. Включает поддержку HPA в кластере Kubernetes.
vertical-pod-autoscaler Компонент, позволяющий автоматически изменять размер запрошенных ресурсов для подов с целью оптимальной утилизации CPU и памяти.
Различные exporter’ы Подготовленные и подключенные к Prometheus exporter’ы. Список включает множество exporter’ов для всех необходимых метрик: kube-state-metrics, node-exporter, oomkill-exporter, image-availability-exporter и многие другие.

Внешние компоненты

Deckhouse может интегрироваться с большим количеством разнообразных решений следующими способами:

Название Описание
Alertmanagers Alertmanager’ы могут быть подключены к Prometheus и Grafana и находиться как в кластере Deckhouse, так и за его пределами.
Long-term metrics storages Используя протокол remote write, возможно отсылать метрики из Deckhouse в большое количество хранилищ, включающее Cortex, Thanos, VictoriaMetrics.