ZIM-НИЙ SAAALEЗимние скидки: до −50% на старт и −20% на продление
до 31.01.2026 Подробнее
Выберите продукт

Prometheus agents в 2025: node_exporter vs Grafana Alloy vs Telegraf

В 2025 «Prometheus + node_exporter» не всегда достаточно: больше удалённых площадок, NAT, динамических сервисов и требований к remote_write. Сравниваем node_exporter, Grafana Alloy и Telegraf: архитектура, discovery, systemd и сценарии выбора.
Prometheus agents в 2025: node_exporter vs Grafana Alloy vs Telegraf

В 2025 году «поставить Prometheus и node_exporter» уже не единственный очевидный путь. В инфраструктуре стало больше контейнеров, динамики (service discovery), требований к централизации и к доставке метрик наружу через remote_write. Поэтому вопрос «какой Prometheus agent выбрать» чаще всего упирается не в бренд, а в то, кто будет делать scrape, кто будет отвечать за доставку метрик и кто будет ограничивать кардинальность.

Ниже — практичное сравнение для админов/DevOps/вебмастеров: как эти агенты устроены, как их эксплуатировать через systemd, где они сильны и где добавляют лишнюю сложность.

Что мы сравниваем и по каким критериям

Важно: три решения частично пересекаются, но исторически закрывают разные роли.

  • node_exporter — специализированный exporter метрик хоста (CPU/RAM/disk/net/fs и системные счетчики ядра).

  • Grafana Alloy (раньше Grafana Agent) — агент-коллектор: умеет собирать Prometheus-метрики (scrape), применять relabel/фильтры и отправлять дальше по remote_write (а также может участвовать в логах/трейсах).

  • Telegraf — универсальный агент на плагинах input/output, сильный в «нестандартных» источниках и протоколах.

Критерии, по которым удобно сравнивать:

  • Совместимость с Prometheus: pull-модель, формат метрик, labels, работа с exporters.

  • remote_write: насколько просто отправлять метрики в центр/хранилище.

  • Service discovery: как находить targets в динамических средах.

  • Операционная простота: установка, обновления, systemd, дебаг.

  • Надёжность: поведение при обрывах сети, очереди, backpressure.

  • Типовые сценарии: одна VDS, парк серверов, несколько площадок, гибрид.

node_exporter: лучший «датчик» хоста, но не транспорт

node_exporter — по-прежнему стандарт де-факто для метрик Linux-хоста: нагрузка CPU, память, файловые системы, сеть, давление на ресурсы (PSI — если поддерживается ядром и включены нужные коллекторы) и много других сигналов.

Плюсы node_exporter

  • Минимум движущихся частей: один бинарник, одна задача — отдать метрики по HTTP.

  • Прозрачность: метрики легко проверить локально; ошибки обычно сводятся к правам, фильтрам ФС и включённым коллекторам.

  • Экосистема: готовые дашборды/алерты и привычные имена метрик.

  • Отличная связка с pull: Prometheus управляет частотой scrape и таймаутами.

Минусы node_exporter

  • Не умеет remote_write: сам по себе не «доставляет» метрики в центр.

  • Service discovery не его задача: это endpoint, а не управляющий компонент.

  • Только хост: метрики приложений потребуют дополнительных exporters или другого агента.

Типовая схема

Классика: на каждом сервере работает node_exporter, центральный Prometheus забирает метрики по pull. Если центральному Prometheus «не дотянуться» из-за NAT/изоляции, поверх добавляют компонент, который делает локальный scrape и отправляет данные наружу — и вот здесь появляется Alloy или другой агент с remote_write.

node_exporter отвечает на вопрос «что происходит с сервером», но почти никогда не отвечает на вопрос «как надёжно доставить метрики в централизованное хранилище».

Схема: node_exporter и другие exporters собираются локальным агентом и отправляются через remote_write

Grafana Alloy (ex Agent): локальный scrape + remote_write и унификация

Если вам нужен «Prometheus agent» в практическом смысле — то есть локально собирать метрики с /metrics (включая node_exporter и exporters приложений) и отправлять их дальше по remote_write — Alloy закрывает эту задачу напрямую.

В эксплуатации это обычно выглядит так: на каждой машине Alloy делает scrape локальных endpoints, применяет relabel/фильтры, буферизует при проблемах сети и отправляет в централизованный backend (Prometheus-совместимое хранилище, агрегатор или кластер метрик).

FastFox VDS
Облачный VDS-сервер в России
Аренда виртуальных серверов с моментальным развертыванием инфраструктуры от 195₽ / мес

Плюсы Alloy

  • remote_write «из коробки»: одна из главных причин ставить Alloy рядом с exporters.

  • Единая точка сбора: можно собирать и node_exporter, и exporters сервисов, и кастомные /metrics приложений.

  • Гибкий relabeling: удобно нормализовать labels до отправки в центр (особенно если в центре строгие правила кардинальности).

  • Лучше подходит для «удалённых» хостов: когда центральный pull неудобен (нет входящих соединений, разные сегменты сети).

