Что такое 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).