Skip to main content

Сравнение сред мониторинга контейнеризации на примере Kubernetes

Описание способов мониторинга Kubernetes

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

На рисунке ниже приведена статистика по количеству ежемесячных вопросов на ресурсах StackOverflow и GitHub по популярным системам управления контейнеризованными приложениями Mesos, Kubernetes и Docker-swarm

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

В рамках данной статьи мы рассмотрим варианты мониторинга системы управления контейнеризованными приложениями на примере Kubernetes.

Prometheus

Prometheus – наиболее распространенное open-source программное обеспечение позволяющее осуществлять мониторинг Kubernetes. Идеально подходит для мониторинга любых метрик Kubernetes, которые поддаются измерению. Целесообразно развертывать в связке с системой визуализации Grafana, в которой имеется ряд специализированных дашбородов для мониторинга Kubernetes.

Архитектура Prometheus

Из ключевых особенностей Prometheus можно выделить следующие:

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

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

cAdvisor

cAdvisor – небольшая штатная open-source утилита предназначенная для сбора информации по контролируемым метрикам. Функиональные возможности утилиты следующие:

  • сбор информацию по базовым характеристикам производительности контейнеров (CPU, RAM, network и др.);
  • возможность работы с утилитой посредством WEB UI;
  • наличие REST API позволяет использовать утилиту в различных вариантах интеграции.

Не смотря на свою очевидную полезность при мониторинге Kubernetes, cAdvisor не рассматривается в качестве самостоятельного решения. Как правило используется в качестве базового источника данных для внешних систем мониторинга.

Datadog

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

Интеграция DataDog и Kubernetes

В качестве преимуществ решения стоит выделить следующие пункты:

  • простота развертывания и настройки сети агентов с функционалом Autodiscovery;
  • возможность контроля стандартных метрик производительности;
  • возможность сбора, фильтрации и анализа журналов для устранения неполадок;
  • поддерживается более 350 доступных интеграций со сторонними системами и возможна интеграция с иными системами, не входящими в этот список посредством API;
  • широкие возможности по анализу данных с использованием встроенных и кастомных дашбордов;
  • встроенный механизм отправки уведомлений по любым доступным показателям;
  • возможность использования Prometheus в качестве дополнительного источника данных.

New Relic APM

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

Ключевые отличия между этими двумя системами стоит искать в стоимости внедрения и в удобстве использования для вашей инфраструктуры. Как правило, New Relic считается более разносторонним решением с поддержкой мониторинга Kubernetes, в то время как для Datadog это одно из основных направлений. В данном случае рекомендуется попробовать триальные версии, которые доступны для каждого из решений.

New Relic — Дашборды

Sysdig Monitor

Sysdig Monitor – коммерческий продукт нацеленный на мониторинг контейнеров и Kubernetes. Sysdig Monitor использует схожий агентский подход с Datadog. Продукт предлагает мониторинг Docker, оповещения и возможность устранения неполадок благодаря интеллектуальной интеграции с Kubernetes, качественные преднастроенные дашборды и гибкие механизмы настройки оповещений.

Архитектура Sysdig

Стоит упомянуть и о наличии у данного вендора open-source решений для мониторинга и управления контейнерами:

  • Sysdig Inspect – продукт с открытым исходным кодом для осуществления мониторинга на уровне системы, в частности Inspect отслеживает выполненные команды, активность файловой системы, системные вызовы и др.;
  • Sysdig Falco — проект с открытым исходным кодом предназначенный для обеспечения безопасности контейнерной инфраструктуры. Обнаруживает аномальное поведение на контейнерных платформах и позволяет быстро реагировать на возникающие проблемы.

Также у Sysdig имеется продукт, предоставляющий комплекс функциональных возможностей по обеспечению информационной безопасности Kubernetes – Sysdig Secure. Но это уже тема отдельной статьи и сравнивать его с решениями описанными выше будет не совсем уместно.

Outcold Solutions

Если вы же используете Splunk и предпочитаете агрегировать данные по вашей инфраструктуре в одной системе, обратите ваше внимание на продукт Outcold Solutions. Это решение представляет из себя приложение для Splunk в котором имеется комплекс дашбордов для отслеживания состояния Kubernetes. Для передачи данных используются коллекторы, которые имеют возможность сбора информации по стандартным метрикам производительности для хостов и контейнеров. Также имеется возможность сбора логов действующих приложений в контейнерах с предварительной фильтрацией на уровне коллектора, если это необходимо.

Дашборд Outcold Solutions в Spunk

Сводная таблица

<
# Критерий Prometheus cAdvisor Datadog New Relic APM Sysdig Monitor Outcold Solutions
1Возможность работы с данными:
1.1 Логи прикладного ПО внутри контейнеров     Да Да Да Да
1.2 Общие показатели работы хостов Kubernetes (CPU, RAM, storage, network и др.) Да Да Да Да Да Да
1.3 Общие показатели работы контейнеров Kubernetes (CPU, RAM, storage, network и др.) Да Да Да Да Да Да
1.4 Динамический мониторинг статистики по процессам     Да Да Да Да
1.5 Создание индивидуальных метрик мониторинга Да   Да Да Да Да
2Способ получения данных:
2.1 Агенты на контейнерах и средствах контейнеризации для сбора информации     Да Да Да Да
2.2 Получение данных посредством REST API Да Да   Да Да Да
3Экспорт данных во внешние системы мониторинга:
3.1 Подключение внешней системы к БД Да          
3.2 Возможность экспорта данных посредством REST API Да Да Да Да Да Да
4 Наличие прямой интеграции со Splunk из коробки     Да Да Да Да
5 Наличие прямой интеграции со Elasticsearch из коробки         Да  
6 Возможность предварительной фильтрации данных перед отправкой     Да     Да
7 Возможность визуализации данных Да (через Grafana) Да Да Да Да Да (в Splunk)
8 Возможность отправки алертов Да (через Alertmanager)   Да Да Да Да (в Splunk)
9 Лицензия Open-Source Open-Source Коммерческая Коммерческая Коммерческая Коммерческая

Выводы

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

  • Если у вас средняя или крупная инфраструктура, построенная с использованием Kubernetes, рекомендуется присмотреться к специализированным коммерческими решениям, таким как Datadog, New Relic, Sysdig Monitor и др.;
  • Если у вас есть время, ресурсы и желание работать с open-sorce, попробуйте найти подходящую комбинацию open-source продуктов покрывающих ваши потребности, за основу могут быть взяты, например Prometheus+Grafana или Prometheus+Elasticsearch+Kibana;
  • Всегда есть возможность выбора решения для мониторинга контейнерной инфраструктуры на основе комплекса Open-source и/или коммерческих продуктов. Например, если у вас уже используется система мониторинга, стоит рассмотреть вариант внедрения Prometheus и использования его в качестве источника данных. При использовании Splunk привлекательным выглядит решение Outcold Solutions, благодаря которому можно избежать внедрения излишних посредников в процессе сбора информации с хостов контейнеризации и самих контейнеров.

Docker, Kubernetes, Smart Monitor, Контейнеры, Мониторинг