Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Проверено
29 июля 2026 г.
Запуск
docker compose (Prometheus-стек + Grafana + Caddy)
Сложность
Средний
Ключевой замер
RAM idle ~274 MiB весь стек
Версия
v3.13.1
Репозиторий
GitHub →
Наблюдаемость и аудит

Prometheus

Свой сбор метрик на своих серверах: pull-модель, экспортеры для хостов и контейнеров, язык запросов PromQL и алерты через Alertmanager. Стандарт метрик в облаке и Kubernetes, ядро под Apache-2.0. Стенд подняли на Fatmetal Cloud Server в связке с Grafana и сняли замеры с живого сервера.

Июль 2026 ~9 минут чтения Fatmetal Team
Наблюдаемость и аудит Лицензия: Apache-2.0 Статус: запущен у нас, v3.13.1

Вердикт

Подходит
  • нужен гибкий стандарт метрик для докера, Kubernetes и парка серверов, а не игрушка на один хост
  • хочется собирать метрики хостов, контейнеров и своих сервисов в своем периметре, без Datadog и New Relic
  • нужны алерты по порогам (диск, память, недоступность) с маршрутизацией в один канал - в связке с Alertmanager и ntfy
Не подходит
  • нужен мониторинг из коробки с готовым UI и минимумом настройки - тогда проще Beszel или Uptime Kuma
  • нужны красивые дашборды сразу - Prometheus рисует только служебные графики, витрина это Grafana рядом
  • нужна многолетняя история метрик из коробки - локальная TSDB под это не заточена, потребуется remote-write
Мин. тариф: CPU2-RAM4-DISK50 Рекомендуем: CPU2-RAM4-DISK50 Сложность: medium Время запуска: ~3 минуты Главный риск: без экспортеров и PromQL это просто пустая БД - порог входа выше Beszel Прод-готовность: да (реверс-прокси с TLS уже в стеке)
Что это

Что это и какую задачу решает

Когда сервисов больше одного, вопрос «что сейчас с инфраструктурой» превращается в десяток вкладок и ssh-сессий. Prometheus закрывает это одним стандартным способом: он централизованно собирает метрики со всего парка - загрузку CPU и памяти хостов, состояние контейнеров, задержки и ошибки ваших приложений - и хранит их как временные ряды, по которым можно строить графики и правила алертов.

Работает по pull-модели: Prometheus сам по расписанию ходит по HTTP на эндпоинты /metrics ваших целей и забирает цифры. Эти эндпоинты отдают «экспортеры»: node_exporter для метрик хоста, cAdvisor для контейнеров, blackbox_exporter для проверки доступности, плюс сотни готовых экспортеров под Postgres, nginx, Redis и прочее. Свои сервисы отдают метрики через клиентские библиотеки.

Это ядро наблюдаемости в облачном мире: Prometheus - второй проект-выпускник CNCF после Kubernetes, и де-факто стандарт метрик там, где есть докер и оркестрация.

https://45-15-159-158.fatmetal.net/prom/targets
Страница Targets в Prometheus: три цели node, cadvisor и prometheus в состоянии UP
Страница Targets на нашем стенде: Prometheus скрейпит три цели (node_exporter, cAdvisor и себя самого) - все UP, с временем последнего опроса и длительностью. Prometheus v3.13.1.
Сравнение

Чем отличается от Zabbix, InfluxDB и облачных APM

Zabbix - классика инфра-мониторинга, «все в одном» с агентами, которые push-ат данные на сервер. Prometheus, наоборот, pull-ит метрики и берет силу в экосистеме экспортеров и в интеграции с докером и Kubernetes - это выбор, когда инфраструктура контейнерная и динамичная.

InfluxDB - тоже time-series БД, но push-модель и свой язык. Prometheus выигрывает языком PromQL и стандартом де-факто в cloud-native: под него написана большая часть экспортеров и дашбордов.

Datadog, New Relic, Grafana Cloud - облачные APM: удобно, но метрики и деньги уходят наружу. Prometheus поднимается у себя, данные остаются в вашем периметре (для РФ - под 152-ФЗ), а платите вы только за сервер.

Наш Beszel - это «Prometheus-лайт»: метрики хоста и контейнеров с UI из коробки, ставится в один клик, идеален для малого. Prometheus - тяжелее и требует настройки, но безгранично расширяем и рассчитан на рост. Ниже в разделе про стек мы показываем, как из них двоих сложить два тира одного направления.

