Мониторинг VPS: Установка Netdata и Nginx Proxy Manager через Docker
Хотите превратить ваш VPS в прозрачную систему с глубокой аналитикой? Это руководство поможет вам настроить профессиональный мониторинг сервера с помощью Netdata и защитить его через Nginx Proxy Manager (NPM). Вы получите доступ к детальным графикам в реальном времени, истории метрик и контролю ресурсов Docker-контейнеров через защищенное HTTPS-соединение.
Почему связка Netdata + NPM?
- Netdata: Собирает метрики каждую секунду, обеспечивает глубокий анализ ресурсов хоста и Docker-контейнеров.
- Nginx Proxy Manager: Обеспечивает безопасный доступ к панели мониторинга через SSL-сертификаты (Let’s Encrypt) и дополнительную авторизацию (Access List).
Шаг 1: Установка Netdata через Docker Compose
Docker Compose — оптимальный способ управления жизненным циклом Netdata на сервере.
- Подготовка окружения:
sudo mkdir -p /opt/netdata
cd /opt/netdata- Создание конфигурации (
docker-compose.yml):
sudo nano docker-compose.ymlВставьте следующий код. Режим network_mode: host необходим для сбора полных системных метрик.
version: '3.8'
services:
netdata:
image: netdata/netdata:stable
container_name: netdata
hostname: contabo-server
restart: unless-stopped
pid: host
network_mode: host
cap_add:
- SYS_PTRACE
- SYS_ADMIN
security_opt:
- apparmor:unconfined
volumes:
- netdata-config:/etc/netdata
- netdata-lib:/var/lib/netdata
- netdata-cache:/var/cache/netdata
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
netdata-config:
netdata-lib:
netdata-cache:- Запуск:
docker compose up -dШаг 2: Настройка безопасного доступа через NPM
Прямой доступ по порту 19999 небезопасен. Скроем его за доменным именем.
- DNS-настройки: В панели регистратора (например, Cloudflare) создайте A-запись для вашего поддомена (например,
netdata.example.com), указав IP-адрес вашего VPS. - Настройка Access List: В веб-интерфейсе Nginx Proxy Manager перейдите в Access Lists и создайте новый список с логином и паролем.
- Создание Proxy Host:
- Domain Names:
netdata.example.com - Scheme:
http - Forward IP:
Ваш_публичный_IP - Forward Port:
19999 - Websockets Support: Включено (обязательно для графиков).
- Access List: Выберите созданный ранее список.
- SSL-сертификат: На вкладке SSL выберите Request a new SSL Certificate, включите Force SSL и подтвердите выпуск через Let’s Encrypt.
Шаг 3: Безопасность фаервола (UFW)
Чтобы исключить доступ к мониторингу в обход NPM, ограничьте доступ к порту 19999 на уровне ОС:
sudo ufw allow from 172.16.0.0/12 to any port 19999
sudo ufw reloadРезультат и использование
Перейдите по адресу [https://netdata.example.com](https://netdata.example.com).
- Сначала вы пройдете аутентификацию Nginx Proxy Manager.
- На дашборде Netdata при первом входе выберите «Skip and use the dashboard anonymously» для локальной работы без облака.
Теперь вы можете отслеживать состояние вашего сервера в реальном времени с защищенным доступом и профессиональной аналитикой.