Официальная документация Prometheus публикуется только на английском языке, поэтому русскоязычным инженерам приходится либо читать оригинал, либо собирать знания по переведённым статьям и гайдам. Если вы только разворачиваете систему мониторинга и ищете prometheus документацию на русском, эта статья соберёт ключевые разделы официального руководства в одном месте: архитектуру, установку, конфигурацию, язык запросов PromQL и настройку оповещений.
Материал построен как практический конспект официальной документации с пояснениями на русском. Точные параметры и поведение могут отличаться между версиями Prometheus, поэтому перед внедрением в продакшн сверяйтесь с оригинальной документацией вашей версии.
Что такое Prometheus и как он устроен
Prometheus — это система мониторинга и база данных временных рядов с открытым исходным кодом, изначально разработанная в SoundCloud и ныне являющаяся проектом Cloud Native Computing Foundation. Система работает по pull-модели: сервер сам опрашивает (скрейпит) цели по HTTP и забирает метрики в текстовом формате.
Архитектура включает несколько ключевых компонентов. Основной сервер хранит метрики во встроенной базе временных рядов (TSDB). За сбор данных отвечают экспортеры — небольшие агенты, которые преобразуют метрики сторонних систем (Linux, MySQL, HAProxy) в формат Prometheus. Для краткоживущих задач, которые нельзя скрейпить напрямую, используется Pushgateway, а оповещения обрабатывает отдельный компонент Alertmanager.
- 📊 Prometheus Server — сбор, хранение метрик и выполнение запросов PromQL
- 🔌 Экспортеры — node_exporter, blackbox_exporter и другие агенты сбора
- 🔔 Alertmanager — маршрутизация, группировка и дедупликация алертов
- 📈 Grafana — визуализация (не входит в Prometheus, но является стандартом де-факто)
Установка Prometheus: базовый сценарий
Самый простой способ начать — скачать готовый бинарный файл с официальной страницы загрузок проекта. Prometheus не требует внешних зависимостей: весь стек поставляется одним исполняемым файлом. Для Linux достаточно распаковать архив и запустить бинарник с указанием конфигурационного файла.
tar xvfz prometheus-*.tar.gz
cd prometheus-*
./prometheus --config.file=prometheus.yml
После запуска веб-интерфейс становится доступен на порту 9090. Откройте в браузере адрес http://localhost:9090 и проверьте страницу Status → Targets: там должен отображаться сам Prometheus как цель мониторинга в состоянии UP. Альтернативный путь — запуск в Docker одной командой, что удобно для тестирования.
⚠️ Внимание: по умолчанию веб-интерфейс Prometheus не имеет встроенной аутентификации. Не выставляйте порт 9090 в открытую сеть без reverse-proxy с авторизацией или firewall-правил.
☑️ Проверка после установки
Конфигурационный файл prometheus.yml
Вся настройка сервера описывается в файле prometheus.yml в формате YAML. Документация делит конфигурацию на глобальные параметры и секции скрейпинга. Разберём минимальный рабочий пример.
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "node"
static_configs:
- targets: ["localhost:9100"]
Параметр scrape_interval задаёт частоту опроса целей, а scrape_configs перечисляет задания сбора. Каждая цель автоматически получает метку job и instance, которые потом используются в запросах. После правки файла примените конфигурацию без перезапуска — отправкой сигнала SIGHUP процессу или HTTP-запросом на endpoint перезагрузки, если он включён флагом запуска.
| Параметр | Назначение | Типичное значение |
|---|---|---|
scrape_interval | Как часто опрашивать цели | 15s – 1m |
evaluation_interval | Как часто вычислять правила и алерты | 15s – 1m |
scrape_timeout | Таймаут одного опроса цели | 10s (не больше интервала) |
rule_files | Пути к файлам с правилами записи и алертами | rules/*.yml |
Язык запросов PromQL: основы
PromQL — собственный язык запросов Prometheus, и именно он вызывает больше всего вопросов у новичков. Запрос может быть простым именем метрики, например up, или сложным выражением с функциями, агрегациями и селекторами по меткам.
# Средняя загрузка CPU по всем ядрам за 5 минут
rate(node_cpu_seconds_total{mode="user"}[5m])
Топ-3 процесса по потреблению памяти
topk(3, node_memory_MemAvailable_bytes)
Ключевая концепция — различие между instant vector (мгновенное значение) и range vector (диапазон за период, указывается в квадратных скобках). Функции вроде rate() и increase() принимают только диапазон. Метрики делятся на четыре типа: counter (только растущий счётчик), gauge (произвольное значение), histogram и summary (распределения с квантилями).
Настройка алертов и Alertmanager
Правила оповещений описываются в отдельных YAML-файлах, которые подключаются через секцию rule_files. Каждое правило содержит PromQL-выражение, длительность срабатывания for и аннотации с текстом уведомления.
groups:
- name: example
rules:
- alert: InstanceDown
expr: up == 0
for: 5m
annotations:
summary: "Цель {{ $labels.instance }} недоступна"
Сам Prometheus только вычисляет правила и отправляет сработавшие алерты в Alertmanager. Уже Alertmanager отвечает за группировку одинаковых событий, подавление дублей (inhibition), периоды тишины (silences) и доставку в каналы: email, Slack, Telegram через webhook-интеграции. Параметр for: 5m критически важен — без него алерт сработает на единичный пропуск скрейпа и завалит вас ложными уведомлениями.
⚠️ Внимание: синтаксис и доступные функции PromQL меняются между версиями. Перед копированием примеров из статей проверяйте, к какой версии Prometheus они относятся, и сверяйтесь с changelog проекта.
Где искать официальную документацию
Полная документация доступна на официальном сайте проекта prometheus.io в разделе Docs. Русскоязычного официального перевода не существует — все русские материалы являются любительскими переводами или авторскими гайдами. Исходный код и спецификации ведутся в репозиториях проекта на GitHub, там же можно отслеживать изменения между версиями.
Популярные экспортеры и интеграции
Экосистема экспортеров — одна из главных сил Prometheus. Для мониторинга серверов на Linux стандартом считается node_exporter, который отдаёт метрики CPU, памяти, дисков и сети на порту 9100. Для проверки доступности сайтов и сетевых сервисов «снаружи» применяется blackbox_exporter, умеющий выполнять HTTP-, TCP-, ICMP- и DNS-пробы.
Многие приложения (например, Traefik, etcd, Kubernetes) экспортируют метрики в формате Prometheus нативно, без отдельных агентов. Для собственных приложений существуют официальные клиентские библиотеки для Go, Python, Java и других языков — они позволяют добавить endpoint /metrics прямо в код сервиса.
Часто задаваемые вопросы
Существует ли официальная документация Prometheus на русском?
Нет, официальный перевод отсутствует — документация ведётся только на английском языке. Русскоязычные материалы представлены сторонними гайдами, переводами отдельных разделов и статьями сообщества, качество и актуальность которых нужно оценивать самостоятельно.
Чем Prometheus отличается от Zabbix?
Главное отличие — модель сбора и хранения: Prometheus опрашивает цели сам (pull) и хранит данные как временные ряды с метками, а запросы выполняются через PromQL. Zabbix исторически ориентирован на push-агентов и реляционную БД. Prometheus лучше подходит для динамических сред вроде Kubernetes, Zabbix — для классической инфраструктуры с готовыми шаблонами.
Как долго Prometheus хранит метрики?
По умолчанию локальное хранилище ограничено периодом retention, который задаётся флагом запуска (исторически — 15 дней, в новых версиях параметр может настраиваться по времени или объёму). Для долгосрочного хранения используются внешние системы через remote write: например, VictoriaMetrics, Thanos или Mimir.
Можно ли мониторить Windows-серверы через Prometheus?
Да, для Windows существует экспортер windows_exporter (ранее известный как wmi_exporter), который собирает метрики системы через WMI/Performance Counters. Принцип настройки тот же: экспортер ставится на целевой хост, а его адрес добавляется в scrape_configs.
Нужна ли Grafana, если у Prometheus есть свой веб-интерфейс?
Встроенный интерфейс Prometheus подходит для отладки запросов и проверки целей, но не для построения дашбордов. Для визуализации в продакшне практически всегда используют Grafana, которая подключается к Prometheus как к источнику данных и предоставляет готовые дашборды для популярных экспортеров.