Сервер начал тормозить, а понять, что именно его грузит — невозможно? В логах всё чисто, htop ничего подозрительного не показывает, а сайт работает через раз? В таких ситуациях здорово выручает Netdata — простая, но мощная система мониторинга, которая показывает, что происходит прямо сейчас. В этом гайде расскажем, как установить Netdata, закрыть интерфейс от посторонних и настроить оповещения, чтобы всегда быть в курсе состояния сервера.
Netdata — это инструмент, который в реальном времени показывает загрузку процессора, использование памяти, работу дисков, сети и десятков служб. В отличие от громоздких систем мониторинга, он не требует базы данных и сложной настройки. Установили — и сразу видно, что происходит.
Netdata обновляет данные каждую секунду. Никаких усреднённых графиков — вы видите, кто прямо сейчас съедает ресурсы. Это особенно важно на VPS, где ресурсы ограничены и может крутиться сразу несколько сервисов.
По умолчанию Netdata отображает:
— состояние CPU и RAM;
— активность дисков и сети;
— поведение Docker-контейнеров, MySQL, Redis и многое другое.
Перед установкой Netdata стоит убедиться, что система обновлена, иначе могут возникнуть ошибки.
Для Ubuntu/Debian:
sudo apt update && sudo apt upgrade
Для CentOS, AlmaLinux, Rocky Linux:
sudo dnf update
Также понадобится curl — без него установочный скрипт не сработает.
Установка curl:
sudo apt install curl # для Debian/Ubuntu
sudo dnf install curl # для CentOS
Если сервер только что развернули, сразу настройте базовую безопасность: создайте пользователя с правами sudo и запретите вход под root.
Netdata ставится через один скрипт, который сам определяет ОС, скачивает нужные зависимости и запускает сервис.
Просто выполните:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Скрипт спросит, какой режим выбрать — оставьте вариант по умолчанию (с полной функциональностью). Через пару минут Netdata будет готова к работе.
Теперь откройте браузер и зайдите на:
http://<ваш_IP>:19999
Вы увидите интерактивные графики — всё обновляется в реальном времени. Но пока что интерфейс открыт для всех, кто знает IP. Давайте его защитим.
Проще всего ограничить доступ к панели через проксирование — например, через Nginx с паролем.
1. Открываем конфиг Netdаta:
sudo nano /etc/netdata/netdata.conf
2. Ищем строку bind to, заменяем на:
bind to = 127.0.0.1
Это позволит открывать интерфейс только с самого сервера.
3. Перезапускаем Netdаta:
sudo systemctl restart netdata
4. Ставим Nginx и утилиту для создания паролей:
sudo apt install nginx apache2-utils
5. Создаём файл паролей:
sudo htpasswd -c /etc/nginx/.htpasswd admin
6. Настраиваем новый сайт:
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;
}
}
7. Включаем сайт и перезапускаем Nginx:
sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo systemctl reload nginx
Теперь интерфейс доступен только по домену и только с авторизацией.
Интерфейс Netdata интуитивный и обновляется каждую секунду. Сверху — загрузка CPU, использование памяти, процессы. Ниже — активность дисков и сети. Видно, сколько осталось места, как часто происходят чтения/записи и возникают ли задержки.
Netdata показывает:
— входящий и исходящий трафик;
— ошибки сети;
— обращения к внешним доменам;
— активность сервисов вроде MySQL, Redis, Docker и других.
Можно перематывать время на графиках и смотреть, что происходило в пиковые моменты — кто грузил процессор, сколько шло трафика, насколько был занят диск.
Чтобы не сидеть с открытым интерфейсом и ждать проблем, можно настроить оповещения. Например, если нагрузка на CPU держится выше нормы больше минуты — придёт сообщение.
Netdata поддерживает разные каналы: Telegram, почту, Discord и другие.
Для Telegram:
1. Создайте бота через @BotFather — сохраните токен.
2. Найдите ID чата (личного или группы) через @userinfobot.
3. Откройте конфиг:
sudo nano /etc/netdata/health_alarm_notify.conf
4. Найдите секцию telegram, раскомментируйте строки и вставьте данные:
TELEGRAM_BOT_TOKEN="ваш_токен"
DEFAULT_RECIPIENT_TELEGRAM="ваш_ID"
5. Перезапустите Netdаta:
sudo systemctl restart netdata
Теперь, если что-то пойдёт не так, вы узнаете об этом сразу.
Если базовых метрик мало — можно добавить свои. Netdata умеет читать логи, работать с Prometheus и подключать сторонние скрипты. Всё это быстро встраивается, и новые графики появляются автоматически.
Netdata — отличный инструмент для тех, кто хочет видеть, что происходит на сервере прямо сейчас. Она не требует сложной настройки, показывает всё наглядно и умеет присылать уведомления. Установили, настроили доступ, подключили оповещения — и теперь вы всегда знаете, что творится с инфраструктурой. Без догадок, вслепую и паники.