5 ключевых показателей Kubernetes, за которыми нужно следить с помощью Prometheus

За последние несколько лет популярность баз данных временных рядов (TSDB) резко возросла, как и Kubernetes. Для мониторинга Kubernetes можно использовать Prometheus, популярную TSDB. Почему этот инструмент так популярен и почему по ассоциации он становится синонимом Kubernetes?
Вы также можете задаться вопросом , какие показатели отслеживает этот инструмент в такой обширной и сложной инфраструктуре, как Kubernetes? В этом руководстве я отвечу на эти вопросы и покажу вам самые важные показатели Kubernetes для мониторинга.
Прометей: обзор
Prometheus — это инструмент с открытым исходным кодом для мониторинга и оповещения систем на основе метрик. Он записывает и обрабатывает любые исключительно числовые данные временных рядов. Он также имеет многомерную модель данных. Prometheus обращается к вашей цели и извлекает или «счищает» метрики с этих целей. Для этого он отправляет HTTP-запросы на их конечные точки метрик. Затем он сохраняет их в базе данных временных рядов.
Целями могут быть инструментальные приложения вашей компании или сторонние приложения. Этот инструмент также предлагает вам гибкий язык запросов для использования его многомерной модели данных. Он также предоставляет подробные и действенные показатели, которые помогут вам проанализировать производительность ваших приложений. Он также может собирать миллионы метрик в секунду, поэтому он идеально подходит для ваших сложных рабочих нагрузок.
Что такое данные временных рядов?
Данные временного ряда — это набор точек данных, связанных с отметками времени. Это означает, что они собираются через регулярные промежутки времени. В свою очередь, они позволяют отслеживать изменения во времени, миллисекундах, днях и годах. Он записывает каждое изменение в системе, но не просто включает время в качестве метрики. Вместо этого время является фундаментальным компонентом, помогающим анализировать данные. Полученные полезные сведения также позволяют измерять и анализировать изменения.
Теперь давайте поговорим о том, почему важно отслеживать среду Kubernetes.
Зачем использовать Prometheus для мониторинга Kubernetes?
Kubernetes — сложная и динамичная система с загруженной производственной средой, поэтому для нее нужны стратегии и инструменты мониторинга. Также нужно выбирать инструменты с расширенными возможностями. Вот где Prometheus приходит на помощь. Это приложение , созданное для мониторинга облачных сред с большими рабочими нагрузками.
Ознакомьтесь с этими 5 причинами, по которым Prometheus идеально подходит для мониторинга Kubernetes.
1. Обнаружение службы
Поскольку у Prometheus есть модель вытягивания, он систематически очищает ваши цели. Таким образом, вашим приложениям не придется беспокоиться об отправке данных. Его серверы также имеют различные методы, которые автоматически обнаруживают цели для очистки. При этом вы можете настроить некоторые серверы Prometheus для фильтрации и сопоставления метаданных контейнера.
2. Многомерная модель данных
Точно так же, как Kubernetes использует метки для организации метаданных инфраструктуры, Prometheus использует пары ключ-значение. Это означает, что он может точно собирать и анализировать данные временных рядов Kubernetes.
3. Модульные и высокодоступные компоненты
Компонуемый сервис выполняет оповещение, графическую визуализацию, сбор метрик и многое другое. Каждая из этих служб помогает поддерживать избыточность и сегментирование. Таким образом, вы всегда будете получать правильные оповещения.
4. Доступный формат
Prometheus имеет простой способ представления своих метрик. Это также говорит само за себя, так что вы можете прочитать его самостоятельно. Метрики можно публиковать с помощью стандартного HTTP-транспорта, и вы можете использовать свой веб-браузер, чтобы проверить, правильно ли отображаются метрики.
5. Прометей свободен
Это абсолютно бесплатно, поэтому у него не просто «бесплатный уровень». Это означает, что вы можете извлечь выгоду из этого мощного актива для развития своего бизнеса, не беспокоясь о нем.
Основы мониторинга Kubernetes с помощью Prometheus