Минусы и подводные камни

  • Сложнее, чем node_exporter: появляется конфигурация scrape/relabel/очередей remote_write, и больше мест для ошибки.

  • Нужна дисциплина по labels: агенту легко «собрать всё подряд», а хранилищу потом тяжело переварить кардинальность.

  • Миграции и режимы: если вы исторически использовали Grafana Agent, при переходе на Alloy возможна переработка конфигов и подхода.

Минимальные практики, чтобы Alloy не «стрелял в ногу»

  1. Фиксируйте базовые labels (например, instance, job, окружение) и сразу режьте динамические значения, которые приводят к взрывному росту рядов.

  2. Мониторьте очередь и ошибки отправки (метрики самого агента), иначе «тихие» потери при сетевых проблемах обнаружатся слишком поздно.

  3. Разделяйте ответственность: где возможно, оставляйте exporters простыми, а нормализацию делайте в одном месте (агент/центр), чтобы поведение было предсказуемым.

Если вы строите мониторинг для парка серверов на VDS, Alloy часто становится тем самым «локальным сборщиком», который упрощает сетевую политику: наружу ходит только агент, а не центральный Prometheus «везде внутрь».

Telegraf: когда нужно собрать метрики «со всего подряд»

Telegraf не является «Prometheus-native» по философии, но он остаётся сильнейшим вариантом, когда источники метрик нестандартные или Prometheus exporters отсутствуют или неудобны. Его ценность — в огромном каталоге input/output плагинов.

Плюсы Telegraf

  • Очень много input-плагинов: от системных метрик и процессов до баз, брокеров, SNMP и специфичных демонов.

  • Гибкие output: можно отправлять данные в разные системы наблюдаемости, а не только в Prometheus-стек.

  • Удобен в «зоопарке»: когда в инфраструктуре есть legacy, железки, нестандартные протоколы и «сервисы без /metrics».

Минусы в Prometheus-сценарии

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

  • Лишнее звено, если всё уже на exporters: когда весь стек уже «говорит» на Prometheus, Telegraf может быть избыточным.

  • Риски кардинальности через теги: любые «динамические» теги легко раздувают число временных рядов.

Service discovery: кто и как «находит» targets

Service discovery критичен там, где targets часто появляются и исчезают: контейнеры, автоскейлинг, ephemeral окружения. Разница по ролям тут принципиальная:

  • node_exporter ничего «не находит» — это просто endpoint. Discovery делает Prometheus (центральный) или агент рядом.

  • Alloy может выполнять роль локального Prometheus-agent: находить targets (в зависимости от выбранных механизмов discovery) и отправлять результат по remote_write.

  • Telegraf чаще живёт в модели «явно перечисли, что опрашивать», хотя автодискавери тоже возможен через плагины и шаблоны.

Если у вас статичный парк серверов — достаточно статических targets. Но если у вас Docker или Kubernetes и частые изменения, зрелый discovery на стороне Prometheus или Alloy обычно экономит много времени и ошибок.

remote_write: когда pull не работает или неудобен

Pull-модель Prometheus идеальна в «плоской» сети, где центральный сервер может ходить на все /metrics. На практике часто мешают:

  • нет входящих соединений на хосты (NAT, закрытые подсети);

  • много площадок и регионов;

  • требование централизовать хранение и доступ;

  • желание упростить firewall-политику.

В этих сценариях remote_write становится основным транспортом. Тогда расклад простой:

  • node_exporter не умеет remote_write и сам проблему не решает.

  • Alloy — один из самых прямых путей «scrape локально → remote_write в центр».

  • Telegraf тоже умеет «отправлять дальше», но это может быть другой формат и модель; для Prometheus-стека чаще выбирают путь, максимально близкий к Prometheus.

Если вы дополнительно контролируете доступ к endpoints и панелям мониторинга, часто имеет смысл не забывать про TLS на внешних компонентах и управляемую ротацию сертификатов. Для этого в периметре, где метрики и UI доступны из разных сегментов, могут пригодиться SSL-сертификаты.

systemd и эксплуатация: что проще поддерживать

Операционная простота обычно важнее списка фич: обновить, перезапустить, понять, почему появилась «дыра» в метриках.

node_exporter + systemd

Как правило, это самый простой юнит: один процесс, минимум настроек. Частые проблемы — доступ к отдельным коллекторам, исключения файловых систем и привязка к listen-адресу или порту.

Alloy + systemd

Сложность выше: конфиг, контроль ресурсов, понимание очередей remote_write и поведения при деградации сети. Зато в обмен вы получаете «локальный мозг»: один агент может собрать несколько exporters и /metrics приложений, унифицировать labels и отправить всё в один backend.

