VPSРейтинг
Мониторинг1 марта 2026 · 11 мин чтения

Beszel на VPS: мониторинг сервера за 2 минуты

Prometheus — мощно, но требует часа настройки и 300 МБ RAM. Uptime Kuma следит за доступностью сайтов, но не показывает загрузку CPU. Beszel закрывает нишу между ними: красивый дашборд с графиками CPU, RAM, диска и Docker-контейнеров. Весь стек — 60 МБ RAM, разворачивается одной командой.

1. Что такое Beszel и как он работает

Beszel — это self-hosted система мониторинга серверов с веб-интерфейсом. Она показывает в реальном времени и историческими графиками: загрузку CPU, использование RAM и диска, сетевой трафик, температуру, load average и состояние Docker-контейнеров.

Beszel состоит из двух частей:

Хаб (Hub)

Веб-интерфейс с дашбордом и базой данных. Устанавливается на один VPS. Именно здесь вы смотрите графики и настраиваете алерты. Работает на порту 8090, основан на PocketBase + SQLite.

Агент (Agent)

Лёгкий процесс, который собирает метрики сервера и отправляет их в хаб. Устанавливается на каждый сервер, который хотите мониторить. Потребляет ~16 МБ RAM.

Как хаб и агент общаются?

Если агент на том же сервере — общение через Unix-сокет (локальный файл), сеть не задействована. Если агент на другом сервере — агент устанавливает исходящее WebSocket-соединение к хабу (primary). Дополнительно агент слушает порт 45876 — хаб использует его как резервный канал при обрывах. Порт 45876 на агент-сервере должен быть доступен с хаба.

📊 CPU, RAM, диск, сеть

История в виде графиков за часы, дни, недели. Видно пики нагрузки.

🐳 Docker-контейнеры

CPU и RAM каждого контейнера отдельно. Сразу видно, кто жрёт ресурсы.

🌡️ Температура и диски

Температура CPU и S.M.A.R.T.-данные дисков. Предупреждение до поломки.

🔔 20+ каналов алертов

Telegram, Discord, Slack, Email, Gotify — уведомление когда диск переполнен или сервер лёг.

👥 Несколько пользователей

Каждый пользователь управляет своими серверами. Можно шарить систему между командой.

💾 Автобэкапы

Данные мониторинга можно бэкапить в S3 или локально. Не потеряете историю.

2. Требования к серверу

Beszel работает даже на самых бюджетных VPS. Агент настолько лёгкий, что его ставят на Raspberry Pi и роутеры с OpenWRT.

КомпонентRAMCPUДиск
Хаб (Hub)20–40 МБ< 1% в покое~3 МБ + история
Агент (Agent)16–20 МБ< 0.5%~5 МБ
Итого на сервере~60 МБ< 2%< 100 МБ

Минимальные требования для сервера с хабом:

Ubuntu 20.04+ / Debian 11+512 МБ RAM1 vCPUDocker Engine v20+

Ставьте на уже работающий сервер

Не нужен отдельный VPS под мониторинг. Beszel отлично уживается с Nginx, сайтами и другими Docker-контейнерами. На VPS с 1 ГБ RAM после установки Beszel останется 900+ МБ свободными.

3. Установка хаба и агента через Docker

Проще всего поставить хаб и агент вместе через Docker Compose на одном сервере. Агент при этом общается с хабом через Unix-сокет — никаких сетевых портов.

Шаг 1: установить Docker

Если Docker ещё не установлен:

Официальный скрипт установки Docker
curl -fsSL https://get.docker.com | sh

Шаг 2: создать docker-compose.yml

В этой конфигурации хаб и агент общаются через общий сокет-файл — быстро и без сети:

~/beszel/docker-compose.yml
services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    environment:
      APP_URL: http://localhost:8090
    ports:
      - "127.0.0.1:8090:8090"
    volumes:
      - ./beszel_data:/beszel_data
      - ./beszel_socket:/beszel_socket

  beszel-agent:
    image: henrygd/beszel-agent:latest
    container_name: beszel-agent
    restart: unless-stopped
    network_mode: host
    volumes:
      - ./beszel_agent_data:/var/lib/beszel-agent
      - ./beszel_socket:/beszel_socket
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      LISTEN: /beszel_socket/beszel.sock
      HUB_URL: http://localhost:8090
      TOKEN: ""
      KEY: ""

TOKEN и KEY пока оставьте пустыми

Оба значения генерируются автоматически при добавлении сервера в веб-интерфейсе. После первого входа вы скопируете TOKEN и KEY из UI и вставите их сюда. Подробнее — в шаге «Первый вход».

Шаг 3: запустить

