CoderCastrov logo
CoderCastrov
Кластеры

Мониторинг ваших узлов с помощью Prometheus

Мониторинг ваших узлов с помощью Prometheus
просмотров
4 мин чтение
#Кластеры

Мониторинг системы и приложений - актуальная тема в наше время, и не зря. Те небольшие числа, которые вы собираете с вашей системы и приложений, могут долго объяснять причины многих проблем. Существует множество инструментов, которые помогают нам достичь наших целей по мониторингу системы и сбору метрик с них. Когда у вас есть так много вариантов, становится сложно выбрать, какой инструмент выбрать.

Во время работы в команде по инженерии производительности и масштабированию в Red Hat, мы много экспериментировали с различными инструментами, доступными для мониторинга систем и приложений и сбора собранных метрик с них. Этот пост направлен на то, чтобы документировать, как мы можем использовать Prometheus для мониторинга наших систем.

Преимущества выбора пути Prometheus

Использование Prometheus в качестве системы мониторинга предоставляет несколько преимуществ, некоторые из них:

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

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

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

Развертывание Prometheus

Для RHEL и любого другого дистрибутива на основе RPM, я рекомендую установить Prometheus из tar-архива, предоставленного на официальном сайте Prometheus. В этом посте мы развернем Prometheus 2.1.

Для настройки Prometheus сначала нам нужно получить пакет Prometheus. Для этого посетите страницу Загрузки Prometheus и получите пакет, который вы хотите установить.

Предположим, что вы загрузили tar-архив пакета Prometheus 2.1.0, следующим шагом будет извлечение файлов из tar-архива и помещение их в одну директорию:

tar -xvzf prometheus-2.1.0.linux-amd64.tar.gz

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

Теперь следующее, что нам нужно сделать, это настроить Prometheus. По умолчанию Prometheus поставляется с файлом конфигурации по умолчанию с именем prometheus.yml. Как следует из расширения, файл конфигурации использует формат YAML для указания настроек.

Быстро просмотрев настройки, вот несколько настроек, которые нас интересуют прямо сейчас:

  • scrape_interval: Это значение определяет, с какой частотой Prometheus должен собирать метрики с целей. В зависимости от количества узлов и типа собираемых метрик, вам может потребоваться настроить это значение.
  • scrape_configs: Этот раздел определяет настройки для целей, которые должны быть собраны, и параметры, которые контролируют, как цели собираются.

Если вы просто хотите увидеть Prometheus в действии, раскомментируйте строки в разделе scrape_configs, чтобы он выглядел так:

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ['localhost:9090']

Это настроит Prometheus для мониторинга очень важного (на самом деле нет :P) приложения (самого себя). Но прежде чем перейти к тому, как запустить Prometheus с этим файлом конфигурации, я хотел бы немного объяснить, что находится внутри раздела scrape_configs. Обычно раздел конфигурации сбора будет содержать как минимум следующее:

  • job_name: Имя задания, по которому группируется сбор метрик целей.
  • static_configs: Определяет параметры о целях, которые должны быть собраны статически. Prometheus также поддерживает динамическое обнаружение целей, но мы не фокусируемся на этом параметре в этом посте.
  • targets: Это список пар hostname:port, которые определяют конечные точки, которые Prometheus будет собирать метрики.

Теперь, когда я рассмотрел основные термины, давайте посмотрим, как запустить Prometheus :D

Чтобы запустить Prometheus, выполните следующую команду из папки, в которой был извлечен Prometheus:

./prometheus --config.file=prometheus.yml

И... вы готовы. Теперь Prometheus запущен, и у вас есть веб-интерфейс.

Перейдите в браузере по адресу hostname:9090, чтобы увидеть простой интерфейс Prometheus.

Теперь, чтобы увидеть некоторые визуализации данных, которые собираются, выполните следующие шаги:

  • Нажмите на "Graph"
  • Выберите метрику из выпадающего списка
  • Нажмите "Execute"

И вы готовы :)

Метрики Prometheus

Куда идти дальше

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

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

Счастливого мониторинга!


Оригинальная публикация на сайте Saurabh Badhwar._