Telegraf + systemd

Telegraf обычно стабилен, но конфиги часто «распухают» из-за плагинов. Поддержка множества input’ов — это регулярная работа: обновления, изменения схем метрик, контроль тегов и частот.

Если нужна минимальная сложность — начинайте с node_exporter. Если нужна доставка и унификация — чаще всего уместен Alloy. Если важны интеграции «со всем на свете» — Telegraf часто выигрывает по времени внедрения.

Практические сценарии выбора

Сценарий 1: один сервер или небольшой проект

Если у вас 1–3 сервера и нужна базовая наблюдаемость по хосту, самый быстрый путь — node_exporter + Prometheus (на отдельной машине или на том же хосте).

Alloy имеет смысл добавлять, когда появляется необходимость отправлять метрики в центр по remote_write или когда вы хотите «собрать всё локально» (несколько endpoints на машине) и централизованно нормализовать labels.

Сценарий 2: много VDS, разные сети, нет входящих на хосты

Здесь часто побеждает модель: локальный агент на каждом хосте (Alloy) делает scrape node_exporter и других exporters, а затем отправляет метрики в центр по remote_write.

Если вы поднимаете мониторинг на небольших серверах, полезно держать отдельный чек-лист по настройке и отладке метрик и алертов: Zabbix и Prometheus на небольшой VDS: настройки и подводные камни.

Сценарий 3: нужны метрики не только Linux и приложений, но и «всего остального»

Когда в контуре есть SNMP-устройства, специфические сервисы, legacy middleware или источники, где нет зрелых exporters, Telegraf часто становится «клеем».

Практичный компромисс: хостовые метрики — через node_exporter (как стандарт), нестандартные источники — через Telegraf, а дальше приводите всё к правилам (labels, частоты, агрегации) на стороне хранилища и дашбордов.

Набросок эксплуатационных деталей: service discovery, relabeling и очереди remote_write

Риски и типичные ошибки при внедрении

  • Кардинальность: динамические labels (например, user_id, URL с параметрами, request_id) быстро убивают хранилище. Лучше резать и нормализовать на этапе агента (relabel/filters) или ещё раньше — в приложении.

  • Слишком частый scrape: повышает нагрузку и шум. Для хоста часто достаточно 15–30 секунд; для некоторых сервисов — 10–15 секунд, но это зависит от SLO и цены метрик.

  • «Один агент на всё» без границ: иногда проще оставить node_exporter как базу, а остальное собирать отдельными exporters. Чем больше монолитный агент, тем выше цена ошибки конфигурации.

  • Нет мониторинга самого мониторинга: агент должен отдавать метрики о своём состоянии (ошибки scrape, ошибки отправки, очереди remote_write), иначе деградация будет незаметной.

Короткий вывод: что выбрать в 2025

  • Нужны системные метрики хоста — ставьте node_exporter почти всегда.

  • Нужен агент, который собирает локально и отправляет в центр по remote_write — выбирайте Grafana Alloy (а Grafana Agent — там, где он уже внедрён и вы не готовы мигрировать прямо сейчас).

  • Нужны интеграции с нестандартными источникамиTelegraf часто самый быстрый путь, но закладывайте время на нормализацию метрик под Prometheus-экосистему.

В проде чаще всего хорошо работает комбинация: node_exporter на каждом хосте (как базовый датчик) + Alloy как транспорт и агрегация через remote_write (когда pull неудобен). Telegraf добавляйте точечно — там, где он реально экономит недели интеграций.

Если вы строите алерты, которые зависят от дисков и квот, полезно заранее продумать пороги и источники данных: алерты по квотам и заполнению диска для ext4 и xfs.

Поделиться статьей

Вам будет интересно

HTTP/2 in Nginx: multiplexing, stream priorities, and where performance is lost OpenAI Статья написана AI (GPT 5)

HTTP/2 in Nginx: multiplexing, stream priorities, and where performance is lost

HTTP/2 обещает ускорение за счёт multiplexing и приоритетов потоков, но на практике всё упирается в TCP head-of-line blocking, TLS ...
Kubernetes storage on a single-node VDS: local-path, Longhorn, OpenEBS OpenAI Статья написана AI (GPT 5)

Kubernetes storage on a single-node VDS: local-path, Longhorn, OpenEBS

На одном узле Kubernetes выбор хранилища упирается в простоту, скорость и восстановление из бэкапов. Разберём local-path, Longhorn ...
MySQL online schema change: gh-ost vs pt-online-schema-change vs ALGORITHM=INPLACE OpenAI Статья написана AI (GPT 5)

MySQL online schema change: gh-ost vs pt-online-schema-change vs ALGORITHM=INPLACE

Онлайн-изменение схемы MySQL почти всегда упирается в metadata lock, финальный swap и поведение репликации под нагрузкой. Разберём ...