Давайте аккуратно закончим, как работает Prometheus.
Во-первых, Prometheus находит цели для извлечения с помощью Kubernetes Service Discovery. Затем он отправляет HTTP-запрос — очистку — в соответствии с конфигурацией, определенной в файле развертывания. Ответ на это затем сохраняется и разбивается в хранилище, которое является пользовательской базой данных на сервере. Это хранилище также содержит метрики для самого запроса очистки. Теперь вам нужно правильно выставить и настроить эти данные.
Prometheus также собирает метрики приложений и метрики, связанные с сервисами Kubernetes, состоянием оркестровки и узлами. Затем средство экспорта узлов предоставляет связанные с хостом показатели, такие как загрузка ЦП, память, дисковое пространство, сеть и пропускная способность. Теперь kube-state-metrics предоставляет метрики оркестровки и уровня кластера, такие как метрики pod, развертывания и т. д. Наконец, встроенный экспортер cAdvisor может предоставлять метрики cgroups.
На этом этапе вы можете получить доступ к собранным данным с помощью PromQL, который вы также можете настроить для запуска предупреждений. Я также предлагаю вам экспортировать собранные метрики в графические интерфейсы, такие как Grafana. В свою очередь, это может извлекать метрики с нескольких серверов для отображения информационных панелей и панелей. AlertManager настраивает шлюзы для доставки и управления предупреждениями и группировкой.
Давайте теперь рассмотрим ключевые показатели, которые вы должны отслеживать, чтобы получить представление о вашей инфраструктуре Kubernetes.
Следите за этими 5 ключевыми показателями Kubernetes с Prometheus
Как мы установили, мониторинг вашей среды Kubernetes важен, но он может оказаться напрасным, если вы не используете его эффективно. Вот почему я составил список из 5 основных показателей, которые нужно отслеживать в вашей среде K8s. Давайте взглянем.
1. Следите за метриками кластера Kubernetes
Важно иметь общее представление о вашем кластере и его состоянии. Это позволяет отслеживать запущенные модули, узлы и контейнеры. Отслеживание метрик кластера также помогает понять, правильно ли запускаются, обслуживаются и планируются модули. Вы также можете обнаруживать поверхностные проблемы с узлами или модулями и искать узкие места. Вы также получите четкое представление о развернутой рабочей нагрузке. Я советую вам обратить внимание на несколько важных показателей кластера: использование памяти, использование дискового пространства, использование ЦП и загруженность сетевых операций ввода-вывода.
2. Мониторинг метрик контейнера/пода Kubernetes
Я всегда рекомендую следить за распределением ресурсов ваших модулей, потому что это может напрямую повлиять на производительность вашего приложения. Также необходимо знать о доступности и недоступности подов, учитывая, что многие недоступные поды указывают на плохо настроенные зонды готовности. Также следите за количеством желаемых и текущих модулей. Это связано с тем, что большая разница между ними указывает на узкие места и неисправные модули. Наконец, вы должны проверить количество недо- и переподготовленных подов. Метрики контейнеров Kubernetes также помогают отслеживать активность перезапуска контейнеров, чтобы облегчить устранение неполадок.
3. Отслеживайте метрики узла Kubernetes
Поскольку работающие модули могут использовать только конечную мощность ЦП и памяти для каждого узла, важно внимательно следить за ними. Сетевой трафик узла и использование дискового пространства также входят в число других важных вещей, которые я предлагаю вам отслеживать.
4. Проверьте внутренние показатели Kubernetes
Кластерная панель Kubernetes отвечает за многое. Например, он отслеживает ваш кластер и планирует/назначает рабочие нагрузки рабочим узлам. Он также отслеживает жизненный цикл различных контроллеров, развернутых в кластере, и гарантирует, что кластер работает в желаемом состоянии. Вот почему так важно убедиться, что центральная нервная система вашего кластера здорова.
5. Изучите метрики приложения
Вы можете инструментировать приложения, работающие в Kubernetes, с помощью показателей RED (частота запросов, частота ошибок и продолжительность). Память, JVM, потоки и куча — это еще несколько показателей приложения, которые вы можете контролировать, чтобы убедиться, что оно работает правильно.
Визуализируйте метрики Prometheus с помощью Grafana
Хотя Prometheus — отличный инструментарий для мониторинга метрик, я считаю, что его графики и панель мониторинга не соответствуют номиналу. Вот где Grafana сияет ярко! Grafana создает красивые и интерактивные информационные панели с вашими данными. Я также использую Grafana для ассимиляции данных из огромного количества источников. Затем он запросит его и отобразит на настраиваемых диаграммах, которые подходят моему стилю. Чтобы поддерживать отношения Prometheus-Grafana, Prometheus собирает данные строковых метрик, а Grafana анализирует и визуализирует эти данные.

