
Сервер тормозит, а системные администраторы не могут найти причину? Netdata покажет, кто грузит систему прямо сейчас. Рассказываем, как поставить инструмент для мониторинга.
Иногда сервер начинает дёргаться без видимых причин — загрузка скачет, сайт тормозит, но в логах всё чисто. Особенно часто такое случается на VPS, когда ресурсов ограничено, а на одном узле крутится несколько сервисов. В такой ситуации важно быстро увидеть, что происходит с сервером в данный момент — без ручного анализа через htop и поиска нужных метрик в разных инструментах.
В статье рассказали, как поставить инструмент для мониторинга Netdata, настроить доступ и понять, что именно происходит с сервером в реальном времени.
Что такое Netdata и зачем он нужен
Netdata — это система мониторинга, которая отображает состояние сервера в реальном времени. В отличие от большинства других систем, Netdata не требует настройки базы данных и устанавливается за пару минут. Всё работает прямо из коробки: установил, открыл в браузере и смотришь, как ведёт себя система.
Netdata собирает метрики каждую секунду. Вы видите не усреднённые графики, а актуальную нагрузку: загрузку процессора, использование памяти, поведение сервисов в деталях. Это помогает замечать проблему в моменте, а не когда уже всё упало.
По умолчанию Netdata показывает состояние CPU, памяти, сети, дисков, Docker-контейнеров, баз данных, кешей и десятков других служб. При этом не нужно ничего настраивать вручную, все графики появляются автоматически, как только система запускается.
Подготовка сервера перед установкой
Чтобы установка Netdata прошла без ошибок и система сразу начала собирать метрики, сервер следует предварительно подготовить. В первую очередь необходимо обновить пакеты — это не формальность, а практическая мера: устаревшие версии могут конфликтовать с установочным скриптом и вызвать сбой на этапе установки.
Если у вас Ubuntu или Debian, пропишите:
sudo apt update && sudo apt upgrade
Для CentOS, AlmaLinux или Rocky Linux:
sudo dnf update
Дальше убедитесь, что установлен curl. Это утилита, с помощью которой Netdata загружает свой скрипт. Если её нет, установка даже не начнётся.
Для Debian/Ubuntu:
sudo apt install curl
Для CentOS:
sudo dnf install curl
Если сервер только развёрнут, обязательно настройте базовую защиту: создайте пользователя с sudo-доступом и отключите вход под root. Это может спасти продакшен, если кто-то подберёт пароль.
Если вы только подбираете сервер для установки мониторинга, обратите внимание на VPS от AdminVPS. Netdata на таких серверах устанавливается без конфликтов, а в случае неполадок можно оперативно обратиться в круглосуточную техподдержку.
Установка Netdata на сервер
У Netdata есть установочный скрипт, который делает всё сам. Он определяет ОС, подтягивает зависимости, собирает агента и запускает сервис.
Запустите установку:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Скрипт предложит установить Netdata с полным набором возможностей или только агент. Оставьте первый вариант, он подойдёт в большинстве случаев. Установка займёт пару минут.
После завершения Netdata сразу будет работать. Откройте браузер и перейдите по адресу:
http://<ваш_IP_адрес>:19999
Вы увидите живую панель с графиками: процессор, память, диски, сеть, службы, нагрузка. Всё это обновляется каждую секунду.
На этом этапе Netdata уже собирает данные. Но пока интерфейс открыт всему Интернету, и для его защиты требуются дополнительные настройки.
Настройка доступа и защита интерфейса
Интерфейс нужно закрыть от посторонних, хотя бы простейшей авторизацией.
Самый надёжный способ — оставить Netdata доступной только локально и настроить проксирование через Nginx. Вы сможете подключить защиту паролем, HTTPS и даже ограничения по IP, если нужно.
Сначала откройте конфигурацию Netdata:
sudo nano /etc/netdata/netdata.conf
Найдите строку bind to и замените её на:
bind to = 127.0.0.1
Это ограничит доступ к интерфейсу только с самого сервера. Сохраните файл и перезапустите сервис:
sudo systemctl restart netdata
Теперь ставим Nginx:
sudo apt install nginx apache2-utils
Создайте файл паролей:
sudo htpasswd -c /etc/nginx/.htpasswd admin
Введите и подтвердите пароль. Откройте конфиг для нового сайта:
sudo nano /etc/nginx/sites-available/netdata
Вставьте:
server {
listen 80;
server_name ваш_домен;
location / {
proxy_pass http://127.0.0.1:19999/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Сохраните файл, создайте символическую ссылку и перезапустите Nginx:
sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo systemctl reload nginx
Теперь интерфейс Netdata доступен по вашему домену и защищён авторизацией. Вы можете наблюдать за сервером, не опасаясь несанкционированного доступа.
Что можно мониторить и как читать графики
В Netdata на первый взгляд графиков много, но нужное всегда на виду. Интерфейс показывает, что происходит прямо сейчас, и не требует ковыряться в настройках.

Верхняя часть отображает загрузку процессора, использование памяти и активные процессы. Обновление идёт каждую секунду, поэтому перегрузки видно сразу.

Чуть ниже система показывает состояние дисков. Здесь легко отследить, сколько осталось свободного места, как часто происходят операции чтения и записи, и появляются ли задержки. Если накопитель не справляется, это сразу видно.

Метрики по сети помогают понять, сколько трафика входит и выходит, какие соединения открыты, есть ли ошибки или потери пакетов. Даже внешние домены, с которыми работает сервер, можно увидеть. Это позволяет быстро определить источник нагрузки.

Netdata сам находит сервисы вроде MySQL, Redis или Docker и показывает для каждого свою панель. Можно посмотреть количество соединений, длительность запросов, что кешируется, сколько контейнеров работает и насколько они загружены.
Интерфейс позволяет свободно двигаться по шкале времени и находить моменты просадок. Видно, кто в это время грузил процессор, обращался к диску или сливал трафик.
Как настроить уведомления о сбоях
Чтобы не проверять состояние вручную и не гадать, всё ли в порядке, можно настроить оповещения (алерты). Тогда система сама даст знать, если что-то пошло не так.
Алерты в Netdata работают по правилам. Например, если CPU перегружен дольше минуты, приходит сообщение. Готовые правила включены по умолчанию, но их можно изменить под свои задачи.
Чтобы подключить оповещения в Telegram, создайте бота через @BotFather: выполните команду /newbot, задайте имя и сохраните токен — он понадобится для настройки Netdata.
Теперь определите, куда отправлять сообщения: в личный чат или группу. Чтобы узнать ID, напишите @userinfobot, он выдаст нужное число.
Откройте файл:
/etc/netdata/health_alarm_notify.conf
Найдите блок telegram, раскомментируйте строки, вставьте токен в:
TELEGRAM_BOT_TOKEN
ID — в:
DEFAULT_RECIPIENT_TELEGRAM
Сохраните и перезапустите Netdata. Теперь уведомления будут приходить в Telegram.
Поддерживаются и другие каналы: e-mail, Discord и не только.
Если стандартных метрик мало, можно добавить свои. Netdata умеет читать логи, забирать данные из Prometheus или стороннего скрипта. Достаточно подключить модуль, и новые графики появятся в интерфейсе.
Заключение
Netdata показывает текущее состояние сервера в реальном времени. Она отображает наглядно картину, с которой проще принимать решения и не гадать, что именно тормозит систему.
Поставили, настроили, подключили оповещения, и теперь вы не просто реагируете на сбои, а следите за состоянием инфраструктуры на опережение. В любой момент вы знаете, что происходит, и держите ситуацию под контролем.
Читайте в блоге:
- Как настроить мониторинг сервера: метрики и методы
- Оптимизация производительности MySQL на сервере CentOS
- Как открыть и закрыть порты в Ubuntu 22.04 и защитить систему от угроз