
NAS 半夜卡死都不知道为什么?一个项目帮你监控每个容器的占用:Beszel
用 Beszel 轻量监控 NAS 和每个容器的 CPU、内存和磁盘占用。
早上起来发现 Emby 打不开,NAS 网页也卡得点不动,重启之后一切正常,可到底是哪个容器把内存吃光了、硬盘是不是快满了、半夜 CPU 是不是被什么任务拉满了,完全没有头绪。系统自带的资源监视器只能看“现在”,看不到“昨晚三点”;Prometheus + Grafana 倒是什么都能看,但光是搭起来就要一个周末。
有没有一个东西:装起来只要一个 compose 文件,打开网页就能看到 CPU、内存、硬盘、网络的历史曲线,还能精确到每一个 Docker 容器,超过阈值直接推到手机上?今天介绍的 Beszel 就是干这个的。
项目介绍
Beszel 是一个开源、轻量的服务器监控平台,由两部分组成:Hub(网页面板,基于 PocketBase)和 Agent(采集端,装在要被监控的机器上)。一台 NAS 自己监控自己,两个容器放在同一个 compose 里就够了;家里还有软路由、小主机、云服务器,也可以各装一个 Agent,统一在一个面板里看。
- GitHub:https://github.com/henrygd/beszel
- 官方文档:https://beszel.dev
项目特征
- 轻量:Agent 实测只占十几 MB 内存,Hub 不到 30 MB,老 NAS 也跑得动
- 历史曲线:CPU、内存、磁盘使用和读写、网络带宽、系统负载,都能回看 1 小时到 30 天
- 容器级监控:每个 Docker 容器的 CPU、内存、网络单独成图,谁在吃资源一眼看出
- 容器列表:所有容器的状态、健康检查、端口、镜像集中在一个页面
- 告警推送:离线、CPU、内存、磁盘、容器不健康都能设阈值,支持邮件和 Bark、Telegram、企业微信等推送
- 多机管理:一个面板接入多台机器,首页列表直接对比
- 中文界面:面板自带简体中文,打开就是中文
Docker Compose 部署
一、启动 Hub 面板
在 NAS 上建一个目录,比如 /vol1/docker/beszel,先只写 Hub 部分:
浏览器打开 http://NAS的IP:8090,第一次进来会让你创建管理员账号,填邮箱和两次密码就行:
![]()
二、添加系统,拿到密钥
登录后点右上角“添加 系统”。名称随便写,比如 NAS-Home;因为 Agent 和 Hub 在同一台机器上,主机/IP 直接填本地套接字 /beszel_socket/beszel.sock,这样连端口都不用开。下面的公钥和令牌就是 Agent 要用的:
![]()
要监控的是另一台机器的话,主机/IP 填那台机器的内网 IP,端口保持 45876。
三、把 Agent 加进 compose
点“复制 docker compose 文件”能直接拿到 Agent 的配置,把它追加到刚才的文件里,完整内容如下:
注意:/var/run/docker.sock 一定要挂进去(只读即可),否则只能看到整机数据,看不到每个容器的占用。
日志里出现 WebSocket connected 就说明连上了。
使用教程
首页:所有机器一览
回到首页,NAS-Home 前面的小圆点变绿,CPU、内存、磁盘、负载、网络都有数了。点名字进入详情:
![]()
详情页:每个容器吃了多少
详情页左边是整机的 CPU 和内存,右边是 Docker 容器各自的占用,不同颜色就是不同容器,鼠标移上去能看到具体是谁。右上角可以把时间范围切到 12 小时、24 小时甚至 30 天,“半夜卡死”这种事回头一翻就清楚了:
![]()
往下拉是磁盘使用、磁盘读写、网络带宽、容器网络和系统负载。我这台截图时刚好在跑一个本地 AI 模型,读写和负载的几个尖峰就是它:
![]()
容器列表:谁在跑、健不健康
顶部那个小方块图标进入“所有容器”,每个容器的 CPU、内存、网络、健康状态、端口和镜像都列在这里。我 NAS 上正在跑的 Jellyfin(8096)和 Seerr(5055)都在:
![]()
设置告警
在首页系统那一行点小铃铛,就能给这台机器设告警。我一般开这几个:离线超过 10 分钟、CPU / 内存 / 磁盘平均超过 80% 持续 10 分钟、容器健康检查不通过:
![]()
推送到手机
告警发到哪里,在“设置 → 通知”里配。邮件需要先配 SMTP;更方便的是下面的 Webhook / 推送通知,它用的是 Shoutrrr,Bark、Telegram、企业微信、Gotify 等都支持,填一行 URL,点“测试URL”收到消息就成了:
![]()
截图里的 Bark 地址是示例,换成你自己 App 里的 device key。
总结
Beszel 适合“想知道 NAS 到底在忙什么,但不想折腾 Grafana”的人:一个 compose 文件、几分钟搞定,历史曲线、容器级占用、告警推送这些最常用的都有,而且本身几乎不占资源。不足也说一下:它没有 Grafana 那样自由的自定义面板,也不做日志分析;温度、S.M.A.R.T. 这类硬件数据要看 NAS 系统给不给权限,飞牛、群晖上可能需要额外挂载设备。
如果这篇对你有帮助,欢迎点赞、在看、关注「HuanHQ技术栈」,更多 NAS 和自部署玩法也会同步在博客 www.huanhq.com。


