大家好,今天给大家分享一款开源的轻量级服务器资源监控工具Beszel
,提供历史数据记录、Docker容器统计信息监控以及多种警报功能,用于监控服务器资源。

项目介绍
Beszel
由hub(中心服务器端应用,基于PocketBase构建,提供管理仪表板)和agent(运行在被监控系统上,通过创建最小化SSH服务器与hub通信并传递系统指标)两部分组成。
Beszel
提供了丰富的监控功能和警报机制,支持多用户和Docker环境,并易于设置和部署。无论是对于小型团队还是大型企业来说,Beszel都是一个值得推荐的服务器监控解决方案。
核心特点
轻量级:Beszel的体积相对较小,对系统资源的要求也较低,这使得它能够在各种环境中轻松部署和运行。
Docker支持:Beszel能够监控Docker容器的状态,包括CPU和内存使用历史记录等,这对于使用Docker进行容器化部署的用户来说非常有用。

警报功能:Beszel允许用户配置CPU、内存、磁盘使用情况以及系统状态的警报,当这些指标达到预设的阈值时,Beszel会发送警报通知,帮助用户及时发现问题并采取措施。

多用户支持:Beszel支持多用户系统,每个用户都有自己的系统视图,管理员可以在用户之间共享系统,提高了系统的灵活性和可扩展性。
易于设置:Beszel的设置过程相对简单,用户不需要具备复杂的技术背景就能快速上手。
OAuth/OIDC支持:Beszel支持许多OAuth2提供商,可以禁用密码身份验证,提高了系统的安全性。

自动备份:Beszel能够将数据保存到磁盘或S3兼容存储中,并支持从备份中恢复数据,确保了数据的可靠性和完整性。

REST API:Beszel提供了一个完整的内置API工具,用户可以在自己的脚本和应用程序中使用这些API来获取和使用监控数据。

技术架构
Beszel分为Hub
和Agent
两部分:
Hub:Hub是Beszel的服务器端组件,负责数据的汇聚、展示和管理。用户可以通过Web浏览器访问Hub的仪表板来查看和管理连接的系统。
Agent:Agent是Beszel的客户端组件,负责数据的采集和传输。Agent需要安装在被监控的系统上,通过创建一个最小的SSH服务器将系统指标传达给Hub。
安装使用
安装
1.脚本安装
Hub安装
下载安装:
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel | tee ./beszel >/dev/null && chmod +x beszel && ls beszel
运行程序:
./beszel serve http "0.0.0.0:8090"
程序运行后会在当前目录生成beszel_data/id_ed25519.pub
ssh公钥,该公钥用于启动Agent服务。
Agent安装
下载安装:
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel-agent | tee ./beszel-agent >/dev/null && chmod +x beszel-agent && ls beszel-agent
运行程序:
PORT=45876 KEY="{SSH公钥}" ./beszel-agent
2.Docker安装
Hub安装
通过Docker Compose部署Beszel Hub,详细的docker-compose.yaml
内容如下:
services:
beszel:
image: 'henrygd/beszel'
container_name: 'beszel'
restart: unless-stopped
ports:
- '8090:8090'
volumes:
- ./beszel_data:/beszel_data
使用docker-compose up -d
启动。
Agent安装
需要在Beszel后台 - 点击右上角添加系统,然后复制 docker compose内容。

会自动生成docker-compose.yaml
内容,如下格式:
services:
beszel-agent:
image: "henrygd/beszel-agent"
container_name: "beszel-agent"
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
# monitor other disks / partitions by mounting a folder in /extra-filesystems
# - /mnt/disk1/.beszel:/extra-filesystems/disk1:ro
environment:
PORT: 45876
KEY: "ssh-ed25519 xxx"
注意:KEY
请改成自己的。
将上面的内容保存为docker-compose.yaml,并输入命令docker-compose up -d
即可启动Beszel Agent。
使用
Hub启动成功后通过http://IP:8090
访问WEB页面,需设置一个管理员邮箱和密码。

添加安装好的Agent系统

查看系统状态


系统告警设置


项目地址
https://github.com/henrygd/beszel