自托管服务
henrygd/beszel avatar
henrygd/beszel

Beszel:一个把监控代理压到 10MB 以内的开源方案

具有历史数据、docker 统计信息和警报的轻量级服务器监控。

25,406 个 Star1,017 个 ForkGoMIT

秒懂

它是什么?
Beszel 用 Go 写了一个轻量监控平台,hub 与 agent 分离,支持 Docker 统计、历史数据和告警。它比主流方案更省资源,但文档和 API 的现状需要你自行确认。
适合谁用?
适合在意资源占用、希望快速部署 Docker 容器监控的个人开发者或小团队。不适合需要完整 REST API、复杂告警工作流或企业级多租户管理的场景,因为 README 中 API 功能被注释掉,文档也依赖外部网站。
能商用吗?
可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 2 天前。
用什么语言写的?
主要是 Go(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决什么问题,给谁用

服务器监控工具不少,但很多都笨重。Prometheus 加 Grafana 能监控一切,可部署和配置成本高。Beszel 想填一个空档:轻量、简单、开箱即用。它面向的是不想折腾监控栈的开发者,或者需要快速给几台服务器加上基础监控的人。你只要跑一个 hub 和一个 agent,就能看到 CPU、内存、磁盘、网络、温度这些指标,还有 Docker 容器的统计和告警。它不是一个全功能监控平台,而是一个够用的轻量方案。

hub 与 agent 的架构

Beszel 分两个部分。hub 是核心,基于 PocketBase 构建,提供 Web 仪表盘,用来查看和管理已连接的服务器。agent 是一个单独的进程,跑在你想要监控的每台机器上,负责采集系统指标并发送给 hub。这种分离设计很常见,但 Beszel 的特别之处在于 agent 用 Go 编写,所以编译出来是一个静态二进制,资源占用很低。README 说它比主流方案更轻量,但没有给出具体数字。你需要注意,agent 和 hub 之间的通信协议、加密方式,README 没有详细说明,需要去文档站确认。

支持的指标范围

Beszel 覆盖的指标比预期广。除了常规的 CPU、内存、磁盘、网络,它还支持磁盘 I/O、负载均值、温度、风扇转速、GPU 使用率和功耗,甚至电池电量和 S.M.A.R.T. 磁盘健康状态。容器监控是重点,它跟踪每个 Docker 或 Podman 容器的 CPU、内存、网络历史。温度传感器在 Linux 上通过 /sys/class/hwmon 读取,S.M.A.R.T. 还能读取 eMMC 磨损和 mdraid 阵列健康。这个范围对个人服务器或小型集群足够,但缺少类似 HTTP 探活、日志采集这类应用层监控。

上手:两条命令,一个容器

快速开始指南在 beszel.dev 上,但 README 没有给出具体命令。根据项目结构,你大概率会这样部署:先启动 hub 容器,比如 docker run -d -p 9876:9876 henrygd/beszel,然后在每台需要监控的机器上跑 agent 容器,比如 docker run -d henrygd/beszel-agent。agent 需要配置 hub 地址和密钥,具体环境变量需要查文档。配置量确实不大,但如果你完全依赖 README,会卡在第一步。文档站是唯一入口,所以网络不好时你没法离线部署。

告警、多用户与备份

告警是可配置的,支持 CPU、内存、磁盘、带宽、温度、风扇转速、负载均值和状态变化。多用户功能让每个用户管理自己的系统,管理员可以跨用户共享系统。OAuth 和 OIDC 支持多种提供商,甚至可以禁用密码登录。自动备份支持保存到磁盘或 S3 兼容存储,恢复也是内置的。这些功能对个人或小团队够用,但告警只支持基础阈值,没有通知渠道的细节,比如邮件或 Webhook,README 没有提,可能需要看文档。

一个明显的限制:API 的现状

README 的功能列表里有一行注释掉的文字:REST API,Use or update your data in your own scripts and applications。这行被注释掉了,说明这个功能要么没实现,要么被移除了。如果你想用脚本自动更新监控数据,或者从其他系统拉取指标,Beszel 可能不满足你。PocketBase 自带一个 REST API,但 Beszel 是否暴露了它,文档没有明说。这是它和 Prometheus 这类工具最大的差距,后者有完整的查询 API。如果你需要 API 集成,Beszel 可能不是正确选择。

替代方案:Netdata 和 Prometheus

和 Beszel 最接近的替代是 Netdata。Netdata 也强调轻量和实时,但它走的是高频率采集、内置图表的路子,agent 本身更重,而且没有 hub 和 agent 的分离架构,每台机器都要跑一个完整的监控界面。Prometheus 则是另一种思路,它用拉取模型,需要单独配置 exporter,但胜在强大的查询语言和告警规则,适合复杂场景。Beszel 的推送模型更简单,agent 主动发数据给 hub,省去了服务发现和网络配置。如果你只需要看几台机器的指标,Beszel 更直接;如果你要长期存储和复杂聚合,Prometheus 更合适。

维护成本与许可证

Beszel 用 MIT 许可证,你可以自由使用和修改,包括商用。项目最近更新频繁,v0.18.8 在 2026 年 8 月发布,说明作者在积极维护。但整个项目基本是个人维护,README 里作者说会尽量回复问题,但不保证有时间。这意味着你遇到 bug 时,可能只能自己看代码。自动备份功能降低了数据丢失的风险,但恢复流程没有详细文档。升级方面,hub 和 agent 是独立组件,升级 hub 可能要求 agent 版本匹配,具体兼容性需要看 release notes。总体而言,维护成本低,但风险自担。

编辑结论

适合在意资源占用、希望快速部署 Docker 容器监控的个人开发者或小团队。不适合需要完整 REST API、复杂告警工作流或企业级多租户管理的场景,因为 README 中 API 功能被注释掉,文档也依赖外部网站。采用前先确认 beszel.dev 上的快速开始指南是否覆盖你的部署环境,检查 S3 备份和 OAuth 配置是否满足你的认证需求。最后,用一个小型测试系统跑通 agent 到 hub 的链路,再决定是否推广到生产。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记