飞牛NAS部署 Beszel:轻量服务器监控
在维护多台服务器或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部署(推荐)
- 通过SSH或飞牛NAS的终端登录系统
- 创建持久化数据目录:
mkdir -p /docker/beszel/data
cd /docker/beszel
- 使用Docker运行Hub容器:
docker run -d \
--name beszel-hub \
-p 8090:8090 \
-v ./data:/beszel/data \
--restart unless-stopped \
henrygd/beszel:latest
- 验证容器是否运行:
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——它可能就是你一直在找的那款工具。