轻量服务器监控 Beszel:用 Hub + Agent 把多台机器收进一个面板

手头的服务器现在散得到处都有——有跑博客的、有做代理节点的,家里还有 NAS 和软路由。平时想知道哪台内存吃紧了、哪个容器在偷偷吃 CPU,得一台台 SSH 上去敲 htop,烦。

试过 Prometheus + Grafana,问题是它太重了。光是跑起来就得折腾一堆配置,对我就想看个”现在还活着吗、磁盘还够吗”的需求来说,属于用牛刀杀鸡。直到看到 Beszel,一个 MIT 协议的轻量监控,Hub + Agent 两件套,agent 镜像才 5.6MB,正好对口。

是什么

Beszel 是个服务器监控平台,核心就两个组件:

  • Hub:基于 PocketBase 的 Web 应用,自带 SQLite,开箱即用,提供看板和管理界面,本身是个约 16MB 的 Docker 镜像。
  • Agent:跑在每台被监控机器上的小守护进程(agent 镜像约 5.6MB),默认每 10 秒把 CPU、内存、磁盘、网络等指标汇报给 Hub。

所有数据都存在 Hub 的 SQLite 里,滚动保留历史,不需要外接数据库、也不用另起 Prometheus。

Beszel 仪表盘与系统页并排截图

为什么选它

对我来说关键就三点:

  1. 。Hub 日常内存占用能压在 50MB 以内,在只有 1GB 内存的小机器上也能跑。比起 Grafana 全家桶,资源占用几乎可以忽略。
  2. 不用暴露公网。Agent 主动连 Hub,Hub 一个端口就够,不必每台机器都开监控端口。配合 Tailscale 这类内网组网工具,Hub 放内网、外面走隧道访问,攻击面很小。
  3. Docker 统计是真有用的。它会通过 Docker API 抓每个容器的 CPU / 内存 / 网络历史,点开容器能看到过去几周的趋势。几台服务器上都跑了面板、代理和各种容器,这个视图一眼就能看出谁在作妖。

Beszel 多系统仪表盘

支持的指标挺全:CPU、内存(含 swap 和 ZFS ARC)、磁盘、磁盘 I/O、网络、负载、温度、GPU(Nvidia / AMD / Intel)、电池,还有 S.M.A.R.T. 磁盘健康。最后这个对 NAS 很实用——能提前看到硬盘是不是快不行了。

怎么部署

Hub 用 Docker Compose 起,关键是把数据目录挂出来:

services:n  beszel:n    image: henrygd/beszel:latestn    container_name: beszeln    restart: unless-stoppedn    ports:n      - 8090:8090n    volumes:n      - ./data:/datan

起来后访问 8090 端口,注册的第一个账号就是管理员。然后点 “Add System”,界面会给你一段 Agent 的连接命令,包含 Hub 地址和密钥。

Agent 在被监控机上也是一条 Docker 命令:

docker run -d --name beszel-agent --restart unless-stopped n  --network host n  -e BESZEL_AGENT_KEY=你的密钥 n  -e BESZEL_AGENT_HOST=http://你的hub地址:8090 n  henrygd/beszel-agent:latestn

注意 --network host 在 Oracle 那种 Ubuntu 镜像上有时要注意,用端口映射也行。别的机器照葫芦画瓢,每台换一个 key,几分钟就能把全家机器都收进来。

Beszel 单系统详情页

告警和备份

Beszel 内置告警引擎,可以针对 CPU、内存、磁盘、带宽、温度、平均负载和状态设阈值,通知走 shoutrrr,支持 Telegram、Slack、Email、Discord 等。我把”磁盘 > 85%”和”容器挂了”两条告警接到 Telegram,算是有了个最低限度的眼睛。

Beszel 通知设置

备份也简单,Hub 支持直接存盘或者 S3 兼容存储,一个按钮导出导入。数据全在 SQLite 里,回滚省心。

有什么坑

  • Agent 主动外连 Hub,网络得通。我 Oracle 那几台是通过 Tailscale 私网连 Hub 的,得确认 Tailscale 接口起来、路由对。公网直连的话记得 Hub 的 8090 做好访问控制,别裸奔。
  • 历史数据默认滚动保留,想长期留趋势得自己定期备份数据库。
  • macOS 上 agent 的小问题:v0.18.7 之前有个 ARM64 崩溃的 bug(旧版 gopsutil 导致),升级到最新版已经修好。我在 Mac mini M4 上跑 agent 现在很稳。
  • 它没有 Grafana 那种自定义拖拽大屏,就是标准的几个指标面板。要灵活大屏它可能不够;要”一眼看全屋机器死活”,它刚好。

小结

Beszel 不是最强大的监控,但它是我见过最省心的。一个 Hub 管全屋,agent 轻到可以忽略,5 分钟跑起来,几个月后它还老实在那儿跑。对机器散落各处、又不想养重监控栈的场景来说,刚刚好。

项目地址:github.com/henrygd/beszel(MIT 协议,22.4k stars,最新 v0.18.7)

发表评论