Создать директорию и запустить
mkdir ~/beszel && cd ~/beszel
# Создайте docker-compose.yml с содержимым выше, затем:
docker compose up -d

Проверьте, что хаб запустился:

Проверить статус
docker compose ps

Агент покажет ошибку — это нормально

Контейнер beszel (хаб) должен быть running. Контейнер beszel-agent будет перезапускаться, пока TOKEN и KEY не заполнены — это ожидаемо. После шага 5 («Первый вход») вы получите оба значения из UI и заполните их.

4. Nginx + SSL

Порт 8090 привязан к 127.0.0.1 — снаружи не виден. Настроим Nginx как обратный прокси, чтобы открыть Beszel по красивому HTTPS-адресу.

Шаг 1: создать конфиг Nginx

/etc/nginx/sites-available/beszel
server {
    listen 80;
    server_name monitor.ваш-домен.ru;

    location / {
        proxy_pass         http://127.0.0.1:8090;
        proxy_http_version 1.1;

        # Обязательно для WebSocket
        proxy_set_header   Upgrade    $http_upgrade;
        proxy_set_header   Connection "upgrade";

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;

        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
    }
}
Активировать конфиг
ln -s /etc/nginx/sites-available/beszel /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

Шаг 2: DNS и SSL

Добавьте A-запись у вашего регистратора домена и получите сертификат:

DNS-запись (у регистратора)
monitor.ваш-домен.ru  →  A  →  IP_ВАШЕГО_СЕРВЕРА
Установка certbot и получение сертификата
apt install -y certbot python3-certbot-nginx
certbot --nginx -d monitor.ваш-домен.ru

Certbot сам обновит конфиг Nginx для HTTPS и настроит автопродление сертификата.

5. Первый вход и добавление сервера

Откройте https://monitor.ваш-домен.ru в браузере. Beszel предложит создать первого пользователя — он автоматически становится администратором.

Добавление первого сервера (того же VPS)

  1. 1Нажмите кнопку Add System в правом верхнем углу.
  2. 2Заполните поля: Name — любое название (например, Main VPS), Host/IP/beszel_socket/beszel.sock(путь к Unix-сокету, не IP-адрес), Port — оставьте пустым.
  3. 3Хаб покажет готовый конфиг агента — в нём будут строки с заполненными значениями TOKEN: и KEY:. Скопируйте значение каждого из них.
  4. 4Откройте ~/beszel/docker-compose.yml и вставьте скопированные значения в поля агента TOKEN: "" и KEY: "". Заодно обновите APP_URL в секции хаба: APP_URL: https://monitor.ваш-домен.ru — это нужно для корректных ссылок в уведомлениях.
  5. 5Перезапустите контейнеры: cd ~/beszel && docker compose up -d. Хаб перезапустится — обновите страницу в браузере и войдите заново если потребуется.
  6. 6Через несколько секунд сервер появится в списке с зелёным индикатором. Нажмите на него — откроются графики.

После добавления кликните на карточку сервера — откроется дашборд с графиками CPU, RAM, диска, сети и каждого Docker-контейнера.

6. Добавление второго сервера

Главная фишка Beszel — мониторинг нескольких серверов из одного дашборда. Beszel упрощает этот процесс до минимума: хаб сам генерирует готовую команду с уже вписанными ключами. Вам остаётся скопировать и запустить её на нужном сервере.

Как добавить любой сервер

  1. 1В хабе нажмите Add System.
  2. 2Заполните: Name — название сервера, Host/IP — публичный IP второго сервера, Port45876.
  3. 3Хаб сгенерирует готовую команду установки с уже вписанными KEY и TOKEN. Вы увидите кнопку скопировать и готовый блок кода.
  4. 4Подключитесь к второму серверу по SSH и выполните скопированную команду. Она скачает агент и сразу настроит его с правильными ключами.
  5. 5Через несколько секунд сервер появится в дашборде с зелёным индикатором.

Что делает сгенерированная команда?

Хаб предложит на выбор два варианта: бинарный установщик (рекомендуется — один процесс, автообновление, работает через systemd) или Docker Compose. В обоих случаях KEY и TOKEN уже вписаны в команду. Агент сам инициирует основное соединение к хабу, но также слушает порт 45876 для резервного канала.

Откройте порт 45876 на агент-сервере

Агент слушает порт 45876 — хаб использует его как резервный канал связи. Разрешите входящие подключения на этот порт хотя бы с IP вашего хаба:

sudo ufw allow from <IP_ХАБА> to any port 45876

Без этого основной мониторинг работает, но при обрывах WebSocket-соединения хаб не сможет переподключиться автоматически.

