Сервер начинает тормозить в самый неподходящий момент. Вы подключаетесь по SSH, запускаете top или htop и пытаетесь на лету понять, что пошло не так. Этот подход работает, но он медленный и неудобный. Netdata решает проблему иначе: вы запускаете один контейнер и через 5 секунд видите тысячи метрик в реальном времени с задержкой в 1 секунду. Никаких конфигурационных файлов, никакой настройки экспортеров. Эта статья - практическое руководство по установке Netdata в Docker, настройке встроенных дашбордов и сравнению с Prometheus для двух ключевых сценариев: быстрой диагностики инцидентов и долгосрочного мониторинга инфраструктуры.
Мы пройдем весь путь: от команды docker run до кастомизации алертов в Slack. Вы получите готовые конфигурации, цифры по потреблению ресурсов и четкие критерии выбора между Netdata и Prometheus. Все инструкции проверены на актуальных версиях ПО в 2026 году.
Зачем нужен Netdata: мониторинг сервера в реальном времени без лишних настроек
Традиционные системы мониторинга требуют предварительной настройки. Prometheus нужно сконфигурировать, прописать таргеты, установить экспортеры, создать дашборды в Grafana. Zabbix требует развертывания сервера, агентов и шаблонов. Это оправдано для крупной инфраструктуры, но для быстрой диагностики конкретного сервера такой подход избыточен.
Netdata работает иначе. После запуска контейнера агент автоматически обнаруживает все запущенные сервисы: Docker-контейнеры, Nginx, MySQL, PostgreSQL, Redis и десятки других. Вы сразу видите графики CPU, RAM, дискового I/O, сетевой активности и сотни других метрик. Задержка от сбора до отображения - 1 секунда. Это не пакетный сбор раз в минуту, а настоящий real-time.
Архитектура Netdata построена на модульном ядре с плагинами. Каждый плагин отвечает за сбор метрик из определенного источника: /proc, /sys, cgroups, Docker API, stub_status Nginx. Плагины запускаются независимо и передают данные в ядро, которое агрегирует их и отдает на веб-интерфейс. Благодаря этому вы получаете тысячи метрик без единой правки конфигурации.
Пример из практики: вы замечаете аномальную нагрузку на сервер. Запускаете Netdata одной командой, открываете веб-интерфейс на порту 19999 и через 5 секунд видите полную картину: какой процесс потребляет CPU, что происходит с дисковым I/O, какие контейнеры создают нагрузку. Это экономит минуты, которые критичны при инциденте.
Для более глубокого понимания экосистемы мониторинга рекомендуем наше сравнение Zabbix, Prometheus и Netdata, где мы разбираем выбор инструмента под конкретный масштаб и бюджет.
Установка Netdata в Docker: пошаговая инструкция
Базовая команда для запуска контейнера
Самый быстрый способ запустить Netdata - использовать официальный Docker-образ. Приведенная ниже команда проверена на Docker 26+ и содержит минимально необходимый набор параметров для полноценного мониторинга хостовой системы.
docker run -d \
--name=netdata \
--pid=host \
--network=host \
-v netdataconfig:/etc/netdata \
-v netdatalib:/var/lib/netdata \
-v netdatacache:/var/cache/netdata \
-v /:/host:ro,rslave \
-v /etc/passwd:/host/etc/passwd:ro \
-v /etc/group:/host/etc/group:ro \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /etc/os-release:/host/etc/os-release:ro \
--cap-add SYS_PTRACE \
--restart unless-stopped \
netdata/netdata
Разберем ключевые параметры. --pid=host предоставляет контейнеру доступ к пространству PID хоста. Это критично для мониторинга всех процессов, а не только процессов внутри контейнера. Без этого флага вы увидите только PID 1 самого контейнера.
--network=host отключает сетевую изоляцию контейнера. Netdata использует этот режим для сбора сетевых метрик хоста и автообнаружения сервисов, слушающих на локальных интерфейсах. Если вам нужна сетевая изоляция, можно использовать bridge-сеть, но тогда часть сетевых метрик будет недоступна.
Три именованных volume - netdataconfig, netdatalib, netdatacache - сохраняют конфигурацию, библиотеки и кэш между перезапусками контейнера. Это важно: при обновлении образа ваши настройки не потеряются.
Проброс /:/host:ro,rslave монтирует корневую файловую систему хоста в режиме только для чтения с флагом rslave. Это нужно для доступа к логам, конфигурациям сервисов и другим данным за пределами /proc и /sys. Флаг rslave обеспечивает корректную работу с mount-пространствами.
--cap-add SYS_PTRACE добавляет capability для трассировки процессов. Без этого Netdata не сможет собирать детальные метрики по процессам, включая использование памяти и количество потоков.
--restart unless-stopped гарантирует, что контейнер автоматически перезапустится после перезагрузки сервера, пока вы явно не остановите его командой docker stop.
Проверка работы и первый вход в дашборд
После запуска контейнера откройте браузер и перейдите по адресу http://server-ip:19999. Вы увидите обзорный дашборд с ключевыми метриками: загрузка CPU, потребление RAM, сетевая активность, дисковые операции. Интерфейс загружается мгновенно, все графики интерактивны.
Если интерфейс недоступен, проверьте статус контейнера:
docker ps | grep netdata
Контейнер должен быть в статусе Up. Если его нет в списке, посмотрите логи:
docker logs netdata
Типичная проблема - файрвол блокирует порт 19999. Для iptables выполните:
iptables -A INPUT -p tcp --dport 19999 -j ACCEPT
Для firewalld:
firewall-cmd --add-port=19999/tcp --permanent
firewall-cmd --reload
Еще одна возможная ошибка - недостаток прав на чтение /proc или /sys. Убедитесь, что вы запускаете контейнер от root или пользователя с достаточными capabilities. Если вы используете rootless Docker, часть метрик будет недоступна. В этом случае добавьте флаг --user root к команде запуска.
После успешного запуска вы увидите в дашборде секции: System Overview, CPU, Memory, Disk, Network, а также группы для обнаруженных сервисов. Netdata автоматически находит Docker-контейнеры, системные службы и популярные приложения.
Настройка дашбордов и оповещений в Netdata
Кастомизация дашборда: скрываем ненужные графики
После запуска Netdata показывает все метрики, которые смог обнаружить. Для сервера с десятком сервисов это сотни графиков. Часть из них вам не нужна. Например, если вы не используете SNMP, соответствующие графики только загромождают интерфейс.
Все настройки хранятся в файле netdata.conf внутри контейнера по пути /etc/netdata/netdata.conf. Поскольку мы пробросили volume netdataconfig, изменения сохранятся между перезапусками.
Чтобы отключить ненужный плагин, зайдите в контейнер:
docker exec -it netdata bash
Отредактируйте конфигурацию:
cd /etc/netdata
./edit-config netdata.conf
Найдите секцию [plugins] и добавьте строки для отключения ненужных модулей. Например, для отключения SNMP:
[plugins]
snmp = no
После редактирования перезапустите контейнер:
docker restart netdata
Графики, связанные с отключенным плагином, исчезнут из дашборда. Это снижает визуальный шум и ускоряет навигацию.
Настройка оповещений: Slack и email
Netdata поставляется с предустановленными порогами алертов для большинства метрик. По умолчанию алерты отображаются только в веб-интерфейсе. Чтобы получать уведомления в Slack или по email, настройте health_alarm_notify.conf.
Внутри контейнера выполните:
cd /etc/netdata
./edit-config health_alarm_notify.conf
Для Slack найдите и раскомментируйте строки:
SEND_SLACK="YES"
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
Для email:
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="admin@example.com"
Также укажите SMTP-сервер, если он отличается от localhost:
EMAIL_SENDER="netdata@example.com"
SMTP_SERVER="smtp.example.com"
SMTP_PORT="587"
SMTP_USERNAME="user"
SMTP_PASSWORD="password"
После сохранения файла перезапустите контейнер. Для проверки отправки тестового алерта выполните внутри контейнера:
/usr/libexec/netdata/plugins.d/alarm-notify.sh test
Вы получите тестовое уведомление в настроенные каналы. Если уведомление не пришло, проверьте логи:
docker logs netdata | grep alarm
Для изменения порога срабатывания алерта отредактируйте соответствующий файл в директории /etc/netdata/health.d/. Например, для CPU:
cd /etc/netdata/health.d
./edit-config cpu.conf
Найдите секцию с алертом cpu_usage и измените значение warn или crit. По умолчанию предупреждение срабатывает при 80% утилизации CPU за 10 минут. Вы можете снизить порог до 70% или изменить временной интервал.
Потребление ресурсов Netdata: цифры и факты
Распространенное опасение: «Netdata покажет красивые графики, но сам будет потреблять ресурсы сервера». Это опасение имеет основания, но реальные цифры значительно ниже ожиданий.
По данным официальной документации и нашим тестам на стандартном VPS с 4 vCPU и 8 ГБ RAM, Netdata потребляет:
- CPU: 1-2% от одного ядра при стандартной частоте сбора метрик (раз в секунду)
- RAM: 30-50 МБ в режиме покоя, до 100 МБ при высокой активности
- Дисковый I/O: минимальный, все данные хранятся в RAM с циклической записью на диск раз в несколько секунд
Для сравнения: Prometheus Node Exporter потребляет около 10 МБ RAM, но не предоставляет визуализации и не собирает тысячи метрик автоматически. Grafana, необходимая для визуализации данных Prometheus, добавляет еще 50-80 МБ RAM. Таким образом, связка Node Exporter + Prometheus + Grafana в сумме потребляет сопоставимый объем ресурсов.
Потребление CPU растет линейно с количеством собираемых метрик. На сервере с 50+ Docker-контейнерами и активным Nginx потребление может достигать 3-5% CPU. Это объясняется тем, что каждый плагин работает в отдельном потоке и собирает данные независимо.
Если потребление CPU критично для вашего сценария, снизьте частоту сбора метрик. В файле netdata.conf измените параметр:
[global]
update every = 2
Это увеличит интервал сбора до 2 секунд и снизит нагрузку на CPU примерно на 40%. Для большинства сценариев задержка в 2 секунды некритична.
Netdata хранит метрики в оперативной памяти с автоматической агрегацией. По умолчанию детализированные данные (с секундным разрешением) хранятся 1 час, поминутные данные - 24 часа, почасовые - 7 дней. Это настраивается в netdata.conf через параметры dbengine multihost disk space и dbengine page cache size.
Netdata vs Prometheus: сравнение для двух сценариев мониторинга
Выбор между Netdata и Prometheus зависит от задачи. Оба инструмента собирают метрики, но архитектура и сценарии использования различаются кардинально. Ниже - объективное сравнение по ключевым критериям.
| Критерий | Netdata | Prometheus |
|---|---|---|
| Установка | Одна команда docker run, работает сразу | Требует настройки таргетов, exporter'ов, часто Grafana |
| Визуализация | Встроенные дашборды, тысячи графиков из коробки | Через Grafana, дашборды создаются вручную или импортируются |
| Глубина метрик | Тысячи метрик автоматически, автообнаружение сервисов | Зависит от exporter'ов, каждый сервис нужно настраивать отдельно |
| Масштабирование | Один агент на сервер, без централизации | Федерация, долговременное хранение в Thanos/VictoriaMetrics |
| Язык запросов | Нет, только предустановленные графики | PromQL для сложных аналитических запросов |
| Алертинг | Встроенный, с порогами из коробки | Alertmanager, гибкие правила на PromQL |
| Хранение истории | До 7 дней по умолчанию, настраивается | Годы, зависит от дискового пространства |
Эти различия определяют два основных сценария использования.
Сценарий 1: Быстрая диагностика проблем на сервере
Сервер начал тормозить, время ответа API выросло с 50 мс до 2 секунд. Вам нужно немедленно найти причину. Вы запускаете Netdata одной командой и через 5 секунд видите: утилизация CPU под 100%, процесс php-fpm создает аномальную нагрузку, дисковый I/O на разделе с логами вырос в 10 раз. Вы локализуете проблему за минуту, не настраивая ни одного конфигурационного файла.
В этом сценарии Netdata незаменим. Он не требует подготовки, не зависит от внешних систем и показывает все метрики сразу. Prometheus для такой задачи не подходит: вам нужно заранее настроить экспортеры, прописать таргеты, создать дашборды. Если инцидент уже произошел, настраивать мониторинг поздно.
Дополнительный плюс Netdata - автоматическое обнаружение аномалий. Встроенные алерты срабатывают при отклонении метрик от нормы, и вы видите проблемные графики с подсветкой на дашборде. Это ускоряет диагностику даже без глубокого знания системы.
Сценарий 2: Долгосрочный мониторинг и аналитика
Вы управляете инфраструктурой из 50+ серверов. Вам нужны ответы на вопросы: «Как менялась утилизация CPU за последние 6 месяцев?», «Какие серверы достигнут лимита по дисковому пространству через месяц?», «Коррелирует ли рост ошибок 5xx с деплоями?». Для этих задач Prometheus подходит лучше.
Prometheus централизованно собирает метрики со всех серверов, хранит их годами и предоставляет PromQL - мощный язык запросов для аналитики. Вы можете написать запрос, который вычисляет прогноз заполнения диска на основе исторических данных, и настроить алерт, который сработает за неделю до прогнозируемого заполнения. Netdata не предоставляет такой гибкости.
Grafana, работающая поверх Prometheus, позволяет создавать кастомные дашборды под конкретные бизнес-метрики. Вы можете объединить данные из разных источников: системные метрики из Node Exporter, метрики Nginx из nginx-prometheus-exporter, бизнес-метрики из вашего приложения.
Важный момент: Netdata и Prometheus не исключают друг друга. Вы можете использовать Netdata как источник данных для Prometheus через встроенный экспорт метрик. В файле netdata.conf включите:
[prometheus:exporter]
enabled = yes
После перезапуска Netdata начнет отдавать метрики в формате Prometheus на порту 19999 по пути /api/v1/allmetrics?format=prometheus. Добавьте этот эндпоинт как таргет в конфигурацию Prometheus, и вы получите тысячи метрик Netdata в централизованном хранилище Prometheus.
Для глубокого погружения в мониторинг дисковых метрик с Netdata и Prometheus изучите наше руководство по развертыванию Netdata + Grafana на базе Prometheus с настройкой прогнозирования заполнения разделов.
Интеграция Netdata с Docker и Nginx: практические примеры
Мониторинг Docker-контейнеров
При запуске с флагом --pid=host Netdata автоматически обнаруживает все запущенные Docker-контейнеры. В дашборде появляется группа «Docker containers» с детализацией по каждому контейнеру: потребление CPU, RAM, сетевой трафик, дисковые операции.
Для расширенного мониторинга с доступом к Docker API пробросьте сокет:
-v /var/run/docker.sock:/var/run/docker.sock:ro
Это даст Netdata доступ к названиям контейнеров, их меткам и дополнительным метрикам. Без сокета контейнеры идентифицируются по ID, что менее удобно для навигации.
Метрики контейнеров собираются через cgroups. Netdata читает файлы в /sys/fs/cgroup и строит графики для каждого контейнера. Это работает без дополнительной настройки и не требует установки агентов внутрь контейнеров.
Мониторинг Nginx
Netdata поставляется с плагином для сбора метрик Nginx через stub_status. Настройка занимает два шага.
Шаг 1: Включите stub_status в конфигурации Nginx. Добавьте в server-блок:
location /stub_status {
stub_status;
allow 127.0.0.1;
deny all;
}
Перезагрузите Nginx:
nginx -t && nginx -s reload
Шаг 2: Настройте плагин Netdata. Внутри контейнера выполните:
cd /etc/netdata
./edit-config python.d/nginx.conf
Приведите конфигурацию к виду:
localhost:
name: 'local'
url: 'http://localhost/stub_status'
Перезапустите Netdata:
docker restart netdata
В дашборде появится секция «Nginx» с графиками активных соединений, количества запросов в секунду и распределения по HTTP-кодам ответов. Для более глубокого анализа логов Nginx и настройки алертинга на ошибки 502/504 используйте наше руководство по практическому мониторингу Nginx с готовыми конфигурациями Prometheus и Grafana.
Аналогично настраиваются плагины для MySQL, PostgreSQL, Redis, MongoDB и других популярных сервисов. Принцип везде один: включить сбор метрик на стороне сервиса, указать URL в конфигурации плагина Netdata, перезапустить агент.
Заключение: когда выбирать Netdata, а когда Prometheus
Netdata - лучший выбор для мгновенного мониторинга в реальном времени, быстрой диагностики инцидентов и ситуаций, когда нужно увидеть полную картину по серверу без настройки. Запуск одной командой, тысячи метрик из коробки, встроенные дашборды и алерты делают его незаменимым инструментом дежурного администратора.
Prometheus - стандарт для масштабируемого долгосрочного мониторинга с централизованным хранением метрик, гибким языком запросов PromQL и богатой экосистемой экспортеров. Если у вас больше 10 серверов, вам нужны исторические данные за месяцы и кастомные дашборды в Grafana - выбирайте Prometheus.
Эти инструменты дополняют друг друга. Netdata можно развернуть как агент для сбора детальных метрик и экспортировать их в Prometheus для централизованного хранения и аналитики. В этом сценарии вы получаете преимущества обоих решений: глубина метрик Netdata и аналитические возможности Prometheus.
Если вы планируете масштабировать мониторинг на всю инфраструктуру, изучите наше руководство по оценке эффективности инфраструктуры после запуска проекта. Оно поможет определить ключевые метрики и построить дашборды для контроля надежности систем.
Попробуйте оба подхода на тестовом сервере. Запустите Netdata для мгновенного мониторинга и Prometheus для долгосрочного сбора метрик. Практический опыт с каждым инструментом даст понимание, какой из них решает ваши конкретные задачи.