Prometheus

Open source система мониторинга и оповещений с многомерной моделью данных и языком запросов PromQL. Для Kubernetes, облачной инфраструктуры и микросервисов.

РазработчикPrometheus

Что такое Prometheus

Prometheus — это open source система мониторинга, которая заслуженно считается стандартом де-факто в мире облачных технологий. Она появилась в 2012 году в недрах SoundCloud, а сейчас развивается под крылом Cloud Native Computing Foundation (CNCF) — той же организации, что курирует Kubernetes.

Главная идея Prometheus — сбор метрик не по расписанию, а в момент их изменения. Система сама опрашивает целевые сервисы по HTTP (так называемая модель pull), а не ждёт, пока они пришлют данные. Вся информация хранится в виде многомерной модели данных с метками (labels), что позволяет гибко разрезать и анализировать любые показатели через мощный язык запросов PromQL. Если сервис недоступен — не проблема: данные сохраняются локально, а позже синхронизируются.

Ключевые возможности

  • Pull-модель сбора метрик — Prometheus сам забирает данные с эндпоинтов, что упрощает обнаружение проблем и настройку.
  • Язык запросов PromQL — позволяет строить сложные агрегации, вычислять процентили, скорости и прогнозировать тренды.
  • Многомерное хранение данных — каждая метрика идентифицируется набором key-value меток, что даёт безграничные возможности для группировки.
  • Механизм оповещений Alertmanager — гибкая маршрутизация уведомлений в Slack, Telegram, PagerDuty и другие каналы.
  • Экспортёры для всего — официальные и сторонние экспортёры для Node, MySQL, PostgreSQL, Nginx, Redis и тысяч других систем.
  • Service Discovery — автоматическое обнаружение целей в Kubernetes, EC2, Consul и других динамических средах.
  • Горизонтальное масштабирование через Thanos или Cortex — для очень крупных инфраструктур.

Кому подойдёт

Prometheus — идеальный выбор для DevOps-команд и SRE-инженеров, работающих с Kubernetes или микросервисной архитектурой. Он незаменим, когда нужно мониторить десятки и сотни динамических сервисов с постоянно меняющимися IP-адресами.

Сценарии использования: мониторинг кластеров Kubernetes (kube-state-metrics), отслеживание производительности API-шлюзов, сбор бизнес-метрик с приложений через официальные клиентские библиотеки, наблюдение за CI/CD пайплайнами. Также Prometheus часто используют для мониторинга сетевого оборудования и классических серверов Linux через Node Exporter.

Для небольших проектов с парой серверов он может показаться избыточным — там проще обойтись Zabbix или облачными решениями. Но если вы планируете расти, лучше сразу закладывать правильный фундамент.

Плюсы и минусы

Плюсы:

  • Бесплатный и активно развивается огромным сообществом
  • Отличная интеграция с Kubernetes и cloud-native экосистемой
  • Мощный и выразительный PromQL с функцией прогнозирования
  • Высокая надёжность: каждый сервер хранит данные локально
  • Огромное количество готовых экспортёров и дашбордов Grafana

Минусы:

  • Крутой порог входа: PromQL и архитектуру нужно изучать
  • Нет встроенного UI для анализа — обычно нужен Grafana
  • Сложно хранить данные более 15–30 дней без дополнительных компонентов
  • Не поддерживает распределённое хранение «из коробки»

Частые вопросы

Как Prometheus хранит данные и что делать с долгосрочным хранением?

По умолчанию данные хранятся локально на диске в собственном формате TSDB. Для долгосрочного хранения и высокой доступности используют Thanos или Cortex — они добавляют объектное хранилище (S3, GCS) и позволяют хранить метрики годами без потери производительности.

Чем Prometheus отличается от Zabbix?

Zabbix — классическая система мониторинга с готовыми шаблонами и агентами, ориентированная на традиционную инфраструктуру. Prometheus создан для динамических сред: он лучше работает с временными контейнерами, автоматически находит цели через Service Discovery и предлагает более гибкую модель данных с метками.

Можно ли мониторить Windows-серверы?

Да, через windows_exporter, который собирает метрики CPU, памяти, дисков и сетевых интерфейсов. Однако для глубокого мониторинга Windows-экосистемы (например, Active Directory, Exchange) Prometheus уступает специализированным решениям вроде System Center Operations Manager.

Как настроить алерты в Prometheus?

Алерты описываются декларативно в файлах правил на языке PromQL. Когда условие выполняется (например, CPU > 90% в течение 5 минут), Prometheus отправляет событие в Alertmanager, который уже маршрутизирует уведомления по нужным каналам с учётом дедупликации и тишины (silences).

Часто задаваемые вопросы

Сколько стоит Prometheus?

Prometheus полностью бесплатен — все компоненты распространяются по лицензии Apache 2.0. Вы платите только за инфраструктуру, на которой запускаете сервер.

На каких ОС работает Prometheus и где его скачать?

Готовые бинарники и Docker-образы доступны для большинства официально поддерживаемых компонентов под Linux, macOS (Intel и ARM) и Windows. Скачать можно из раздела Download на prometheus.io и из репозиториев на GitHub. Актуальная версия — 3.12.0, есть также LTS-ветка 3.5.3.

Что такое exporters?

Exporters — это компоненты, которые извлекают метрики из существующих систем и отдают их в формате Prometheus. Среди официальных: Node Exporter (серверы), Blackbox Exporter (внешние проверки), MySQL, Memcached, Consul, Graphite, StatsD и многие другие. Плюс постоянно растёт число независимо поддерживаемых exporters.

Prometheus собирает метрики через pull или push?

Основная модель — pull: сервер сам периодически опрашивает (scrape) HTTP-эндпоинты целей. Для короткоживущих и пакетных задач есть промежуточный Pushgateway, через который метрики можно отправлять (push).

Нужна ли Grafana для работы с Prometheus?

У Prometheus есть собственные режимы графиков и дашбординга, но для продвинутой визуализации большинство команд подключают Grafana — она выступает потребителем API Prometheus и строит интерактивные дашборды.

Как в Prometheus работают оповещения?

Правила алертинга основаны на PromQL и используют ту же многомерную модель данных. Отдельный компонент Alertmanager обрабатывает уведомления, поддерживает группировку и подавление (silencing), а также маршрутизацию инцидентов.

Подходит ли Prometheus для биллинга по запросам?

Нет. Если нужна 100% точность и полнота данных (например, для попроцедурного биллинга), собранных Prometheus данных может не хватить по детализации. Разработчики рекомендуют для таких задач использовать отдельную систему, а Prometheus оставить для остального мониторинга.

Кто развивает Prometheus?

Это самостоятельный open source проект, не принадлежащий ни одной компании. С 2016 года он входит в Cloud Native Computing Foundation (второй проект после Kubernetes), а весь код доступен под лицензией Apache 2.0 на GitHub.