ИнструментМодельГде данныеПрофиль
PrometheusPull, Apache-2.0ваш серверстандарт метрик для докера и k8s, экосистема экспортеров
ZabbixPush-агенты, GPLваш серверклассика, но менее удобен в контейнерном мире
InfluxDBPush, MIT/коммерцваш серверсвоя TSDB и язык, не доминирует в k8s
Datadog / New RelicSaaS, per-hostчужое облакоудобно, но данные и деньги наружу
Beszel (наш разбор)легкий, UI из коробкиваш сервер«Prometheus-лайт» для малого, без PromQL
Архитектура

Тех-стек и как это работает

Prometheus - один Go-бинарь с встроенной time-series БД (TSDB). Чтобы получилась полезная наблюдаемость, рядом ставят экспортеры и Grafana для дашбордов. На стенде мы подняли типовой набор:

prom/prometheus:v3.13.1 (Go, TSDB) node_exporter (метрики хоста) cAdvisor (метрики контейнеров) grafana (дашборды) caddy:2 (TLS)

Цикл простой: экспортеры отдают /metrics, Prometheus по scrape_interval их опрашивает и складывает ряды, а вы запрашиваете их языком PromQL - для дашбордов в Grafana и для правил алертов. Найденные условия (диск заполнен, цель недоступна) уходят в Alertmanager, а тот маршрутизирует их в почту, Telegram или наш ntfy.

Конфигурация

Минимальная конфигурация

Весь Prometheus настраивается одним YAML-файлом. Минимум - интервал опроса и список целей (для статики; в динамике подключается service discovery по DNS, Kubernetes или Consul):

global:
  scrape_interval: 15s
scrape_configs:
  - job_name: node
    static_configs:
      - targets: ['node-exporter:9100']
  - job_name: cadvisor
    static_configs:
      - targets: ['cadvisor:8080']
!

Если публикуете UI под поддиректорией (у нас Caddy отдает Prometheus на /prom), задайте флаг --web.route-prefix и пропишите тот же префикс в пути метрик само-скрейпа и в URL источника данных Grafana - иначе часть запросов упрется в 404.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не настраивать сбор метрик вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и готовый Prometheus - остается подключить экспортеры.

Рекомендуемая конфигурация: CPU2-RAM4-DISK50

Развернуть в 1 клик →
Развертывание

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

Стенд подняли на тарифе Fatmetal Cloud Server CPU2-RAM4-DISK50 с Ubuntu 24.04 и Docker.

  1. Сервер и Docker

    Создаем Fatmetal Cloud Server на Ubuntu 24.04 с преднастроенным Docker. Домен вида 45-15-159-158.fatmetal.net резолвится сам.

  2. Стек через Docker Compose

    Поднимаем prometheus + node_exporter + cAdvisor + Grafana + Caddy одним docker compose up -d. Prometheus сразу начинает скрейпить цели.

  3. TLS на Caddy

    Caddy берет сертификат Let's Encrypt на magic-DNS-домен, отдает Grafana в корне и Prometheus на /prom. Наружу только 80 и 443.

  4. Дашборды и алерты

    В Grafana преднастраиваем источник данных Prometheus и импортируем дашборд Node Exporter Full. Правила алертов и Alertmanager - следующий слой.

MCP

Стенд для разбора развернут не руками: агент Fatmetal заказал сервер через MCP, поднял стек и снял метрики и скриншоты живого инстанса. Цифры и экраны ниже - с этого стенда.

Замеры

Что измерили после запуска

Замеры с живого стенда, docker stats в простое. Весь набор - Prometheus, два экспортера, Grafana и Caddy - помещается в тариф CPU2-RAM4-DISK50 с большим запасом.

Версия Prometheusv3.13.1
RAM в простое, весь стек~274 MiB
prometheus / grafana / cadvisor / node-exp / caddy45 / 147 / 63 / 8 / 11 MiB
Образы на диске~2.17 GB
Целей опрашивается3 (node, cadvisor, prometheus) - все UP
Внешний ответHTTP 200, TLS Let's Encrypt, valid
Тариф стендаCPU2-RAM4-DISK50

Сам Prometheus в простое ест около 45 MiB - основную память забирает Grafana. Реальное потребление растет с числом целей и рядов (кардинальностью метрик): на большом парке смотрите за памятью и при необходимости берите старший тариф или выносите долгую историю в remote-write.

PromQL и экосистема

PromQL и экспортеры

Сила Prometheus - в языке запросов. PromQL умеет не только выбирать ряды, но и считать по ним производные величины: скорость роста счетчиков через rate(), агрегации по меткам, перцентили латентности через histogram_quantile(). Один и тот же запрос ложится и в дашборд Grafana, и в правило алерта.

За данными стоит экосистема экспортеров: node_exporter (CPU, память, диск, сеть хоста), cAdvisor (контейнеры), blackbox_exporter (доступность сайтов, портов, TLS - альтернатива Uptime Kuma внутри стека метрик), плюс готовые экспортеры почти под любую БД и сервис. Ниже - PromQL-график с нашего стенда: разложение загрузки CPU по режимам.

