Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Обновлено 23 сентября 2026 г.
Наблюдаемость и аудит

Beszel

Мониторинг серверов и Docker на своем сервере: ЦП, память, диск и I/O, сеть, температура, GPU, SMART-здоровье дисков и статистика контейнеров с алертами. В версии 0.20 добавились сетевые мониторы - агент сам пробит цели по ICMP, TCP, HTTP и DNS. Ниже - установка, замеры с живого стенда и грабли обновления.

Сентябрь 2026~9 минут чтенияFatmetal Team
Мониторинг Лицензия: MIT Статус: запущен у нас, v0.20.0

Вердикт

Подходит
  • нужен мониторинг docker и серверов без веса связки Prometheus с Grafana
  • парк из нескольких машин, и платить за каждый хост подписку не хочется
  • нужны алерты о перегрузе, нехватке диска, упавшем контейнере или systemd-юните
  • домашний сервер или NAS: ZFS, SMART, температуры, вентиляторы, GPU
Не подходит
  • нужен APM и трейсинг запросов - это OpenTelemetry или Jaeger
  • нужны свои бизнес-метрики и дашборды по PromQL - Prometheus с Grafana
  • нужен централизованный сбор логов - это Loki или ELK
Мин. тариф: CPU2-RAM4-DISK50 Рекомендуем: CPU2-RAM4-DISK50 Сложность: low Весь стек в простое: 29 MiB Главный риск: с 0.19 агент проверяет сертификат хаба Прод-готовность: да, реверс-прокси с TLS в стеке
Что это

Что это и какую задачу решает

Beszel собирает с ваших машин метрики и показывает их на легком дашборде: ЦП, память, диски и I/O, сеть, среднюю загрузку, температуры, вентиляторы, GPU и заряд батарей. Отдельно снимает статистику Docker и Podman.

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

Архитектура из двух частей. Hub - веб-интерфейс и база на PocketBase. Agent - сборщик на каждой наблюдаемой машине. Один хаб собирает весь парк; агент на новой машине ничего не стоит.

GoPocketBaseSQLiteWebSocketDockerCaddy
Дашборд Beszel 0.20: список систем с метриками ЦП, памяти, диска и сети
Список систем на нашем стенде: ЦП, память, диск, GPU, средняя загрузка, сеть, температура, службы и время работы. Beszel 0.20.0, тариф CPU2-RAM4-DISK50.
Сравнение

Чем отличается от тяжелых аналогов

Сравнение по тому, что реально влияет на выбор.

ПараметрBeszelPrometheus + Grafana / Zabbix
Вес в простоехаб и агент вместе 17.2 MiBсотни MiB на стек экспортеров и дашбордов
Установкадва контейнера на GoPrometheus, экспортеры, Grafana, алертменеджер
Мониторинг dockerиз коробки, без экспортерачерез cAdvisor или node-exporter
Порог входанизкий, без языка запросовнужен PromQL и конфиги
Свои бизнес-метрикинет, только хост и контейнерылюбые
Где данныена вашем серверена вашем сервере

С Datadog и New Relic разница считается деньгами. Datadog берет 15 долларов за хост в месяц при годовой оплате, Netdata Cloud - от 4,5 долларов за ноду; бесплатны у обоих первые пять машин.

На парке из десяти серверов это 150 долларов в месяц против одного маленького VPS. Плата за экономию - глубина: логов, трейсов и длинной истории у Beszel нет.

Новое в 0.20

Сетевые мониторы: проверки с каждой машины

Главное изменение с прошлой версии - и оно меняет позиционирование продукта.

Раньше Beszel отвечал только на вопрос «что с ресурсами». В 0.20 агент умеет пробить цели сам: ICMP, TCP, HTTP или DNS, интервал от секунды до часа, меряются время отклика и потери.

Ключевая деталь - пробы идут с каждой наблюдаемой машины, а не из одной точки. Это ответ на вопрос «как сеть выглядит глазами вот этого сервера»: отвечает ли его шлюз, работает ли его DNS, видит ли он внутренний сервис.

