cp.lv — VPS, выделенные и облачные серверы

cp.lv (LANGMARKET LLP) — хостинг-провайдер: VPS, выделенные и облачные серверы на NVMe с выбором ОС, полным root-доступом и поддержкой 24/7. Тест-период до оплаты: выделенные серверы — 5 дней, VPS и облако — 5 часов.

Contact Info
LANGMARKET LLP
Rīga, Latvija

+371 00 000 000

Follow Us

Личный кабинет

Язык

Мониторинг сервера в реальном времени с Netdata

Мониторинг сервера в реальном времени с Netdata

Запустить на сервере одной командой (сначала проверьте содержимое скрипта ниже):

curl -sSL https://cp.lv/scripts/monitoring-servera-netdata.sh | sudo bash

…или через wget:

wget -qO- https://cp.lv/scripts/monitoring-servera-netdata.sh | sudo bash

Содержимое скрипта monitoring-servera-netdata.sh:

#!/usr/bin/env bash
# Установка Netdata + доступ через nginx с логином и паролем
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive

# 1. Установка Netdata (официальный kickstart, стабильный канал)
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sudo sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry --non-interactive

# 2. Привязать агент только к localhost
sudo tee /etc/netdata/netdata.conf > /dev/null << 'EOF'
[web]
    bind to = 127.0.0.1
EOF
sudo systemctl restart netdata

# 3. Reverse proxy nginx с basic-авторизацией
sudo apt-get update -y
sudo apt-get install -y nginx apache2-utils openssl
PASS="$(openssl rand -base64 12)"
sudo htpasswd -bc /etc/nginx/.netdata-htpasswd admin "$PASS"

# кавычки 'EOF' — переменные nginx ($host) не раскрываются
sudo tee /etc/nginx/sites-available/netdata > /dev/null << 'EOF'
server {
    listen 80;
    server_name monitor.example.com;
    auth_basic "Netdata";
    auth_basic_user_file /etc/nginx/.netdata-htpasswd;
    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
    }
}
EOF

sudo ln -sf /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/netdata
sudo nginx -t && sudo systemctl reload nginx
echo "Готово. Дашборд открыт по домену. Логин: admin, пароль: $PASS"

Netdata разворачивается одной командой и сразу даёт веб-дашборд с метриками сервера в реальном времени: загрузка CPU, память, диск, сеть, процессы — с секундным разрешением. Ниже — установка, защита доступа и настройка оповещений.

Почему Netdata

В отличие от тяжёлых связок вроде Prometheus+Grafana, Netdata ставится за минуту, не требует настройки и показывает сотни метрик из коробки. Идеален, когда нужно быстро увидеть, что происходит с сервером прямо сейчас.

Требования: любой VPS с 512 МБ RAM и выше. Агент потребляет мало ресурсов.

Шаг 1. Установка

Официальный установочный скрипт (kickstart) сам определит дистрибутив:

wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry

Флаг --disable-telemetry отключает отправку анонимной статистики.

После установки сервис запустится автоматически:

systemctl status netdata

Шаг 2. Доступ к дашборду

Netdata слушает порт 19999. Откройте в браузере:

http://<IP_вашего_VPS>:19999

Вы увидите живой дашборд. По умолчанию порт доступен всем — это небезопасно, ограничим доступ.

Шаг 3. Закрыть прямой доступ

Привяжите Netdata только к localhost. В /etc/netdata/netdata.conf:

[web]
    bind to = 127.0.0.1

Перезапустите:

systemctl restart netdata

Теперь дашборд доступен только с самого сервера — снаружи закроем через reverse proxy с паролем.

Шаг 4. Reverse proxy с авторизацией (nginx)

Установите утилиты и создайте пароль:

apt install -y nginx apache2-utils
htpasswd -c /etc/nginx/.netdata-htpasswd admin

Откройте конфиг в редакторе (sudo nano /etc/nginx/sites-available/netdata) и вставьте содержимое:

