Система мониторинга "Прометей ⋆ ALexHost SRL

Проверьте свои навыки на всех наших услугах хостинга и получите скидку 15%!.

Используйте код при регистрации:

Skills
10.12.2024

Система мониторинга “Прометей

По мере роста сложности систем и приложений мониторинг становится необходимым для обеспечения оптимальной производительности, надежности и масштабируемости. Prometheus, инструментарий для мониторинга и оповещения с открытым исходным кодом, стал одним из самых популярных решений для управления и визуализации метрик различных систем. Изначально разработанный компанией SoundCloud, Prometheus в настоящее время является проектом Cloud Native Computing Foundation (CNCF) и получил широкое распространение в различных отраслях.

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

Что такое Prometheus?

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

Prometheus известен несколькими ключевыми особенностями:

  • Модель данных временных рядов: Prometheus хранит данные в виде временных рядов, то есть метрики записываются за определенные промежутки времени.
  • Мониторинг, основанный на посылках: Вместо того чтобы отслеживаемые системы отправляли метрики на сервер, Prometheus использует модель pull-based для сбора метрик с конечных точек.
  • Мощный язык запросов (PromQL): Prometheus предоставляет мощный язык запросов, PromQL, который позволяет пользователям фильтровать и агрегировать метрики в режиме реального времени.
  • Оповещение: Prometheus интегрируется с Alertmanager для определения правил и отправки уведомлений при выполнении определенных условий.
  • Обнаружение сервисов: Prometheus может автоматически обнаруживать и собирать метрики из динамически изменяющихся сред, например Kubernetes.

Как работает Prometheus

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

  1. Сбор метрик (скраппинг): Prometheus периодически собирает метрики с конечных точек HTTP (называемых экспортерами), открытых приложениями или системами.
  2. Хранение данных временных рядов: После сбора Prometheus хранит метрики в базе данных временных рядов, где каждая точка данных связана с временной меткой и набором меток.
  3. Запрос с помощью PromQL: Пользователи могут запрашивать сохраненные метрики с помощью языка запросов Prometheus, PromQL, для создания графиков, информационных панелей или оповещений.
  4. Оповещение: На основе предопределенных условий Prometheus может запускать оповещения с помощью Alertmanager, который может отправлять уведомления по электронной почте, в Slack, PagerDuty или другие сервисы.

Prometheus поддерживает модель pull-based, при которой он периодически получает метрики с конечных точек, предоставляющих метрики в формате, понятном Prometheus. Это делает его идеальным для мониторинга распределенных систем и микросервисов, где часто встречаются масштабируемые и динамические среды.

Компоненты Prometheus

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

  1. Сервер Prometheus: Центральный компонент, отвечающий за сбор, хранение и запрос метрик. Он собирает данные с целевых конечных точек и хранит их в базе данных с временными рядами.
  2. Экспортеры: Это приложения или службы, которые предоставляют метрики в формате, совместимом с Prometheus. К распространенным экспортерам относятся:
    • Node Exporter: собирает метрики на уровне оборудования и ОС.
    • Blackbox Exporter: для зондирования конечных точек по HTTP, DNS, TCP и т. д.
    • Экспортеры для конкретных приложений: Многие базы данных (например, PostgreSQL, MySQL) и сервисы имеют свои собственные экспортеры.
  3. Alertmanager: Prometheus использует Alertmanager для обработки оповещений. Он может направлять оповещения на различные адресаты, такие как Slack, электронная почта или SMS, а также управлять правилами глушения и запрета.
  4. PromQL (Prometheus Query Language): Мощный язык запросов, используемый для получения и манипулирования данными временных рядов.
  5. Pushgateway: Компонент, используемый для эфемерных или недолговечных заданий, которые не могут получить метрики путем прямого соскоба (например, пакетные задания). Pushgateway позволяет таким заданиям передавать свои метрики в Prometheus.
  6. Grafana: Хотя Grafana и не является частью Prometheus, она представляет собой популярный инструмент с открытым исходным кодом, используемый для визуализации данных Prometheus и создания интерактивных панелей.

Пошаговая настройка Prometheus

Вот как можно настроить Prometheus на сервере Linux и начать мониторинг системных показателей:

Шаг 1: Установите Prometheus
  1. Загрузите Prometheus: Посетите страницу загрузки Prometheus, чтобы получить последнюю версию Prometheus. Выполните следующие команды для загрузки и извлечения Prometheus:
    wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz tar -xvf prometheus-2.32.1.linux-amd64.tar.gz cd prometheus-2.32.1.linux-amd64
  2. Запустите Prometheus: Выполните следующую команду, чтобы запустить Prometheus:
    ./prometheus –config.file=prometheus.yml

    По умолчанию Prometheus работает на порту 9090, и вы можете получить доступ к его веб-интерфейсу, перейдя по адресу http://localhost:9090 в вашем браузере.

Шаг 2: Настройте Prometheus

Основная настройка Prometheus выполняется через файл prometheus.yml. Этот файл указывает Prometheus, какие цели (экспортеры) и как часто нужно скрести.

Вот базовая конфигурация prometheus.yml:

global: scrape_interval: 15s # Как часто скрести метрики scrape_configs: – job_name: “prometheus” static_configs: – targets: [“localhost:9090”] # Скрапирование самого Prometheus

При необходимости вы можете добавить дополнительные цели или экспортеры, и Prometheus автоматически начнет их скрести.

Шаг 3: Установка экспортера Node (для системных показателей)

Для мониторинга системных показателей, таких как использование процессора, памяти, диска и сети, можно установить Node Exporter.

  1. Загрузите Node Exporter:
    wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz cd node_exporter-1.3.1.linux-amd64
  2. Запустите Node Exporter: Выполните следующую команду для запуска Node Exporter:
    ./node_exporter

    По умолчанию Node Exporter работает на порту 9100 и показывает такие метрики, как использование процессора, статистика памяти, дисковый ввод-вывод и сетевые метрики.

  3. Настройте Prometheus на скрап Node Exporter: добавьте следующее задание в файл конфигурации prometheus.yml:
    scrape_configs: – job_name: ‘node_exporter’ static_configs: – targets: [‘localhost:9100’]
  4. Перезапустите Prometheus: После внесения изменений в конфигурационный файл перезапустите Prometheus, чтобы начать соскребать метрики из Node Exporter.
Шаг 4: Визуализация метрик с помощью Grafana

Для визуализации метрик Prometheus отлично подходит Grafana. Он легко интегрируется с Prometheus и позволяет создавать интерактивные информационные панели.

  1. Установите Grafana: В Linux вы можете установить Grafana, следуя инструкциям на сайте Grafana.
  2. Настройте Prometheus в качестве источника данных: После установки Grafana:
    • Войдите в Grafana (http://localhost:3000).
    • Перейдите в раздел Configuration > Data Sources и добавьте Prometheus в качестве источника данных (http://localhost:9090).
  3. Создайте панели: Теперь вы можете создавать свои собственные панели или импортировать готовые панели с рынка Grafana для визуализации таких показателей, как использование процессора, памяти, производительность диска и т. д.
Шаг 5: Настройка оповещений

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

  1. Определите правила оповещений: Оповещения определяются в отдельном файле rules.yml. Вот пример правила оповещения, которое срабатывает при использовании процессора выше 80 %:
    группы: – имя: example_alerts правила: – alert: HighCPUUsage expr: 100 – (avg by(instance) (rate(node_cpu_seconds_total{mode=”idle”}[5m])) * 100) > 80 для: 5m labels: severity: warning annotations: summary: “High CPU usage detected on {{ $labels.instance }}” description: “Использование процессора превышает 80% в течение более 5 минут”
  2. Настройте Alertmanager: Установите и настройте Alertmanager для отправки уведомлений по электронной почте, Slack или другим каналам при срабатывании предупреждения.

Примеры использования Prometheus

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

  1. Мониторинг инфраструктуры: Сбор метрик с серверов, баз данных и сетевых устройств для обеспечения бесперебойной работы инфраструктуры.
  2. Мониторинг приложений: Отслеживайте такие показатели производительности, как задержка, частота запросов, количество ошибок и потребление ресурсов приложениями, особенно в микросервисных архитектурах.
  3. Мониторинг Kubernetes: Prometheus интегрируется с Kubernetes и может автоматически обнаруживать и собирать метрики из подсистем и сервисов в кластере Kubernetes.
  4. Пользовательские метрики: Prometheus позволяет инструментировать собственные приложения для получения пользовательских метрик, обеспечивая глубокое понимание специфического поведения приложений.

Заключение

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

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

Проверьте свои навыки на всех наших услугах хостинга и получите скидку 15%!.

Используйте код при регистрации:

Skills