轻量级服务器资源监控平台Beszel
什么是 Beszel ?
Beszel是一个轻量级平台,借助Beszel,可以访问CPU和内存使用情况的历史数据,以及Docker容器指标(例如特定于容器的CPU和内存统计信息)。还能收到针对潜在问题的可自定义警报通知,以便采取主动措施来优化服务器性能。

软件特点:
- 轻量级:比领先的解决方案小得多,要求也低得多。
- Docker 统计:每个容器的
CPU和内存使用历史记录。 - 警报:可配置
CPU、内存和磁盘使用情况以及系统状态的警报。 - 多用户:每个用户都有自己的系统。管理员可以跨用户共享系统。
- 简单:易于设置,不需要任何内容在线公开。
- OAuth / OIDC:支持许多
OAuth2提供商。可以禁用密码验证。 - 自动备份:将数据保存到磁盘或
S3兼容存储并从磁盘或S3兼容存储中恢复数据。 - REST API:在您自己的脚本和应用程序中使用您的指标。
安装
在群晖上以 Docker 方式安装。
Beszel 分为 Hub 和 Agent 两部分,Agent 负责数据采集,Hub 端汇聚并展示数据
Hub端的镜像为henrygd/beszel;Agent端的镜像为henrygd/beszel-agent;
本文折腾时,
latest版本均为0.1.1;

为了省事,老苏把 Hub 和 Agent 合并到了一个 docker-compose.yml 中,但是实际上执行是分开的
需要先运行 Hub ,生成一个 Public Key 之后,再运行 Agent
1 | version: '3' |
agent 使用 host 网络模式,因此它可以访问网络接口统计信息。这会自动公开端口,因此如果需要,可以使用环境变量更改端口。
用于磁盘 I/O 统计的文件系统/分区在FILESYSTEM环境变量中指定。可以通过下面的方式来获取,其中群晖上支持 1 和 3
- 运行
df -h并在Filesystem下选择一个选项; - 运行
lsblk并在NAME下选择一个选项; - 运行
sudo fdisk -l并在Device下选择一个选项;

任何一种都是可以的,关键就是找到你要监视的硬盘,对老苏而言,就是那个最大的硬盘 /dev/md2

更多环境变量,请参考官方文档:https://github.com/henrygd/beszel#environment-variables
然后执行下面的命令
1 | # 新建文件夹 beszel 和 子目录 |
注意,这里只启动了 Hub
运行
在浏览器中输入 http://群晖IP:8092 就能看到注册界面
密码不能少于
10个字符;

登录后的主界面

点 Add System 添加 agent,第一个 agent 是本机
Name:主机名称;Host/IP:主机的IP地址;Port:主机端口,如果你要修改,对应的agent的环境变量PORT也要对应做修改;Public Key:点后面的复制按钮,替换掉环境变量中的<YOUR_PUBLIC_KEY>

注意:如果没有使用
https协议,复制是无用的,需要在弹出框里再复制

点 Add system 保存后,暂时什么都没有

将获取到的 Public Key 替换掉 <YOUR_PUBLIC_KEY> ,现在你的 docker-compose.yml 是这样的

接下来启动 agent
1 | # 一键启动 agent |
agent 启动成功后

就会有数据了

如果有多台机器需要监控,只要再运行一次。被监控的主机只要安装 agent 即可

下面👇是老苏在另一台机器上的 docker-compose.yml 文件
1 | version: '3' |
运行👇的命令
1 | # 一键启动 |
当 agent 启动成功后,就能看到数据了

点铃铛图标,可以设置报警

因为时间短,所以数据不多。意思到了就行了

参考文档
henrygd/beszel: A lightweight server monitoring hub with historical data, docker stats, and alerts.
地址:https://github.com/henrygd/beszel