Настраивается целиком в интерфейсе хаба, переменных окружения у агента для этого нет. Выбрали несколько систем - получили по монитору на каждую.

Сетевые мониторы Beszel 0.20: ICMP, TCP, HTTP и DNS с временем отклика и потерями
Сетевые мониторы на стенде: TCP 325 мкс, ICMP 22,7 мс, HTTP 69,7 мс, DNS 11,4 мс. Красная строка - реальные потери до зарубежного хоста, подробнее в разделе про грабли.
i

Важно про ICMP в контейнере. В образе агента нет даже ping, работает только сырой сокет. Добавьте агенту cap_add: NET_RAW, иначе ICMP-пробы не поедут. Мониторам TCP, HTTP и DNS ничего не нужно.

Под капотом

Тех-стек и архитектура

Хаб - один бинарник на Go поверх PocketBase и SQLite. Отдельную СУБД поднимать не нужно, все состояние лежит в каталоге beszel_data: системы, метрики, пользователи, алерты.

Агент подключается к хабу по WebSocket и аутентифицируется парой TOKEN плюс публичный ключ хаба. Пару выдает диалог Add System; с версии 0.12 есть и универсальный токен в настройках.

Наш стенд - три контейнера: henrygd/beszel:0.20.0 (хаб, слушает только localhost), henrygd/beszel-agent:0.20.0 и caddy:2 перед ними с автоматическим Let's Encrypt. Наружу торчат только 80 и 443.

Страница системы Beszel: графики ЦП и памяти отдельно по хосту и по контейнерам Docker
Страница системы: ОС, модель процессора, объем памяти и графики за час - отдельно по хосту и отдельно по контейнерам Docker.
Конфигурация

Минимальная конфигурация

Реальные требования против официальных.

Официальный минимумвендор требований не публикует
Реально в простое: хаб + агент17.2 MiB
С Caddy рядом, три контейнера29 MiB
Рекомендуем тарифCPU2-RAM4-DISK50
Что расходуется первымдиск под историю метрик, не память
i

Что упрется первым. Весь стек занимает 0,7 процента памяти тарифа CPU2-RAM4-DISK50, так что ограничителем станет не память, а диск: база растет вместе с числом систем и сетевых мониторов. У нас за час с пятью мониторами она набрала 1,3 МБ.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий хаб на своем домене, валидный TLS и файл с доступами.

Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес

В маркетплейс →
Развертывание

Установка Beszel в Docker

Cloud Server, Ubuntu 24.04, Docker, хаб за Caddy с автоматическим TLS.

  1. Создать сервер и поставить Docker

    Тариф CPU2-RAM4-DISK50, Ubuntu 24.04. Docker ставится из официального репозитория, дальше все по SSH.

  2. Подготовить docker-compose

    Хаб слушает только localhost, наружу его выводит Caddy. Агент на сети хоста, сокет Docker монтируется только на чтение.

    mkdir -p /opt/beszel/beszel_data /opt/beszel/beszel_socket && cd /opt/beszel
    cat > docker-compose.yml <<'YML'
    name: beszel
    services:
      beszel:
        image: henrygd/beszel:0.20.0
        restart: unless-stopped
        environment:
          APP_URL: https://ВАШ-ДОМЕН
        volumes:
          - ./beszel_data:/beszel_data
          - ./beszel_socket:/beszel_socket
        ports: ["127.0.0.1:8090:8090"]
      beszel-agent:
        image: henrygd/beszel-agent:0.20.0
        restart: unless-stopped
        network_mode: host
        cap_add: [NET_RAW]
        volumes:
          - ./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 скопируйте из диалога Add System
    YML
  3. Поднять хаб и завести администратора

    docker compose up -d beszel
    docker exec beszel /beszel superuser upsert admin@example.com 'ваш-пароль'

    Первый вход в интерфейс - это создание админа, и открыт он всем, кто знает адрес. Команда выше заводит его сразу, не дожидаясь, пока кто-то откроет URL раньше вас.

  4. Подключить агента

    В интерфейсе нажмите Add System - хаб отдаст TOKEN и публичный ключ для этой системы. Подставьте их в beszel-agent и поднимите его. Система появится в списке, метрики пойдут за секунду.

