【Beszel】轻量级服务器监控平台 — 21k Stars 的开源监控新星
Beszel是一款轻量级开源服务器监控系统,专为个人开发者和小型团队设计。采用Go语言开发,采用Hub+Agent架构,核心组件仅20MB大小,支持CPU、内存、磁盘、容器等指标监控。相比企业级方案,Beszel具有极低资源占用(内存<50MB)、5分钟快速部署、多平台支持等特点,提供实时监控、历史数据、灵活告警等功能。支持Docker/二进制安装,内置SQLite数据库和REST API,
轻量简洁,开源可控:一款专为个人服务器和 Homelab 设计的自托管监控解决方案。
一、引言:痛点与场景
管理一两台个人服务器时,你是否面临过这些困扰?
服务器的 CPU 偶尔飙升,却找不到元凶;Docker 容器跑了一周内存持续上涨,无从排查;磁盘快满了,但不知道是哪个目录在蚕食空间;安装了 Zabbix 或 Prometheus,却发现这些"企业级"工具本身就要占用大量资源,小机器根本撑不住……
Beszel 正是为解决这些痛点而生。它定位清晰:轻量到可以忽略资源占用,简洁到 5 分钟就能跑起来,功能足够覆盖个人开发者和小型团队的日常监控需求。在 GitHub 上斩获 21,627 颗星,是近年来监控领域增长最快的开源项目之一。
二、项目简介
Beszel 是一个基于 Go 语言开发的轻量级服务器监控平台,核心特性包括:实时指标采集(CPU、内存、磁盘、网络)、Docker/Podman 容器监控、历史数据保留、以及灵活告警。项目由开发者 henrygd 创建并维护,采用 MIT 许可证,完全开源。
Beszel 采用经典的 Hub + Agent 架构:Hub 端(PocketBase)负责 Web 界面、数据存储和告警管理;Agent 端以轻量级 Go 二进制程序(仅约 5MB)部署在每台被监控服务器上,通过 HTTP 协议主动上报指标数据。
| 指标 | 数值 |
|---|---|
| GitHub Stars | 21,627 |
| Fork | 769 |
| 最新版本 | v0.18.7(2026-04-05) |
| License | MIT |
| 主要语言 | Go + TypeScript |
| 提交数 | 1,450+ |
| 架构 | Hub + Agent |
三、系统架构
Beszel 的架构设计极为精简,核心组件只有两个:
Hub(中心节点):基于 PocketBase 框架构建,内嵌 SQLite 数据库,提供 Web 管理界面、用户认证、告警引擎和 REST API。Hub 本身就是一个约 20MB 的二进制文件,无需安装任何运行时,开箱即用。
Agent(采集代理):部署在被监控服务器上的轻量进程(~5MB),通过系统调用采集 CPU、内存、磁盘、容器等指标,默认每 10 秒通过 HTTP POST 将数据上报给 Hub。Agent 支持 Linux、Windows、macOS 多平台,以及 ARM64 架构。
数据流向清晰:Agent 轮询系统指标 → HTTP POST 加密传输到 Hub → PocketBase 解析验证写入 SQLite → Web UI 轮询 REST API 渲染图表 → 告警引擎根据阈值触发通知。

▲ 图1:Beszel 系统架构图(Hub + Agent 模式)

▲ 图2:Beszel 监控数据流(采集 → 传输 → 存储 → 展示)
四、核心特性解析
1. 极低资源占用
Agent 二进制仅约 5MB,运行时不依赖任何外部运行时库。相比 Prometheus + Grafana 动辄占用数百 MB 内存的方案,Beszel 在资源受限的小机器(如 1GB RAM 的 VPS)上也能流畅运行。据官方数据,Hub 端日常内存占用可控制在 50MB 以内。
2. Docker / Podman 容器监控
Beszel Agent 通过 Docker/Podman API 直接获取各容器的 CPU、内存、网络收发量,并且保留完整的历史数据。点击任意容器,可以看到过去数天乃至数周的指标趋势图。这一特性对于在单台宿主机上运行多个容器(例:Nginx + MySQL + Redis 组合)的个人开发者来说尤为实用。

