Docker 玩法

飞牛NAS部署 Beszel:轻量服务器监控

2026-07-30 2 admin

在维护多台服务器或NAS时,实时掌握CPU、内存、磁盘和网络状态是基本功。传统监控方案如Prometheus+Grafana虽然强大,但部署复杂且资源占用高。今天介绍一款极简的替代品——Beszel,一个基于Go语言开发的轻量监控工具,资源消耗极低,部署仅需两条命令,非常适合在飞牛NAS这类低功耗设备上运行。

为什么选择 Beszel?

  • 极轻量:Agent端内存占用仅约10MB,Hub端约50MB
  • 零依赖:无需数据库、无需Web服务器,单二进制文件运行
  • 实时更新:默认2秒刷新一次数据
  • 美观界面:自带响应式Web仪表盘,支持暗色模式
  • 多平台:支持Linux、macOS、Windows,甚至OpenWrt

部署架构

Beszel采用中心Hub + 多Agent架构: - Hub:部署在飞牛NAS上,提供Web界面,收集所有Agent数据 - Agent:部署在被监控的服务器上,采集系统指标并推送给Hub

第一步:在飞牛NAS上部署 Hub

飞牛NAS基于Debian,我们可以直接用Docker部署,也可以使用二进制文件。这里推荐Docker方式,便于管理和升级。

方法一:Docker部署(推荐)

  1. 通过SSH或飞牛NAS的终端登录系统
  2. 创建持久化数据目录:
mkdir -p /docker/beszel/data
cd /docker/beszel
  1. 使用Docker运行Hub容器:
docker run -d \
  --name beszel-hub \
  -p 8090:8090 \
  -v ./data:/beszel/data \
  --restart unless-stopped \
  henrygd/beszel:latest
  1. 验证容器是否运行:
docker logs beszel-hub

看到类似 Listening on :8090 的输出即成功。

方法二:二进制部署(无Docker环境)

如果你不想用Docker,可以直接下载二进制文件:

curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-hub_linux_amd64.tar.gz" | tar xz
chmod +x beszel-hub
./beszel-hub -port 8090 -data ./data

建议使用systemd管理使其后台运行。

第二步:配置 Hub 并获取连接密钥

打开浏览器访问 http://你的飞牛IP:8090,首次访问会要求创建管理员账号。登录后,点击右上角“添加系统”,系统会生成一个密钥字符串,形如:

ssh-rsa AAAAB3NzaC1yc2E... user@beszel

复制这个密钥,稍后配置Agent时需要用到。

第三步:在被监控服务器上部署 Agent

在Linux服务器上安装Agent

假设你有另一台Ubuntu服务器需要监控,SSH登录后执行:

curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_linux_amd64.tar.gz" | tar xz
chmod +x beszel-agent

启动Agent,将 YOUR_HUB_IP 替换为飞牛NAS的IP,YOUR_KEY 替换为上一步复制的密钥:

./beszel-agent -hub http://192.168.1.100:8090 -key "YOUR_KEY" -name "ubuntu-server"

参数说明: - -hub:Hub的完整地址 - -key:连接密钥(包含ssh-rsa前缀的完整字符串) - -name:给这台服务器起个名字,方便识别

配置Agent为系统服务(可选)

为了开机自启,创建systemd服务文件:

sudo nano /etc/systemd/system/beszel-agent.service

填入以下内容(注意替换变量):

[Unit]
Description=Beszel Agent
After=network.target

[Service]
Type=simple
ExecStart=/path/to/beszel-agent -hub http://192.168.1.100:8090 -key "YOUR_KEY" -name "ubuntu-server"
Restart=always
User=nobody

[Install]
WantedBy=multi-user.target

然后启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable beszel-agent
sudo systemctl start beszel-agent

在飞牛NAS本机也部署Agent(监控自身)

如果你想同时监控飞牛NAS本身的资源,也可以在飞牛上运行Agent。通过Docker部署:

docker run -d \
  --name beszel-agent \
  --network host \
  --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  henrygd/beszel-agent:latest \
  -hub http://127.0.0.1:8090 \
  -key "YOUR_KEY" \
  -name "fn-nas"

注意:这里使用--network host模式,且-hub地址用127.0.0.1,因为Agent和Hub在同一台机器上。

第四步:验证监控效果

回到Web界面,稍等几秒,你应该能看到新添加的服务器出现在列表中。点击进入详情页,可以看到:

  • CPU:使用率、负载、温度(如果支持)
  • 内存:总量、已用、可用
  • 磁盘:分区使用率、读写IO
  • 网络:上下行速率、总流量
  • 进程:Top 10 进程列表

界面左上角可以切换实时/历史视图,历史数据默认保存7天。

高级配置

1. 开启Docker容器监控

在Hub的Web界面中,进入系统设置 -> 高级选项,开启“Docker容器监控”。Agent需要挂载Docker socket(如上面Docker部署示例所示),即可显示每个容器的资源消耗。

2. 配置告警通知

Beszel支持通过Webhook发送告警。在系统设置中,可以配置CPU/内存/磁盘阈值,当超过阈值时,通过Slack、Discord、Telegram等渠道推送通知。

3. 使用HTTPS访问

如果你需要通过公网访问,建议使用反向代理(如Nginx)配合Let's Encrypt证书。在飞牛NAS上,可以安装Nginx Proxy Manager进行图形化管理。

资源占用实测

以监控3台服务器为例: - Hub容器:内存约55MB,CPU几乎无占用 - Agent(Linux):内存约8MB - Agent(Docker):内存约12MB

相比Prometheus+Node Exporter动辄几百MB的占用,Beszel确实做到了“轻量”二字。

常见问题

Q:Agent无法连接到Hub? A:检查防火墙是否放行了8090端口。Agent通过HTTP(非SSH)连接Hub,确保网络互通。

Q:历史数据丢失? A:确认Hub的数据卷映射正确,默认数据保存在/beszel/data目录。建议定期备份该目录。

Q:如何升级? A:Docker方式直接拉取最新镜像重启容器即可:docker pull henrygd/beszel && docker restart beszel-hub

总结

Beszel以其极简的设计和极低的资源消耗,完美契合了NAS环境下的监控需求。无需复杂的配置,十分钟内就能搭建起一套多服务器监控系统。对于追求“够用就好”的玩家来说,这或许是比传统监控方案更务实的选择。

如果你需要监控飞牛NAS和其他几台Linux服务器,不妨试试Beszel——它可能就是你一直在找的那款工具。