Мониторинг Docker на втором сервере

Агент автоматически находит Docker-сокет на /var/run/docker.sock. Если Docker установлен — контейнеры появятся в дашборде. Если агент установлен как бинарник и контейнеры не отображаются, добавьте его пользователя в группу docker: sudo usermod -aG docker beszel-agent && sudo systemctl restart beszel-agent.

7. Алерты и уведомления в Telegram

Beszel умеет присылать уведомления, когда CPU перегружен, диск заполнен или сервер вообще перестал отвечать. Настроим Telegram — самый удобный канал.

Шаг 1: создать Telegram-бота

  1. 1Найдите в Telegram @BotFather и отправьте /newbot.
  2. 2Дайте боту имя и username (должен заканчиваться на bot). BotFather вернёт токен вида 7891234567:AABBcc...
  3. 3Напишите своему боту /start. Это нужно, чтобы бот мог отправлять вам сообщения.
  4. 4Узнайте свой Chat ID — напишите любое сообщение боту @userinfobot в Telegram. Он мгновенно ответит вашим ID в формате Id: 123456789. Запишите это число.

Шаг 2: добавить уведомление в Beszel

  1. 1В хабе откройте SettingsNotificationsAdd notification.
  2. 2В поле URL введите Telegram-адрес по формату Shoutrrr:
Формат URL для Telegram (замените TOKEN и CHAT_ID)
telegram://TOKEN@telegram?chats=CHAT_ID

# Пример:
telegram://7891234567:AABBccDDeeFF@telegram?chats=123456789
  1. 3Нажмите Test — в Telegram должно прийти тестовое сообщение. Если пришло — нажмите Save.
  2. 4Теперь настройте пороги срабатывания. В списке серверов нажмите иконку колокольчика рядом с нужным сервером.
  3. 5Выберите метрику и порог. Например: CPU — 90%, Memory — 90%, Disk — 85%, Status — сервер недоступен.
  4. 6Сохраните. Теперь при превышении порогов придёт уведомление в Telegram.

Пример уведомления в Telegram

Beszel Alert — Main VPS

Disk: 87.3% (triggered at 85%)

2026-03-08 14:32 UTC

8. Beszel vs Prometheus vs Uptime Kuma

Три разных инструмента для разных задач. Вот когда что выбрать:

КритерийBeszelPrometheus+GrafanaUptime Kuma
Потребление RAM~60 МБ300–500 МБ50–100 МБ
Время настройки2 минуты30–60 минут5 минут
Метрики сервераCPU/RAM/диск/сетьСотни метрик + кастомныеНет
Docker-контейнерыДаЧерез cAdvisorТолько статус
Мониторинг сайтовНетЧерез Blackbox ExporterДа (специализация)
Кастомные метрикиНетДа (PromQL)Нет
Несколько серверовДа, из коробкиДа, сложнееНет
Страница статусаНетНетДа

Выберите Beszel, если:

У вас 1–10 серверов, вы хотите видеть загрузку CPU/RAM и Docker-контейнеры, и не хотите тратить час на настройку. Идеально для личных проектов и малого бизнеса.

Выберите Prometheus+Grafana, если:

Нужны метрики из приложений, сложные алерты, PromQL-запросы или мониторинг 20+ серверов. Beszel и Prometheus прекрасно работают вместе — каждый для своей задачи.

Выберите Uptime Kuma, если:

Главная задача — следить за доступностью сайтов и сервисов, и нужна публичная страница статуса для клиентов. Beszel + Uptime Kuma = полный набор мониторинга.

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

Частые проблемы

Проблема: Сервер добавлен, но статус «Pending» и метрики не появляются

Решение: Агент не подключился к хабу. Проверьте логи: docker compose logs beszel-agent — там будет ошибка. Чаще всего причина — KEY или TOKEN скопированы неточно. Убедитесь, что оба значения в docker-compose.yml совпадают с теми, что показал хаб. После исправления: docker compose up -d beszel-agent.

Проблема: Beszel открывается на порту 8090 напрямую (без Nginx)

Решение: В docker-compose.yml порт должен быть "127.0.0.1:8090:8090", а не "8090:8090". Первый вариант закрывает порт снаружи. Перезапустите: docker compose up -d.

Проблема: Docker-контейнеры не появляются в дашборде агента

Решение: Проверьте, что /var/run/docker.sock примонтирован в контейнер агента. Для бинарного агента: добавьте пользователя beszel-agent в группу docker: sudo usermod -aG docker beszel-agent, затем sudo systemctl restart beszel-agent.

Нужен VPS для Beszel? Смотрите лучшие варианты

Рейтинг VPS →

Смотрите также