▲ 图3:Beszel Dashboard 多服务器概览界面
3. 丰富的监控指标
Beszel 支持的指标覆盖广泛:CPU 使用率、内存(含 Swap、ZFS ARC)、磁盘空间与 I/O、网络流量、Load Average、温度传感器(支持 lm-sensors)、电池状态、GPU(Nvidia/AMD/Intel)以及 S.M.A.R.T. 磁盘健康数据。最新版本还新增了磁盘 I/O 的 await、queue depth 等深度指标。

▲ 图4:Beszel 单系统详情页(CPU、内存、磁盘、网络、容器一览)
4. 灵活告警机制
Beszel 的告警规则支持 CPU、内存、磁盘、带宽、温度、系统状态等多种维度,可为每台服务器单独配置阈值。告警触发后支持 Email、Webhook 等通知方式。告警规则可以在不同系统之间复制,方便批量管理。

▲ 图5:Beszel 告警通知配置界面
5. 多用户与权限管理
Beszel 支持多用户体系:普通用户只能管理自己的服务器,管理员可以将系统共享给其他用户。内置 OAuth2/OIDC 支持,可对接 Google、GitHub 等主流 OAuth 提供商,也可以完全禁用密码认证。
6. 自动备份
Hub 端内置备份功能,支持将 SQLite 数据库备份到本地磁盘或任意 S3 兼容存储(MinIO、Backblaze B2、COS 等),备份策略可按需配置。这一功能对于长期运行的监控系统尤为重要。
7. REST API
Beszel 提供完整的 REST API,支持以编程方式查询系统数据、更新配置或集成到自有平台。API 需 JWT 认证,安全可控。
五、快速上手
Beszel 支持二进制直接运行和 Docker 两种安装方式,以下分别介绍。
方式一:二进制安装(推荐)
# 下载 Hub(Linux amd64)
wget https://github.com/henrygd/beszel/releases/latest/download/beszel-linux-amd64
chmod +x beszel-linux-amd64
./beszel-linux-amd64 serve
# Hub 启动后访问 http://localhost:8090 创建管理员账户
# 下载 Agent(另一台要监控的服务器)
wget https://github.com/henrygd/beszel/releases/latest/download/agent-linux-amd64
chmod +x agent-linux-amd64
./agent-linux-amd64 --help
方式二:Docker 安装
# 启动 Hub
docker run -d \
--name beszel \
-p 8090:8090 \
-v pb_data:/pb/pb_data \
henrygd/beszel
# Agent 端(与 Hub 同机部署时)
docker run -d \
--name beszel-agent \
--network=host \
-v /:/host \
-v pb_agent_data:/agent \
henrygd/beszel-agent \
--host /host
添加第一台被监控服务器
Hub 创建管理员账户后,点击右上角 Add System 按钮,填写服务器信息。Agent 连接方式支持两种:
- 本地 Socket(同机部署):使用 Unix Socket 直连,无需网络暴露
- 远程 Agent(跨机部署):通过 HTTP 连接,支持 TLS,推荐使用 Universal Token 免配置
# Agent 以 systemd 服务运行(Linux)
curl -s https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-agent.sh | bash
零安装体验: Beszel 官方提供基于 Docker Compose 的快速启动模板,无需手动编译配置,适合初次体验:
git clone https://github.com/henrygd/beszel.git
cd beszel/supplemental/docker/same-system
docker compose up -d
# 访问 http://localhost:8090 完成初始化
六、实战演示
场景:在树莓派上监控家庭服务器集群
假设你有一台运行在软路由上的 Linux 服务器(安装 Agent),以及一台 NAS(安装 Agent),通过 Beszel Hub 集中监控。
Step 1:安装 Beszel Hub
在一台低功耗设备(如 N100 小主机)上部署 Hub:
wget https://github.com/henrygd/beszel/releases/latest/download/beszel-linux-amd64
./beszel-linux-amd64 serve
访问 http://<your-nas-ip>:8090,注册管理员账户。
Step 2:在各服务器部署 Agent
在树莓派上下载对应架构的 Agent(linux-arm64),用 Universal Token 方式连接:
wget https://github.com/henrygd/beszel/releases/latest/download/agent-linux-arm64
chmod +x agent-linux-arm64
# 在 Hub 的 Systems → Add System 获取 Universal Token
./agent-linux-arm64 hub https://<hub-ip>:8090 <your-universal-token>
Step 3:配置告警
进入 Settings → Notifications,配置邮件通知(以 QQ 邮箱为例,需开启 SMTP 服务并生成授权码):
SMTP Host: smtp.qq.com
SMTP Port: 587
SMTP Username: your-email@qq.com
SMTP Password: your-authorization-code
在 Systems → 选中服务器 → Alerts,添加告警规则:
- CPU 使用率 > 80% 持续 5 分钟
- 内存使用率 > 85%
- 根磁盘 < 10GB
Step 4:验证监控效果
等待 1~2 分钟刷新数据,在 Dashboard 即可看到各服务器的状态卡片,每个卡片显示 CPU、内存、负载的实时值和趋势。点击具体服务器进入详情页,可查看过去 24 小时/7 天的指标曲线。
七、技术亮点深度解析
1. PocketBase 嵌入式后端引擎
Beszel Hub 选择 PocketBase 作为后端框架,这是一个值得关注的技术决策。PocketBase 是一个用 Go 编写的嵌入式数据库/后端框架,单二进制文件同时提供 SQLite 数据库、REST API、用户认证和文件存储能力。相比传统的"数据库 + Web 框架 + API 层"分离部署方案,PocketBase 将所有功能压缩到一个进程中,大幅降低了部署复杂度和资源占用。对于 Beszel 这样的单点监控系统,这种"all-in-one"的设计非常契合——既保持了功能完整,又实现了极简部署。
同时 PocketBase 本身也是开源的(MIT),且持续活跃维护,版本迭代快,不存在厂商锁定风险。
2. Agent 架构的轻量化设计
Beszel Agent 不走传统监控的"拉模式"(Prometheus 定期从目标拉取指标),而是采用"推模式"——Agent 主动将数据 POST 到 Hub。这种设计在小型环境中优势明显:无需在 Hub 侧开放被监控服务器的访问端口,Agent 本身可以躲在防火墙后面,只需出站 HTTP 连接到 Hub 即可。这对于家庭网络或企业内网环境非常友好。
Agent 使用 gopsutil 库采集系统指标,该库在 macOS 上的 ARM64 架构历史上存在崩溃问题,项目维护者 svenvg93 在 v0.18.7 版本中通过升级 gopsutil 到 v4.26.3 修复了此问题,体现了活跃的社区维护状态。
3. 跨平台与多架构支持
Beszel 的发布包覆盖 Linux(amd64/arm64/arm)、Windows(amd64)、macOS(amd64/arm64),还提供 Homebrew、Kubernetes Helm Chart、Debian 包等多种安装方式。特别是 ARM64 支持,让它可以很好地运行在树莓派、ARM 工控机等低功耗硬件上,也是 Homelab 场景的首选方案。
八、相关资源
- GitHub:https://github.com/henrygd/beszel
- 官方文档:https://beszel.dev/
- 在线体验:https://beszel.dev/guide/getting-started
- 版本发布:https://github.com/henrygd/beszel/releases
- 社区交流:https://github.com/henrygd/beszel/discussions
- Matrix 群组:#beszel:matrix.org
Beszel v0.18.7 · MIT License · © 2024-2026 henrygd
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)