server {
    listen 80;
    server_name monitor.example.com;

    auth_basic "Netdata";
    auth_basic_user_file /etc/nginx/.netdata-htpasswd;

    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
    }
}

Или создайте конфиг целиком одной командой (кавычки 'EOF' важны — переменная nginx $host останется как есть):

sudo tee /etc/nginx/sites-available/netdata > /dev/null << 'EOF'
server {
    listen 80;
    server_name monitor.example.com;
    auth_basic "Netdata";
    auth_basic_user_file /etc/nginx/.netdata-htpasswd;
    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
    }
}
EOF

Активируйте:

ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

Теперь дашборд открывается по домену с логином и паролем. Добавьте HTTPS через certbot для шифрования.

Шаг 5. Настройка оповещений

Netdata умеет слать алерты в Telegram, на почту, в Slack. Пример для Telegram — отредактируйте /etc/netdata/health_alarm_notify.conf:

SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="<токен_бота>"
DEFAULT_RECIPIENT_TELEGRAM="<chat_id>"

Проверьте отправку:

/usr/libexec/netdata/plugins.d/alarm-notify.sh test

Полезные метрики для контроля

Метрика На что смотреть
CPU iowait Высокий — узкое место диска
RAM available Мало — риск OOM
Disk space Заполнение раздела
Network errors Проблемы с сетью/NIC
Load average Перегрузка процессора

Настройка порогов

Правила алертов лежат в /etc/netdata/health.d/. Например, порог заполнения диска:

nano /etc/netdata/health.d/disk_space.conf

После изменений перечитайте конфигурацию:

netdatacli reload-health

Шифрование доступа (HTTPS)

Basic-авторизация без HTTPS передаёт пароль в открытом виде. Добавьте бесплатный сертификат Let’s Encrypt через certbot:

apt install -y certbot python3-certbot-nginx
certbot --nginx -d monitor.example.com

certbot сам пропишет редирект на HTTPS и настроит автопродление сертификата. Проверьте таймер обновления:

systemctl status certbot.timer

Ограничение ресурсов агента

На слабом VPS уменьшите частоту сбора, чтобы снизить нагрузку. В /etc/netdata/netdata.conf:

[db]
    update every = 2

Значение 2 собирает метрики раз в две секунды вместо одной — точность чуть ниже, нагрузка заметно меньше. Отключить ненужные плагины (например, сбор с несуществующих сервисов) можно в разделе [plugins].

Полезные разделы дашборда

  • System Overview — сводка по CPU, RAM, диску, сети.
  • Applications — потребление ресурсов по группам процессов.
  • Disks — задержки и загрузка каждого блочного устройства.
  • Networking Stack — соединения, retransmits, ошибки TCP.

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

Обновление и удаление

Обновить Netdata до свежей стабильной версии:

netdata-updater.sh

Полностью удалить агент, если он больше не нужен:

/usr/libexec/netdata/netdata-uninstaller.sh --yes --force

Частые вопросы

Сколько ресурсов ест Netdata? Агент лёгкий, но при секундном разрешении на слабом VPS заметна нагрузка. Можно увеличить интервал сбора в netdata.conf.

Хранятся ли исторические данные? Да, локально в базе (dbengine). Глубину хранения задают в разделе [db] конфига.

Можно ли мониторить несколько серверов? Да, через Netdata Cloud или родительский узел (streaming), собирающий метрики с дочерних.

Безопасно ли держать порт 19999 открытым? Нет. Привяжите к localhost и проксируйте через nginx с паролем и HTTPS.

Заменяет ли Netdata Prometheus? Для быстрого real-time мониторинга — да. Для долгого хранения и сложных запросов связка Prometheus+Grafana гибче.


Мониторинг — обязательная часть эксплуатации. Разместите проект на аренде VPS или VPS для VPN и безопасности. Настройку мониторинга и алертов возьмёт на себя Администрирование серверов.

Лаура Зариня

Лаура Зариня

Маркетолог. Рассказывает о сервисах cp.lv и следит, чтобы условия и цены были понятны каждому клиенту.