Облегченный центр мониторинга ресурсов сервера с историческими данными, статистикой докеров и оповещениями.
Легкий вес : меньше и менее ресурсоемкий, чем ведущие решения.
Простота : простая настройка, нет необходимости в публичном доступе в Интернет.
Статистика Docker : отслеживает историю использования ЦП, памяти и сети для каждого контейнера.
Оповещения : настраиваемые оповещения о процессоре, памяти, диске, пропускной способности, температуре и состоянии системы.
Многопользовательский режим : каждый пользователь управляет своей собственной системой. Администраторы могут совместно использовать системы между пользователями.
OAuth/OIDC : поддерживает несколько поставщиков OAuth2. Аутентификацию по паролю можно отключить.
Автоматическое резервное копирование : сохранение и восстановление данных с диска или хранилища, совместимого с S3.
REST API : используйте или обновляйте свои данные в своих собственных скриптах и приложениях.
Beszel состоит из двух основных компонентов: хаба и агента.
Hub: веб-приложение, предоставляющее панель мониторинга для просмотра и управления подключенными системами. Построен на PocketBase.
Агент: запускается в каждой системе, которую вы хотите отслеживать, создавая минимальный SSH-сервер для передачи системных показателей в концентратор.
Если вы не используете Docker, пропустите шаги 4–5 и запустите агент, используя двоичный файл.
Запустите хаб (см. установку).
Откройте http://localhost:8090 и создайте пользователя-администратора.
Нажмите «Добавить систему». Введите имя и хост системы, которую вы хотите отслеживать.
Нажмите «Копировать docker-compose», чтобы скопировать файл docker-compose.yml агента в буфер обмена.
В системе агента создайте файл Compose и запустите docker compose up
чтобы запустить агент.
Вернувшись в хаб, нажмите кнопку «Добавить систему» в диалоговом окне, чтобы завершить добавление системы.
Если все пойдет хорошо, система должна переключиться на зеленый цвет. Если он станет красным, проверьте страницу журналов и обратитесь к советам по устранению неполадок.
Для обучения на французском языке обратитесь к https://belginux.com/installer-beszel-avec-docker/
Вы можете установить хаб и агент как отдельные двоичные файлы или с помощью Docker.
Концентратор : см. пример файла docker-compose.yml.
Агент : хаб предоставляет содержимое для создания агента, но вы также можете сослаться на пример файла docker-compose.yml.
Агент использует режим хост-сети для доступа к статистике сетевого интерфейса, что автоматически раскрывает порт. При необходимости измените порт, используя переменную среды.
Если вам не нужна статистика сети, удалите эту строку из файла компоновки и сопоставьте порт вручную.
Кончик
Если вы используете Linux, см. в руководствах/systemd.md сценарий для установки концентратора или агента в качестве системной службы. Это также встроено в веб-интерфейс.
Загрузите и запустите последние двоичные файлы со страницы выпусков или используйте команды ниже.
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/ Armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O безель | tee ./beszel >/dev/null && chmod +x beszel && ls beszel
Запуск хаба напрямую:
./безель подача
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed ' s/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O беззель-агент | tee ./beszel-agent >/dev/null && chmod +x beszel-agent && ls beszel-agent
Запуск агента напрямую:
PORT=45876 KEY="{PASTE_YOUR_KEY}" ./beszel-agent
Используйте ./beszel update
и ./beszel-agent update
для обновления до последней версии.
Имя | По умолчанию | Описание |
---|---|---|
CSP | не установлен | Добавляет заголовок Content-Security-Policy с этим значением. |
DISABLE_PASSWORD_AUTH | ЛОЖЬ | Отключает аутентификацию по паролю. |
Имя | По умолчанию | Описание |
---|---|---|
DOCKER_HOST | не установлен | Переопределяет хост Docker (docker.sock) при использовании прокси. 1 |
EXTRA_FILESYSTEMS | не установлен | См. Мониторинг дополнительных дисков, разделов или удаленных подключений. |
FILESYSTEM | не установлен | Устройство, раздел или точка монтирования, которые будут использоваться для статистики корневого диска. |
KEY | не установлен | Открытый ключ SSH, используемый для аутентификации. Предоставляется в хабе. |
LOG_LEVEL | информация | Уровень логирования. Допустимые значения: «отладка», «информация», «предупреждение», «ошибка». |
MEM_CALC | не установлен | Переопределяет расчет памяти по умолчанию. 2 |
NICS | не установлен | Белый список сетевых интерфейсов для мониторинга диаграммы пропускной способности. |
PORT | 45876 | Порт или адрес: порт для прослушивания. |
SENSORS | не установлен | Белый список датчиков температуры для мониторинга. |
SYS_SENSORS | не установлен | Переопределяет системный путь для датчиков. См. № 160. |
Beszel поддерживает OpenID Connect и многие поставщики аутентификации OAuth2 (см. список ниже).
Посетите страницу «Поставщики аутентификации», чтобы включить своего провайдера. URL-адрес перенаправления/обратного вызова должен быть
.
Яблоко
Битбакет
Раздор
Фейсбук
Гитеа
Гите
GitHub
GitLab
Инстаграм
Какао
Живой чат
почтовая корова
Майкрософт
OpenID Connect
Патреон (v2)
Спотифай
Страва
Твич
Твиттер
ВК
Яндекс
Способ добавления дополнительных дисков зависит от метода развертывания.
Используйте lsblk
, чтобы найти имена и точки монтирования ваших разделов. Если у вас возникли проблемы, проверьте журналы агента.
Примечание. В диаграммах будет использоваться имя устройства или раздела, если оно доступно, а также имя папки. Вы не получите статистику ввода-вывода для сетевых дисков.
Подключите папку целевой файловой системы в каталоге /extra-filesystems
контейнера. Например:
объемы: - /mnt/disk1/.beszel:/extra-filesystems/sdb1:ro - /dev/mmcblk0/.beszel:/extra-filesystems/mmcblk0:ro
Задайте для переменной среды EXTRA_FILESYSTEMS
список разделенных запятыми устройств, разделов или точек монтирования для мониторинга. Например:
EXTRA_FILESYSTEMS="sdb,sdc1,mmcblk0,/mnt/network-share"
Поскольку Beszel построен на PocketBase, вы можете использовать веб-API PocketBase и клиентские SDK для чтения или обновления данных извне самого Beszel.
Хаб и агент обмениваются данными через SSH, поэтому им не требуется доступ к Интернету. Даже если вы разместите внешний шлюз аутентификации, например Autelia, перед хабом, это не нарушит и не разорвет соединение между хабом и агентом.
При первом запуске хаба он генерирует пару ключей ED25519.
SSH-сервер агента настроен на прием подключений только с использованием этого ключа. Он не предоставляет псевдотерминал и не принимает ввод, поэтому невозможно выполнять команды на агенте, даже если ваш закрытый ключ скомпрометирован.
Администраторы имеют доступ к дополнительным ссылкам в хабе, таким как резервные копии, настройки SMTP и т. д. Первый созданный пользователь автоматически становится администратором и может войти в PocketBase.
Изменение роли пользователя не приводит к созданию для него учетной записи администратора PocketBase. Для этого перейдите в «Настройки» > «Администраторы» в PocketBase и добавьте их вручную.
Пользователи могут создавать свои собственные системы и оповещения. Ссылки на настройки PocketBase не отображаются в хабе.
Пользователи с правами только для чтения не могут создавать системы, но могут просматривать любую систему, к которой им предоставил доступ администратор, и создавать оповещения.
Предполагая, что агент запущен, соединение, вероятно, блокируется брандмауэром. У вас есть два варианта:
Добавьте правило для входящего трафика в брандмауэры системы агента, чтобы разрешить TCP-подключения к порту. Проверьте все активные брандмауэры, такие как iptables, и настройки брандмауэра вашего облачного провайдера, если применимо.
Альтернативно, используйте такое программное обеспечение, как Cloudflare Tunnel, WireGuard или Tailscale, чтобы безопасно обойти брандмауэр.
Вы можете проверить подключение, запустив telnet
.
Если вы используете режим хост-сети для агента, но не для концентратора, добавьте свою систему, используя имя хоста host.docker.internal
, которое преобразуется во внутренний IP-адрес, используемый хостом. См. пример docker-compose.yml.
Если вы используете режим хост-сети для обоих, вы можете использовать localhost
в качестве имени хоста.
В противном случае используйте container_name
агента в качестве имени хоста, если оба находятся в одной сети Docker.
Укажите файловую систему/устройство/раздел для статистики корневого диска, используя переменную среды FILESYSTEM
.
Если этот параметр не установлен, агент попытается найти раздел, смонтированный в /
и использовать его. В контейнере это может работать некорректно, поэтому рекомендуется установить это значение. Используйте один из следующих методов, чтобы найти правильную файловую систему:
Запустите lsblk
и выберите вариант в разделе «ИМЯ».
Запустите df -h
и выберите опцию в разделе «Файловая система».
Запустите sudo fdisk -l
и выберите опцию в разделе «Устройство».
Если на диаграммах-контейнерах отображаются пустые данные или они вообще не отображаются, возможно, вам необходимо включить учет памяти cgroup. Для проверки запустите docker stats
. Если это показывает нулевое использование памяти, следуйте этому руководству, чтобы решить проблему:
https://akashrajpurohit.com/blog/resolve-missing-memory-stats-in-docker-stats-on-raspberry-pi/
Попробуйте обновить версию Docker в системе агента. Эта проблема наблюдалась на компьютере с версией 24 и была решена путем обновления до версии 27.
Записи за более длительные периоды времени создаются путем усреднения статистики за более короткие периоды. Агент должен работать непрерывно, чтобы получить полный набор данных для заполнения этих записей.
Приостановка/возобновление работы агента на паузу более чем на одну минуту приведет к получению неполных данных и сбросу времени для текущего интервала.
И хаб, и агент написаны на Go, поэтому вы можете легко создать их самостоятельно или выполнить кросс-компиляцию для разных платформ. Пожалуйста, сначала установите Go, если вы еще этого не сделали.
Запустите make
в /beszel
. При этом создается каталог build
содержащий двоичные файлы.
безель для компакт-диска && сделать
Вы также можете создавать для разных платформ:
сделать OS=freebsd ARCH=arm64
Просмотрите список допустимых параметров, запустив go tool dist list
.
Безель для компакт-диска && Go Mod Tidy
Перейдите в beszel/cmd/agent
и выполните следующую команду, чтобы создать двоичный файл в текущем каталоге:
CGO_ENABLED=0 go build -ldflags "-w -s" .
Хаб встраивает веб-интерфейс в двоичный файл, поэтому сначала необходимо создать веб-сайт. Я использую Bun, но вы можете использовать Node.js, если хотите:
рамка для компакт-диска/сайт установка булочки булочка, беговая сборка
Затем в beszel/cmd/hub
:
CGO_ENABLED=0 go build -ldflags "-w -s" .
Вы можете выполнять кросс-компиляцию для разных платформ, используя переменные среды GOOS
и GOARCH
.
Например, для сборки FreeBSD ARM64:
GOOS=freebsd GOARCH=arm64 CGO_ENABLED=0 go build -ldflags "-w -s" .
Просмотрите список допустимых параметров, запустив go tool dist list
.
Вклады приветствуются, но рекомендуется сначала проконсультироваться с нами в обсуждении/проблеме, если вы планируете сделать что-то существенное.
Мы используем Crowdin для управления переводами. Приветствуются новые языки или улучшения существующих переводов!
В ближайшем будущем у нас будет больше полезной информации о вкладе в Beszel.
Beszel лицензируется по лицензии MIT. Дополнительные сведения см. в файле ЛИЦЕНЗИИ.
Беззелю нужен доступ только для чтения информации о контейнере. Для linuxserver/docker-socket-proxy вы должны установить CONTAINERS=1
. ↩
Значение по умолчанию для используемой памяти основано на расчете «Использовано» gopsutil, который должен довольно точно соответствовать значению free
. Установите для MEM_CALC
htop
, чтобы оно соответствовало расчетам htop. ↩