Grafana также имеет встроенную поддержку множества различных вариантов хранения, называемых источниками данных. Источники данных передают метрические данные, собранные из приложений, в Grafana, и Prometheus является одним из самых популярных источников данных.
Подводя итог, Prometheus извлекает и сохраняет информацию из Kubernetes, отслеживая ее на основе нескольких показателей. Затем он сохраняет эти данные и вставляет их в Grafana для разработки красивых и динамичных графиков и информационных панелей. Это поможет вам визуализировать метрики Kubernetes, которые вы отслеживаете.
Отправка метрик Prometheus в сторонние приложения для мониторинга
Prometheus — отличный инструмент для сбора высокоуровневых метрик, критически важных для мониторинга работоспособности ваших приложений и сервисов, но у него все же есть свои ограничения. Этот инструмент только говорит вам, «что» не так с вашей системой, но не показывает «почему». Помимо этого, Prometheus также сталкивается с проблемами, связанными с видимостью, хранением и агрегированием данных при масштабировании. Вот почему вы также можете использовать сторонние инструменты для решения этих проблем. Например, я мог бы порекомендовать использовать DataDog, New Relic, Sumo Logic и т. д., чтобы получить целостное представление о вашей системе Kubernetes.
Последние мысли
Kubernetes очень сложен в эксплуатации, поэтому вам необходимо постоянно отслеживать общее состояние, поведение и производительность вашей системы. Это означает, что важно создать стратегию мониторинга, но помните основные показатели для мониторинга. Я также советую использовать мощные системы мониторинга, разработанные с нуля для работы с динамичными и сложными средами. Prometheus с открытым исходным кодом — это ключ к мониторингу Kubernetes, и это ваша отправная точка для получения основных показателей производительности Kubernetes. Таким образом, вы можете убедиться, что ваша среда работает бесперебойно и что вы активно решаете любые возникающие проблемы. Объедините Prometheus, Grafana и другие инструменты, чтобы создать оптимальную систему мониторинга Kubernetes !
Часто задаваемые вопросы
Как Prometheus собирает данные мониторинга?
Prometheus собирает данные мониторинга двумя способами: с помощью приборов или агентов. Инструментарий добавляет пользовательский код в исходный код отслеживаемого приложения. Агенты автоматически переводят данные приложений в метрики. Они работают параллельно с приложениями в общей среде.
Как Prometheus собирает метрики из подов?
Prometheus собирает метрики с помощью модели вытягивания, поэтому вам просто нужно открыть веб-порт и спроектировать конечную точку REST API. Эта конечная точка также будет предоставлять метрики формата Prometheus. Затем инструмент будет использовать свои плагины автоматического обнаружения для сбора, фильтрации и агрегирования показателей.
Какие метрики собирает Prometheus?
Вот 4 основных типа метрик, которые собирает Prometheus:
- Счетчики: это один из самых фундаментальных типов метрик, которые помогают отслеживать и оценивать значения, которые могут только увеличиваться.
- Измерители: они похожи на счетчики, но измеряют показатели, которые растут и падают со временем.
- Гистограммы: они выбирают наблюдения, продолжительность запросов, размеры ответов и т. д. по их частоте. Он также считает в сегментах и предоставляет сумму всех наблюдаемых значений. Эти сегменты помогают отслеживать распределение атрибута по нескольким событиям. Гистограммы очень эффективны: им нужно всего лишь подсчет на ведро.
- Сводки: они показывают общее количество наблюдений и сумму наблюдаемых значений. Сводки похожи на гистограммы, поскольку они также отслеживают распределение атрибутов по многим событиям. Тем не менее, они отличаются от гистограмм, поскольку они напрямую отображают квантильные значения.
Может ли Prometheus отслеживать несколько кластеров Kubernetes?
Да, оно может. У вас может быть экземпляр Prometheus в каждом кластере и один центральный Prometheus для сбора всего этого. И наоборот, у вас может быть один центральный Prometheus, очищающий все кластеры.
Где хранятся данные Prometheus?
Prometheus хранит данные в своей локальной базе данных временных рядов на диске. Он также может хранить его в удаленном облачном хранилище, когда он интегрируется с ними. Это, в свою очередь, дает вам гибкость в выборе места хранения данных мониторинга. Кроме того, это позволяет сэкономить на хранении.