Перейти к содержимому

Руководство по установке Beszel

Beszel это лёгкий мониторинг серверов: агенты на нодах собирают метрики системы и Docker, а хаб рисует графики, хранит историю и рассылает уведомления. Веб-интерфейс готов из коробки, есть многопользовательский режим и API.

Hub

Веб-панель и хранение истории. Ставится на сервер панели или любой свой сервер.

Агенты

По одному на ноду. Сами подключаются к хабу на порт 45876 по выданному ключу.

Доступ

Порт 45876 в файрволе открывается только для IP хаба, панель закрывает https.

Проект, на котором построено руководство, и автор самой страницы.

Beszel

Мониторинг из руководства: агенты на серверах собирают метрики, хаб рисует графики и рассылает уведомления.

Хабвеб-интерфейс и историяАгентметрики системы и Docker

Руководство

Гайд написан и поддерживается автором скрипта remnawave-reverse-proxy.

Скриптremnawave-reverse-proxyTelegramt.me/remnawave_reverse
браузер · httpsBeszel Hub:8090 · веб-панель и историяTelegramуведомленияагенты сами подключаются к хабу:45876 · ключ с хабаагент · de-fra-01метрики системы и Dockerufw 45876 ← IP хабаагент · nl-ams-02метрики системы и Dockerufw 45876 ← IP хаба

Браузер открывает веб-панель хаба по https. Агенты на нодах сами подключаются к хабу на порт 45876: хаб выдаёт им ключ при добавлении, и коннект инициирует именно агент, поэтому на ноде не нужно открывать ничего лишнего, кроме одного порта для IP хаба. Уведомления хаб отправляет вебхуком, например в Telegram.

  1. Создаём директорию для Beszel и открываем docker-compose.yml:

    root@server: ~
    mkdir /opt/beszel && cd /opt/beszel && nano docker-compose.yml
  2. Добавляем сервис хаба:

    docker-compose.yml
    services:
    beszel:
    image: henrygd/beszel
    container_name: beszel
    restart: always
    ports:
    - '127.0.0.1:8090:8090'
    volumes:
    - ./beszel_data:/beszel_data
    logging:
    driver: 'json-file'
    options:
    max-size: '30m'
    max-file: '5'
  3. Запускаем хаб:

    root@server: ~
    cd /opt/beszel && docker compose up -d && docker compose logs -f
  4. Добавляем Beszel в веб-сервер, чтобы панель открывалась по своему домену:

    root@server: ~
    cd /opt/remnawave && nano nginx.conf
    nginx.conf
    upstream beszel {
    server 127.0.0.1:8090;
    }
    server {
    server_name beszel.yourdomain.com;
    listen 443 ssl;
    http2 on;
    ssl_certificate "/etc/nginx/ssl/yourdomain.com/fullchain.pem";
    ssl_certificate_key "/etc/nginx/ssl/yourdomain.com/privkey.pem";
    ssl_trusted_certificate "/etc/nginx/ssl/yourdomain.com/fullchain.pem";
    location / {
    proxy_http_version 1.1;
    proxy_pass http://beszel;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    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_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_send_timeout 60s;
    proxy_read_timeout 60s;
    }
    }

    Перезапускаем nginx:

    root@server: ~
    cd /opt/remnawave && docker compose down remnawave-nginx && docker compose up -d remnawave-nginx && docker compose logs -f remnawave-nginx

Не забудьте создать DNS-запись beszel.example.com, указывающую на сервер хаба.

  1. Откройте браузер и перейдите по вашему адресу:

    root@server: ~
    https://beszel.example.com
  2. Открывается страница создания администратора:

    Admin creation

  3. Введите адрес электронной почты и сложный пароль.

  4. Попадаем в панель управления Beszel:

    Add System

  1. Нажимаем Add System.

  2. Выбираем способ подключения Binary.

  3. Заполняем имя агента и указываем IP-адрес сервера ноды Remnawave. Порт можно оставить стандартный (45876).

  4. Нажимаем Copy Linux command и получаем команду установки агента.

  5. Переходим на сервер ноды и выполняем скопированную команду:

    root@server: ~
    curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh -p 45876 -k "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPW2NUPqCB4pq8oOgEFB9Luqe6oWjEy4bkQV3qcXo3qt" -t "8c9e7262-ced0-4162-bc49-4c985162c22f" -url "https://beszel.example.com"
  6. Агент установлен:

    Install Agent

Агент сам инициирует подключение к хабу, но слушающий порт 45876 на ноде должен быть доступен хабу, и только ему.

  1. Откройте порт 45876 (TCP) только для IP-адреса сервера хаба (замените 100.88.38.121 на актуальный адрес, например адрес в сети NetBird):

    root@server: ~
    ufw allow from 100.88.38.121 to any port 45876 proto tcp
  2. Перезагрузите файрвол:

    root@server: ~
    ufw reload
  3. Подождите пару минут, пока агент подключится к хабу:

    Host System

  1. Откройте https://beszel.example.com и войдите с логином и паролем администратора.

  2. Перейдите в раздел Settings:

    Beszel Settings

  3. Нажмите Notification:

    Beszel Notifications

  4. В поле Webhook / Push notifications вставьте ссылку вида:

    Webhook / Push notifications
    telegram://8266662524:AAHruriu0cLDEOlMgfgyrtbn7mJb6Cp4aY@telegram?chats=1465650656

    8266662524:AAHruriu0cLDEOlMgfgyrtbn7mJb6Cp4aY это токен вашего бота.

    1465650656 это ID чата, куда приходят уведомления.

  5. Нажмите Save Settings.