Время от чистой машины до рабочего интерфейса по HTTPS - около шести минут, и сам продукт занимает в них секунды: хаб отвечает через 6 секунд после старта, агент цепляется за 1 секунду, Caddy выпускает сертификат за 13. Остальное - apt и скачивание образов.

Мониторинг контейнеров в Beszel: ЦП, память, сеть, здоровье и образы
Мониторинг контейнеров: ЦП, память, сеть, здоровье, порты и образ по каждому контейнеру парка.
Замеры

Что измерили после запуска

Цифры с живого стенда: docker stats, размеры образов, отклик, TLS.

Память: хаб10.56 MiB
Память: агент6.65 MiB
Память: хаб + агент17.21 MiB
Память: Caddy11.78 MiB
Память: три контейнера28.99 MiB
Образы: хаб / агент / Caddy46.7 / 14.9 / 88.8 МБ
Отклик снаружи через Caddy200 за 143 мс
TLS (Let's Encrypt)verify=0, код 200
i

Агент потяжелел. В версии 0.18.7 мы мерили 2,67 MiB, сейчас 6,65 - в два с половиной раза больше. Это плата за новые сборщики: ZFS, systemd-юниты, SMART и собственные сетевые пробы. Хаб остался прежним.

Проверено на Beszel 0.20.0, сентябрь 2026. На новых версиях результаты могут отличаться.

Подводные камни

Где может сломаться

Грабли, на которые мы наступили сами.

!

С версии 0.19 агент проверяет сертификат хаба. Если хаб стоит за самоподписанным сертификатом или под внутренним центром сертификации, агент откажется подключаться, пока не указан CA_CERT_FILE. С обычным Let's Encrypt, как в нашем стеке, проблемы нет.

!

Без docker.sock не видно контейнеров. Агенту нужен /var/run/docker.sock в режиме только на чтение. Без него метрики хоста соберутся, а статистика контейнеров - нет.

!

Первый вход открыт всем. Кто первым откроет адрес хаба, тот и заведет администратора. Заводите его командой сразу после установки, а не когда дойдут руки.

tls: failed to verify certificate: x509: certificate signed by unknown authority

Причина. Так хаб отвечает на попытку отправить почту через релей с самоподписанным сертификатом. Настройки «не проверять сертификат» у Beszel нет вовсе - PocketBase, на котором он построен, такого переключателя не имеет.

Решение. Подложить сертификат вашего центра в контейнер и указать на него переменной SSL_CERT_FILE. Собирать бандл надо на хосте: образ хаба собран из scratch, шелла внутри нет. Системный набор сертификатов берите целиком и дописывайте свой в конец, иначе сломается проверка остального внешнего TLS.

Еще одно наблюдение со стенда. HTTP-монитор считает пробу потерянной, если ответ не пришел за 10 секунд. С российского сервера до зарубежного сайта это срабатывает регулярно - на скриншоте выше именно такая строка. Продукт исправен - он показывает медленный канал таким, какой он есть.

Безопасность

Безопасность и обновления

Обновление - подтянуть образы и пересоздать контейнеры. Хаб и агент держите на одной версии. И читайте примечания к релизу: проект до единицы, ломающие изменения приходят в минорных версиях - история с проверкой сертификатов в 0.19 ровно про это.

docker compose pull && docker compose up -d

Бэкап - это каталог beszel_data с базой PocketBase. Есть и автоматический бэкап на диск или в S3-совместимое хранилище прямо из настроек:

docker compose stop beszel
tar czf beszel-backup.tgz /opt/beszel/beszel_data
docker compose start beszel

Что закрыть перед продом: хаб только за HTTPS и не наружу напрямую, администратор заведен сразу и с сильным паролем, сокет Docker смонтирован на чтение, настроен хотя бы один канал алертов и регулярный бэкап тома. По желанию - вход через OAuth или OIDC с отключенным паролем и второй фактор по одноразовому коду.

Рядом

Связь с другими стеками

Beszel отвечает на вопрос «что происходит с моими машинами». Полную наблюдаемость он не закрывает - рядом обычно ставят:

  • Uptime Kuma - проверки снаружи, с точки зрения постороннего наблюдателя: жив ли сервис для клиентов и что с сертификатом. Сетевые мониторы Beszel отвечают на другой вопрос - как сеть видна изнутри, с самой машины.
  • ntfy - свой сервер пуш-уведомлений, удобный приемник алертов Beszel на телефон.
  • Wazuh - аудит безопасности и события, когда нужен не только мониторинг ресурсов, но и мониторинг угроз.
  • Caddy - реверс-прокси с автоматическим TLS, уже используется в этом стеке.
Ограничения

Когда это НЕ ваш выбор

Нужен APM и трейсинг

Beszel показывает метрики хоста и контейнеров, а не спаны запросов внутри приложения. Разобрать медленный запрос по трейсам он не поможет - это задача OpenTelemetry или Jaeger.

Нужны свои метрики и дашборды

Произвольные бизнес-метрики, конструктор дашбордов и алерты на языке запросов - территория Prometheus с Grafana. Beszel про железо и контейнеры, а не про аналитику.

Нужны логи и длинная история

Логи Beszel не собирает и не ищет - это Loki или ELK. Хранение метрик тоже не рассчитано на годы: продукт про «что сейчас и что было недавно».

FAQ

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

Чем Beszel отличается от Uptime Kuma?

Uptime Kuma проверяет сервисы снаружи, из одной точки. Beszel меряет ресурсы машины, а его сетевые мониторы пробят цели с каждой машины парка. Вопросы разные, поэтому их часто ставят вместе.

Обязателен ли агент на той же машине, что и хаб?

Нет. Хаб ставится на один сервер, агенты - на любые машины парка. Каждый агент подключается по своим TOKEN и ключу.

Почему агент не подключается после обновления?

С версии 0.19 агент проверяет HTTPS-сертификат хаба. С самоподписанным сертификатом нужен CA_CERT_FILE, иначе соединение отклоняется молча.

Нужен ли docker.sock?

Для статистики контейнеров - да, монтируйте его агенту в режиме только на чтение. Метрики хоста собираются и без него.

Хватит ли тарифа CPU2-RAM4-DISK50?

С запасом: весь стек держит 29 MiB. Тариф берем под рост истории метрик и подключение новых систем.

Есть ли платные функции?

Нет. Лицензия MIT, весь функционал бесплатен, облака вендора не существует. В документации это заявлено прямо.

Как делать бэкап?

Копировать каталог beszel_data с базой PocketBase или включить автоматический бэкап в S3-совместимое хранилище.

Итог

Beszel - самый легкий мониторинг серверов и Docker из тех, что мы разбирали: хаб и агент вместе держат 17,2 MiB, весь стек с Caddy - 29 MiB, установка занимает минуты. Он не строит стек из четырех компонентов и не выставляет счет за каждый хост. В версии 0.20 к метрикам добавились сетевые мониторы, которые пробят цели с каждой машины парка, а не из одной точки, - и это заметно расширяет то, ради чего его ставят. Взамен нужно принять честные ограничения: ни логов, ни трейсов, ни своих метрик здесь нет.

Рекомендуемая конфигурация для установки:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe

Не хотите устанавливать вручную?

Запустите Beszel на этой конфигурации автоматически - от 450 ₽/мес.

Запустить Beszel →
Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.

Спросить инженера в TelegramМы на связи