https://45-15-159-158.fatmetal.net/prom/query
PromQL-график в Prometheus: sum by mode rate node_cpu_seconds_total за час с легендой по режимам CPU
Встроенный PromQL-редактор: запрос sum by (mode) (rate(node_cpu_seconds_total[5m])) графиком за час, с разбивкой по режимам CPU (idle, system, user и т.д.). Полноценные дашборды рисует Grafana поверх тех же данных.
Грабли

Где может сломаться

Target DOWN: server returned HTTP status 404 Not Found

Что происходит: при публикации UI под поддиректорией с --web.route-prefix=/prom эндпоинт метрик уезжает на /prom/metrics, а само-скрейп по умолчанию ходит на /metrics и ловит 404.

Решение: задайте в задании само-скрейпа metrics_path: /prom/metrics и перечитайте конфиг. Тот же префикс нужен в URL источника Prometheus в Grafana.

Взрыв кардинальности

Метки с высокой изменчивостью (id пользователя, url с параметрами) плодят миллионы рядов и съедают память. Держите метки под контролем - это главная причина, почему Prometheus начинает есть RAM.

Пустой Prometheus без экспортеров

Сам по себе Prometheus ничего не показывает. Пока не подключены экспортеры и не написан хотя бы один PromQL-запрос, это просто база. Это и есть его порог входа против Beszel.

Безопасность

Безопасность и обновления

У Prometheus нет своей аутентификации - его веб и API закрывают реверс-прокси (у нас Caddy с TLS и, при необходимости, basic-auth). Наружу торчат только 80 и 443, сами Prometheus, экспортеры и Grafana слушают внутри docker-сети. node_exporter и cAdvisor тоже не стоит выставлять в интернет напрямую.

Обновление - смена тега образа и docker compose up -d; TSDB лежит в docker-томе и переживает перезапуск. Для боевого стенда добавьте бэкап тома данных и правила алертов, а на большом парке - remote-write в долговременное хранилище (Mimir, Thanos, VictoriaMetrics).

Не ваш выбор

Когда это НЕ ваш выбор

Нужен мониторинг «из коробки»

Если хочется поставить и сразу видеть графики без экспортеров и PromQL - берите Beszel или Uptime Kuma. Prometheus раскрывается на масштабе и в контейнерной среде, а для одного хоста это перебор.

Нужны дашборды без отдельного инструмента

Prometheus рисует только служебные графики. Красивые витрины - это Grafana рядом. Если не готовы держать связку из двух сервисов, оцените более цельные решения.

Нужна многолетняя история

Локальная TSDB рассчитана на оперативное окно, а не на годы. Для долгого хранения нужен remote-write в Mimir/Thanos/VictoriaMetrics - это отдельный слой инфраструктуры.

FAQ

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

Prometheus - это замена Grafana?

Нет, они работают в паре: Prometheus собирает и хранит метрики, Grafana рисует по ним дашборды. Prometheus умеет только служебные графики.

Что такое pull-модель?

Prometheus сам ходит по HTTP на эндпоинты /metrics целей и забирает метрики, а не цели шлют их ему. Это упрощает обнаружение и контроль состояния целей.

Как получить метрики моего приложения?

Через клиентскую библиотеку (Go, Python, Java и др.) приложение отдает свой /metrics, а вы добавляете его целью в конфиг. Для готового софта берите соответствующий экспортер.

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

Пишете правила на PromQL, Prometheus вычисляет их и отправляет сработавшие в Alertmanager, а тот маршрутизирует в почту, Telegram или ntfy.

Чем отличается от нашего Beszel?

Beszel - легкий мониторинг с UI из коробки для малого. Prometheus - гибкий стандарт под рост и контейнеры, но требует экспортеров, PromQL и Grafana рядом.

Какая лицензия?

Apache-2.0 - полностью открытое ядро, включая коммерческое использование, без open-core-ограничений.

Итог

Prometheus - индустриальный стандарт сбора метрик на своих серверах: pull-модель, экосистема экспортеров, PromQL и алертинг через Alertmanager. Стек легкий (сам Prometheus ~45 MiB, весь набор с Grafana ~274 MiB), TLS через Caddy в комплекте, данные остаются в вашем периметре под 152-ФЗ. Против облачных APM - без выноса метрик наружу; против нашего Beszel - безгранично расширяем и рассчитан на рост, ценой более высокого порога входа. Если инфраструктура выросла из «одного хоста с готовым UI» - это фундамент, на который ложатся Grafana для витрины и ntfy для алертов.

Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.

Спросить инженера в TelegramМы на связи