Приготовьтесь! Сейчас, буквально за 3 минуты, вы узнаете о самых популярных решениях для мониторинга кластеров Kubernetes. Мы сравним их по 5 параметрам:
- Простота установки
- Доступность
- Функционал: мониторинг
- Функционал: логи
- Функционал: уведомления (alerts)
1. Prometheus + InfluxDB + Grafana
В этом стеке используется Prometheus для сбора метрик, InfluxDB для обработки данных и Grafana для наглядного и удобного представления графиков, схем и т.д.
Prometheus уже давно стал стандартным инструментом для сбора метрик в Kubernetes, а по количеству возможностей представления данных едва ли что-то может конкурировать с Grafana.
Все компоненты устанавливаются через Helm, так что проблем с установкой нет. Правда, использовать их сразу «из коробки» не получится — придется немного поиграться с конфигурированием. Хорошие новости: Grafana уже содержит в себе ряд dashboards для мониторинга Kubernetes, так что с ней проблем возникнуть не должно.
Все компоненты распространяются по свободной лицензии.
Cтек позволяет мониторить состояние контейнеров, получать информацию о загруженности нод (CPU, RAM) и др. через удобный и понятный UI. Prometheus дает доступ к огромному количеству метрик, но при необходимости вы можете подключить и свои собственные экспортеры.
К сожалению, у рассматриваемого стека есть большой минус — отсутствие возможности работы с логами.
Что касается оповещений, то здесь все в порядке: Prometheus имеет встроенный модуль alertmanager. Его можно настроить через файлы конфигурации либо через графический интерфейс Prometheus, правда, назвать его удобным весьма сложно.
2. Prometheus + ELK stack (ElasticSearch + Logstash + Kibana)
В этом стеке мы видим уже знакомый нам Prometheus для сбора метрик, но для индексации данных применяется уже ElasticSearch, для управления логами — Logstash, а для отображения метрик — Kibana.
Prometheus + ELK — одно из наиболее популярных и гибких решений для мониторинга, но при этом довольно сложное в конфигурировании.
От средней до высокой. В отличие от Grafana и различных SaaS-решений, в этом стеке отсутствуют готовые дэшборды для Kubernetes и придется потратить некоторое время на их настройку в Kibana. Однако после того как все готово, ими очень удобно управлять.
Как и в предыдущем случае, все компоненты устанавливаются через Helm.
Все компоненты бесплатны и распространяются по модели open source. Elasticsearch также доступен как платный онлайн-сервис (SaaS), но, на наш взгляд, гораздо дешевле использовать его на своих вычислительных ресурсах.
Возможности Prometheus + ELK stack практически безграничны. Kibana дает доступ к большому количеству графиков и дэшбордов, позволяя просматривать практически любую информацию о состоянии кластера.
Как уже было сказано, Prometheus собирает множество метрик, и при желании в данной конфигурации также можно использовать дополнительные экспортеры.
Одной из ключевых областей применения ELK является управление логами. Возможностей хватит для большинства задач: стек обеспечивает фильтрацию, группировку логов, корреляцию с ошибками и многое другое.
В данной конфигурации алерты можно настроить следующим образом:
используя модуль alertmanager в Prometheus.
используя ElasticSearch Watcher в рамках модуля X-Pack. Он позволяет легко настроить алерты, но его необходимо устанавливать отдельно, так как он не входит в стандартную поставку.
3. Datadog
Datadog — отличное SaaS-решение, если вы хотите сразу получить готовое решение «из коробки». Datadog сам собирает метрики и отображает их в виде удобных графиков, не требуя от пользователя сложной настройки.
Установить Datadog очень просто — достаточно лишь скопировать yaml-файл из панели управления и запустить в своем кластере. Через пару минут вы получаете доступ к статистике о контейнерах и кластерах. А если совсем лень, Datadog можно установить и через Helm.
В отличие от предыдущих вариантов, Datadog — платное решение. Доступность начинается от $15 за ноду в месяц, однако сервис предлагает бесплатный тарифный план для кластеров, в которых не более 5 нод. Платная версия включает в себя функции APM (Application Performance Management)
Datadog дает доступ к различным метрикам приложений и кластера (CPU, RAM) через веб-интерфейс. Если у вас в кластере запущен Prometheus, его можно интегрировать с Datadog.
Datadog дает возможность собирать, индексировать и просматривать логи, однако по сравнению с ELK возможности логирования скромные.
Алерты легко настроить, используя готовые шаблоны или выбрав собственные события и метрики.
4. NewRelic
NewRelic — известная компания, предлагающая услуги мониторинга по модели SaaS для разных платформ. Мониторинг для Kubernetes находится в стадии бета-тестирования, и по сравнению с другими решениями возможности для мониторинга кажутся довольно ограниченными, однако это компенсируется невысокой Доступностью. Как и в случае c Datadog, NewRelic собирает метрики и отображает их в виде красивых графиков прямо «из коробки».
Сервис легко интегрировать с кластером, как и Datadog, а в случае использования Helm chart установка сводится к выполнению пары команд.
Тарифы начинаются от $0,72, что делает его очень привлекательным для небольших проектов. К сожалению, APM оплачивается отдельно и стоит от $10 за ноду в месяц.
Возможности мониторинга близки к Datadog, но без возможности интеграции с Prometheus. Однако встроенных метрик должно быть достаточно для большинства пользователей.
Возможность логирования предусмотрена, но требует установки отдельного плагина.
Есть, легко настраиваются под требования инфраструктуры.
Заключение
Если описать рассмотренные инструменты кратко, можно сделать следующий вывод: если вам нужен быстрый мониторинг «здесь и сейчас», SaaS-решения Datadog и NewRelic подойдут лучше всего. Если же у вас есть время и ресурсы, присмотритесь к Prometheus + Grafana либо ELK — едва ли можно найти более гибкие и универсальные решения.
Оригинал статьи размещен здесь: https://mcs.mail.ru/blog/kubernetes-monitoring-instruments/