Beszel:輕量級主機與 Docker 容器監控系統
- 官方網站:https://beszel.dev/
- GitHub 儲存庫:henrygd/beszel
Beszel 是一款專為 Homelab 與多伺服器環境設計的輕量級監控平台。相較於 Prometheus + Grafana 複雜龐大的架構,Beszel 採用 Go + PocketBase 開發,記憶體佔用極低(僅數十 MB),並能即時呈現 CPU、記憶體、磁碟 I/O、網路流量以及各個 Docker 容器的資源使用率。

核心架構
Beszel 採用 Hub-Agent(主控端與探針端) 架構:
- Beszel Hub:中心管理面板,負責收集各節點數據、提供 Web 圖表介面與警報發送。
- Beszel Agent:安裝在受監控的主機(實體機、VM 或 VPS)上的微型探針,採集系統指標並透過加密通道回報給 Hub。
Step 1. 部署 Beszel Hub (主控端)
在預計作為監控中心的主機上建立目錄與設定檔:
1. 建立目錄
sudo mkdir -p /opt/stacks/beszel-hub/data
cd /opt/stacks/beszel-hub
2. 建立 compose.yaml
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel-hub
restart: unless-stopped
ports:
- "8090:8090"
volumes:
- ./data:/beszel_data
3. 啟動服務
sudo docker compose up -d
啟動後,瀏覽器打開 http://<Hub_IP>:8090,建立管理員帳號與密碼。
Step 2. 部署 Beszel Agent (受監控端)
1. 在 Hub 介面新增系統
- 登入 Beszel Hub 儀表板,點擊右上角 Add System。
- 輸入主機名稱 (Name) 與主機 IP (Host / IP)。
- Hub 會自動生成一組專屬的 Public Key (公鑰),複製此金鑰。
2. 在目標主機部署 Agent
在欲被監控的各台主機上(亦可包含 Hub 本身主機),建立以下配置:
sudo mkdir -p /opt/stacks/beszel-agent
cd /opt/stacks/beszel-agent
建立 compose.yaml:
services:
beszel-agent:
image: henrygd/beszel-agent:latest
container_name: beszel-agent
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # 允許監控 Docker 各容器資源
# - /path/to/disk:/extra-filesystems/disk:ro # 監控額外掛載的硬碟 (選填)
environment:
- PORT=45876
# 貼上在 Hub 新增 System 時取得的 Public Key
- KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA..."
啟動 Agent:
sudo docker compose up -d
啟動後約數秒內,Hub 儀表板上的系統狀態即會轉為綠色連線 (Connected),並開始繪製即時資源圖表。
主要功能與進階設定
- Docker 容器資源追蹤:點入各主機詳情頁面,可直接查看個別容器的 CPU 與 RAM 即時與歷史佔用率。
- 告警通知 (Alerts):可在設定中綁定 Discord Webhook、Telegram Bot、Gotify 或 Email,當 CPU、記憶體或硬碟用量超過閾值時自動推播警報。
- 多用戶與 OIDC:支援多使用者檢視權限與 Pocket ID / Authentik 等 OIDC 單一登入整合。