Netdata — мониторинг сервера с графиками «здесь и сейчас»: CPU, RAM, диски, сеть, процессы, часто еще БД и веб-сервер. Ставится быстро, жрет мало ресурсов относительно пользы, удобен когда нужно понять, что именно упирается в лимит, а не смотреть сухие цифры раз в пять минут.
Что делает Netdata
Агент собирает метрики с системы (и плагинов/коллекторов), рисует дашборд в браузере и может слать алерты. По умолчанию интерфейс слушает порт 19999. Данные в реальном времени: пики нагрузки, iowait, swap, сетевые всплески, «кто съел CPU» — видно без ручного top/htop в каждой сессии.
Типичные сценарии:
- разобраться, почему сайт тормозит в конкретный час
- увидеть утечку памяти или раздувшийся процесс
- проверить диск: заполнение, latency, перегрузка
- наблюдать сеть: bandwidth, errors, connections
- держать health-алерты на критичные метрики
Установка
Официальный и самый простой путь — kickstart-скрипт. Пакеты из apt/yum часто отстают, поэтому для актуальной версии предпочтительнее способ с сайта проекта.
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh sh /tmp/netdata-kickstart.sh
Скрипт поставит зависимости, агент и systemd-сервис. После установки проверьте статус:
sudo systemctl status netdata # или curl -I http://127.0.0.1:19999/
На Ubuntu/Debian иногда доступен пакет netdata через apt — для быстрого теста сойдет, но для продакшена удобнее kickstart или репозиторий Netdata, чтобы получать обновления вовремя.
Доступ к дашборду
Локально: http://127.0.0.1:19999/. С другого хоста: http://IP_СЕРВЕРА:19999/ — только если порт открыт осознанно.
На публичном VPS не оставляйте 19999 открытым всему интернету без защиты. Нормальные варианты:
- SSH-туннель:
ssh -L 19999:127.0.0.1:19999 user@server, затем браузер на localhost:19999 - Nginx/Caddy reverse proxy с basic auth или SSO + HTTPS
- файрвол: разрешить порт только с вашего IP
В конфиге можно ограничить bind на localhost. Основной файл обычно:
sudo nano /etc/netdata/netdata.conf # после правок sudo systemctl restart netdata
Если файла почти нет, сгенерируйте полный пример:
cd /etc/netdata sudo ./edit-config netdata.conf
Что смотреть в первую очередь
CPU и память
На дашборде — system overview: user/system/iowait, load, RAM, free, cached, swap. Если CPU в user/system — ищите процесс. Если высокий iowait — узкое место часто диск, а не «мало ядер». Swap, который постоянно thrashing, — сигнал нехватки RAM или утечки.
Сеть
Интерфейсы: входящий/исходящий трафик, drops, errors. Всплески на eth0/ens* при DDoS, бэкапе или кривом клиенте видны сразу. Сокеты и connections помогают поймать исчерпание лимитов (слишком много ESTABLISHED/TIME_WAIT).
Диски
Заполнение разделов, I/O, latency. Забитый / или /var валит сервисы (логи, БД, Docker). Высокая latency на диске объясняет «медленный сайт» даже при свободном CPU.
Процессы и сервисы
Раздел apps/processes показывает, кто жрет CPU/RAM. Удобно ловить php-fpm workers, mysqld, node, java после деплоя. Если коллекторы включены, можно смотреть и метрики приложений (Nginx, MySQL и т.д.) — зависит от установленных плагинов.
Алерты (health)
Netdata идет с набором health-чеков: диск почти полный, load, OOM-риски и прочее. Правила лежат в health.d; правки — через edit-config, чтобы не потерять их при обновлении:
cd /etc/netdata sudo ./edit-config health.d/cpu.conf # пример пути - имена файлов смотрите в health.d/
Уведомления (email, Slack, Telegram и др.) настраиваются в health_alarm_notify.conf. Для начала достаточно дашборда; алерты подключайте, когда уже понятно, какие пороги вам реально важны (иначе будет шум).
Как это помогает «ускорить» сервер
Netdata сам по себе не ускоряет машину — он показывает узкие места. Дальше действия по фактам:
- высокий CPU одного процесса → профилирование, кэш, лимиты php-fpm/workers
- мало RAM / swap thrash → уменьшить workers, кэш объектов, апгрейд RAM
- iowait / disk latency → SSD, разнести логи и БД, тюнинг БД, меньше random write
- сеть в потолок → CDN, сжатие, rate limit, поиск аномального клиента
- диск 95%+ → ротация логов, чистка бэкапов, enlarge volume
Быстрый чеклист после установки
- Агент в systemd, порт 19999 отвечает локально
- Доступ снаружи закрыт или защищен (туннель/proxy/IP allowlist)
- Просмотрели CPU, RAM, disk, network в спокойный час — запомнили «норму»
- При инциденте сравнили пики с процессами
- По желанию: health notify в мессенджер/почту
Для одного VPS или пары серверов Netdata часто хватает без тяжелого стека Prometheus+Grafana. Если метрик и команд станет много — данные Netdata можно экспортировать дальше, но для повседневной диагностики дашборда агента обычно достаточно.