前言
在日常运维或者个人服务器管理中,实时监控系统状态是一项必不可少的工作。无论是 CPU、内存、磁盘使用率,还是容器与服务的运行情况,都需要一个直观、轻量、易于部署的监控面板来帮助我们快速掌握服务器健康状况。Beszel 就是一款开源的轻量级服务器监控工具,支持通过 Docker 快速部署,几乎零配置即可使用。它界面清爽,功能专注,适合个人开发者、小型团队以及家庭 NAS 用户,能够在本地或者远程环境中轻松运行,让你随时随地掌控服务器动态。
类似的项目之前还分享过哪吒监控有兴趣的可以了解下
项目简介
什么是 Beszel?
Beszel 是一个轻量级的服务器监控平台,包含 Docker 统计信息、历史数据和警报功能。
它拥有友好的 Web 界面、简单的配置,并且开箱即用。它支持自动备份、多用户、OAuth 身份验证和 API 访问。
项目截图
功能
- 轻量级: 比主要解决方案更小,资源占用更少。
- 简单: 易于设置,无需公网暴露。
- Docker 统计: 跟踪每个容器的 CPU、内存和网络使用历史。
- 警报: 可配置 CPU、内存、磁盘、带宽、温度、负载平均值和状态的警报。
- 多用户: 用户管理自己的系统。管理员可以在用户之间共享系统。
- OAuth / OIDC: 支持多种 OAuth2 提供程序。可以禁用密码验证。
- 自动备份: 从磁盘或 S3 兼容的存储保存和恢复数据。
- 电池: 主机系统电池电量。
支持的指标
-
CPU 使用率
- 主机系统
- Docker / Podman 容器
-
内存使用情况
- 主机系统和容器
- 包括交换空间和 ZFS ARC
-
磁盘使用情况
- 主机系统
- 支持多个分区和设备
-
磁盘 I/O
- 主机系统
- 支持多个分区和设备
-
网络使用情况
- 主机系统和容器
-
平均负载
- 主机系统
-
温度
- 主机系统传感器
-
GPU 使用情况/温度/功耗
- 仅限 Nvidia 和 AMD
- 必须使用二进制代理
-
电池
- 主机系统电池充电
架构
Beszel 由两个主要组件组成:中心 (hub) 和 代理 (agent)。
- 中心 (hub): 一个基于 PocketBase 构建的 Web 应用程序,提供用于查看和管理连接系统的仪表板。
- 代理 (agent): 在您要监控的每个系统上运行,并将系统指标传递给中心。
部署流程
1.我们先在一台服务器上部署hub
2.然后再添加agent
部署方法
使用Docker安装
本教程使用docker的方式安装部署,简单便捷
准备条件
1)一台服务器或者NAS(理论上其他NAS都可以)
我们使用VPS来演示
由于中心(hub)需要有公网IP,所以我们最好将hub部署到服务器
需要vps的可以看以下信息
莱卡云官网
2)本项目使用到的开源项目
https://github.com/henrygd/beszel
目前有14.9k stars
更多功能或者二次修改可以访问项目地址
官方文档
3)域名(可选)
域名可以根据自己的需求绑定
《vps上搭建》
一、Docker环境部署
在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04
推荐直接用一键脚本
docker安装脚本
bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)
docker-compose安装脚本
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
二、创建docker-compose.yml文件
mkdir beszel;cd beszel #创建一个目录,并进入此目录
然后再新建docker-compose.yml
vim docker-compose.yml
services:
beszel:
image: henrygd/beszel:latest # 使用 henrygd/beszel:latest 镜像
container_name: beszel # 容器名称为 beszel
restart: always # 容器异常退出时自动重启
ports:
- 8090:8090 # 将宿主机 8090 端口映射到容器内 8090 端口
volumes:
- ./beszel_data:/beszel_data # 持久化存储数据到宿主机 ./beszel_data 目录
- ./beszel_socket:/beszel_socket # 将 socket 文件映射到宿主机 ./beszel_socket 目录
三、执行容器运行命令
docker-compose up -d #运行容器
docker-compose ps #查看是否开启成功
正常启动如下所示
docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
beszel henrygd/beszel:latest "/beszel serve --htt…" beszel 9 seconds ago Up 7 seconds 0.0.0.0:8090->8090/tcp, [::]:8090->8090/tcp
四、打开web页面使用hub
成功以后需要打开自己相应的端口(8090)防火墙就可以web端访问hub了
http://ip:8090
首先配置管理员信息
然后我们新增客户端agent
可以在本机也可以在其他主机添加
我们主要注意
KEY:公钥
TOKEN: 令牌
HUB_URL: hub 服务的访问地址即可
mkdir beszel-agent;cd beszel-agent #创建一个目录,并进入此目录
然后再新建docker-compose.yml
vim docker-compose.yml
services:
beszel-agent:
image: henrygd/beszel-agent # 使用 henrygd/beszel-agent 镜像
container_name: beszel-agent # 容器名称为 beszel-agent
restart: always # 容器异常退出时自动重启
network_mode: host # 使用宿主机网络模式,方便访问本机端口和资源
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # 挂载宿主机 Docker 套接字(只读),用于获取容器运行状态
- ./beszel_agent_data:/var/lib/beszel-agent # 将数据持久化到宿主机 ./beszel_agent_data 目录
environment:
LISTEN: 45876 # agent 监听的端口(默认 45876)
KEY: # 与 hub 配置的 KEY 保持一致,用于安全通信
TOKEN: # 可选的认证 Token,用于加强安全性
HUB_URL: http://localhost:8090 # hub 服务的访问地址(例如 http://<hub服务器IP>:8090)本机可以使用http://localhost:8090,其他主机请填相应的ip
这样即可监控成功
绑定域名
绑定域名可以参考
视频教程
B站
YouTube
NginxProxyManager https://duan.yyzq.eu.org//npm-ch 绑定完域名配置好证书就可以用域名来访问了有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
欢迎关注我们的微信公众号!
评论区