Beszel - self-hosted мониторинг ресурсов: он собирает с ваших серверов метрики и показывает их на легком дашборде. Мониторит CPU, RAM, диск и I/O, сеть, load average, температуру, GPU и батарею, отдельно снимает статистику docker и podman-контейнеров и следит за SMART-здоровьем дисков. Это взгляд изнутри на то, что происходит с железом и контейнерами, без веса связки Prometheus с Grafana.
Архитектура из двух частей: hub (веб-интерфейс и хранилище на PocketBase) и agent, который ставится на каждую машину и шлет метрики в hub. Один hub собирает весь парк серверов. Когда метрика выходит за порог - перегрузка CPU, кончается диск, упал контейнер - Beszel шлет настраиваемый алерт. Есть OAuth/OIDC, мультиюзер и авто-бэкап базы на диск или в S3-совместимое хранилище.
Карта разворачивает центральный hub: контейнер henrygd/beszel:0.18.7 с базой PocketBase, а Caddy выпускает Let's Encrypt и открывает доступ по HTTPS. Стек предельно легкий - hub и agent вместе держат около 13.6 МиБ RAM. Агентов на свои машины парка вы ставите сами по паре TOKEN и KEY из диалога Add System.
Что внутри
- Beszel hub - веб-интерфейс и хранилище (Go, PocketBase), слушает
127.0.0.1:8090, данные в томе/opt/beszel/beszel_data. - Beszel agent - сборщик метрик хоста и docker (
network host, docker.sock смонтирован ro), шлет метрики в hub через общий unix-сокет. - Caddy - reverse-proxy и авто-TLS (Let's Encrypt), наружу только
80/443, hub недоступен напрямую.
Как войти
- Адрес формируется из IP сервера: замените точки на дефисы и добавьте
.fatmetal.net. Пример: IP45.15.159.10->https://45-15-159-10.fatmetal.net/. - Пароля заранее нет: откройте адрес и создайте админа на первом входе (PocketBase). Кто первым открыл адрес, тот и заводит админа - откройте URL сразу после установки, пока адрес знаете только вы.
- Это HUB. Чтобы добавить свои машины, в интерфейсе нажмите Add System - hub отдаст публичный ключ (KEY) и TOKEN под систему (порт по умолчанию
45876). Поставьтеbeszel-agentна нужную машину с этими KEY и TOKEN, и она появится в списке с метриками.
Свой домен
Направьте A или CNAME на этот сервер, пропишите домен в /etc/beszel-mp/params.env (DOMAIN=ваш-домен) и перезапустите install.sh (или Caddy) - выпустится Let's Encrypt. Полная памятка и адрес - на сервере: cat /root/beszel-credentials.txt.
Требования
Ubuntu 24.04, открытые порты 80/443. Один из самых легких сервисов: hub и agent вместе держат около 13.6 МиБ RAM, весь стек с Caddy - около 30 МиБ. Хватает младшего тарифа CPU2-RAM4-DISK50. Критично: делайте бэкап тома /opt/beszel/beszel_data (это ваша база PocketBase) и заведите админа сразу после установки.