Сравнение сред мониторинга контейнеризации на примере Kubernetes
Содержание
Описание способов мониторинга Kubernetes
Относительно недавно в широкое применение вошло использование микросервисных архитектур. Интерес к этой технологии, как и к системам управления контейнеризированными приложениями неуклонно растёт.
На рисунке ниже приведена статистика по количеству ежемесячных вопросов на ресурсах StackOverflow и GitHub по популярным системам управления контейнеризованными приложениями Mesos, Kubernetes и Docker-swarm
Безусловно, микросервисная архитектура имеет ряд преимуществ в сравнении с классической виртуализацией, но, помимо этого, и ряд особенностей. Например, ранее используемые подходы к мониторингу вашей инфраструктуры необходимо пересматривать при переходе на микросервисы. Связано это прежде всего с ростом количества контролируемых сущностей и постоянными динамическими изменениями в инфраструктуре.
В рамках данной статьи мы рассмотрим варианты мониторинга системы управления контейнеризованными приложениями на примере Kubernetes.
Prometheus
Prometheus – наиболее распространенное open-source программное обеспечение позволяющее осуществлять мониторинг Kubernetes. Идеально подходит для мониторинга любых метрик Kubernetes, которые поддаются измерению. Целесообразно развертывать в связке с системой визуализации Grafana, в которой имеется ряд специализированных дашбородов для мониторинга Kubernetes.
Из ключевых особенностей Prometheus можно выделить следующие:
- относительно прост в установке и настройке;
- возможность контролирования огромного количества метрик из коробки и настройки собственных метрик при необходимости;
- наличие модуля Alertmanager, обеспечивающего возможность работы с уведомлениями.
Prometheus не позволяет работать с текстовыми данными, что является ключевым недостатком платформы. Но он дает необходимый минимум информации о производительности инфраструктуры и делает это достаточно качественно. Именно поэтому с его участием зачастую строят более сложные системы мониторинга в которых Prometheus отводится только одна роль – сбор показателей по контролируемым метрикам.
cAdvisor
cAdvisor – небольшая штатная open-source утилита предназначенная для сбора информации по контролируемым метрикам. Функиональные возможности утилиты следующие:
- сбор информацию по базовым характеристикам производительности контейнеров (CPU, RAM, network и др.);
- возможность работы с утилитой посредством WEB UI;
- наличие REST API позволяет использовать утилиту в различных вариантах интеграции.
Не смотря на свою очевидную полезность при мониторинге Kubernetes, cAdvisor не рассматривается в качестве самостоятельного решения. Как правило используется в качестве базового источника данных для внешних систем мониторинга.
Datadog
Datadog – качественный коммерческий продукт, предоставляющий возможности мониторинга различных систем, в том числе Kubernetes. Сбор данных осуществляется преимущественно агентами, которые позволяют помимо стандартных метрик производительности получать и анализировать логи Kubernetes и прикладного программного обеспечения, функционирующего внутри контейнеров.
В качестве преимуществ решения стоит выделить следующие пункты:
- простота развертывания и настройки сети агентов с функционалом Autodiscovery;
- возможность контроля стандартных метрик производительности;
- возможность сбора, фильтрации и анализа журналов для устранения неполадок;
- поддерживается более 350 доступных интеграций со сторонними системами и возможна интеграция с иными системами, не входящими в этот список посредством API;
- широкие возможности по анализу данных с использованием встроенных и кастомных дашбордов;
- встроенный механизм отправки уведомлений по любым доступным показателям;
- возможность использования Prometheus в качестве дополнительного источника данных.
New Relic APM
New Relic это коммерческий продукт достаточно близкий к предыдущему решению по своим характеристикам. Оба решения схожи по функциональным возможностям, пользовательскому интерфейсу и имееют весомый доступный список интеграций с внешними системами.
Ключевые отличия между этими двумя системами стоит искать в стоимости внедрения и в удобстве использования для вашей инфраструктуры. Как правило, New Relic считается более разносторонним решением с поддержкой мониторинга Kubernetes, в то время как для Datadog это одно из основных направлений. В данном случае рекомендуется попробовать триальные версии, которые доступны для каждого из решений.
Sysdig Monitor
Sysdig Monitor – коммерческий продукт нацеленный на мониторинг контейнеров и Kubernetes. Sysdig Monitor использует схожий агентский подход с Datadog. Продукт предлагает мониторинг Docker, оповещения и возможность устранения неполадок благодаря интеллектуальной интеграции с Kubernetes, качественные преднастроенные дашборды и гибкие механизмы настройки оповещений.
Стоит упомянуть и о наличии у данного вендора open-source решений для мониторинга и управления контейнерами:
- Sysdig Inspect – продукт с открытым исходным кодом для осуществления мониторинга на уровне системы, в частности Inspect отслеживает выполненные команды, активность файловой системы, системные вызовы и др.;
- Sysdig Falco — проект с открытым исходным кодом предназначенный для обеспечения безопасности контейнерной инфраструктуры. Обнаруживает аномальное поведение на контейнерных платформах и позволяет быстро реагировать на возникающие проблемы.
Также у Sysdig имеется продукт, предоставляющий комплекс функциональных возможностей по обеспечению информационной безопасности Kubernetes – Sysdig Secure. Но это уже тема отдельной статьи и сравнивать его с решениями описанными выше будет не совсем уместно.
Outcold Solutions
Если вы же используете Splunk и предпочитаете агрегировать данные по вашей инфраструктуре в одной системе, обратите ваше внимание на продукт Outcold Solutions. Это решение представляет из себя приложение для Splunk в котором имеется комплекс дашбордов для отслеживания состояния Kubernetes. Для передачи данных используются коллекторы, которые имеют возможность сбора информации по стандартным метрикам производительности для хостов и контейнеров. Также имеется возможность сбора логов действующих приложений в контейнерах с предварительной фильтрацией на уровне коллектора, если это необходимо.
Сводная таблица
# | Критерий | 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, благодаря которому можно избежать внедрения излишних посредников в процессе сбора информации с хостов контейнеризации и самих контейнеров.