欢迎光临
我们一直在努力

使用 Docker 搭建 Beszel 服务器监控面板:轻量级 VPS 与容器监控教程

在日常管理云服务器时,我们经常需要通过 SSH 登录服务器,再使用 topfreedf 等命令查看 CPU、内存和磁盘使用情况。

如果只有一台服务器还比较方便,但随着 VPS、网站服务器或者 Docker 主机越来越多,每台服务器逐一登录检查就会比较麻烦。

Beszel 是一款轻量级服务器监控平台,可以通过 Web 页面集中查看多台服务器的运行状态,同时还支持 Docker 容器资源监控。

如果手上有多台 VPS、云服务器或者 Docker 主机,可以通过 Beszel 搭建一个比较直观的服务器监控面板。

1. 项目介绍

Beszel 主要采用 Hub + Agent 的方式工作。

Beszel Hub 负责提供 Web 管理后台以及保存监控数据,Beszel Agent 则安装在需要监控的服务器上,用于采集 CPU、内存、磁盘、网络以及 Docker 容器等运行信息。

简单来说,只需要先部署一套 Beszel Hub,然后在其他服务器安装 Agent,就可以在一个后台中统一查看多台服务器的运行状态。

Beszel 比较适合以下场景:

  • 个人 VPS 监控
  • 多台云服务器集中监控
  • Docker 主机资源监控
  • 网站服务器状态监控
  • 开发测试服务器
  • 家庭实验室
  • 小规模业务服务器

相比每次通过 SSH 登录服务器手动检查,Beszel 可以保存历史监控数据,更方便观察 CPU、内存、磁盘以及网络流量的变化趋势。

2. 相关地址

GitHub 项目: https://github.com/henrygd/beszel

Beszel 官方文档: https://beszel.dev

3. 搭建环境

本次教程使用 Linux 云服务器,通过 Docker Compose 部署 Beszel Hub。

服务器: 本次为了方便演示,使用莱卡云 Linux 云服务器进行搭建。

查看官网购买链接: https://www.lcayun.com/&aff=IQITNBPM

9折优惠码bloglcayun

本次参考环境:

  • CPU:1 核及以上
  • 内存:1GB 及以上
  • 硬盘:20GB 及以上
  • 操作系统:Debian 12
  • Docker:需要
  • Docker Compose:需要
  • Beszel Hub 默认端口:8090
  • Beszel Agent 默认端口:45876

如果只是部署 Beszel Hub 并监控少量服务器,对服务器配置要求通常不会特别高。

如果服务器同时还需要运行网站、数据库、Redis 或其他 Docker 项目,建议根据实际业务负载适当增加 CPU、内存和磁盘配置。

4. 搭建视频

哔哩哔哩:

如果更习惯跟着视频操作,可以先观看完整搭建过程,再配合下面的文字教程完成部署。

5. 正式搭建

5.1 安装 Docker 和 Docker Compose

本文使用 Docker Compose 部署 Beszel,因此服务器需要提前安装 Docker 和 Docker Compose。

如果服务器还没有安装,可以参考本站之前整理的教程:

安装教程: 服务器上安装docker和docker-compose教程

已经安装完成的用户,可以检查 Docker 版本:

docker --version

检查 Docker Compose:

docker compose version

如果两个命令都能够正常返回版本信息,就可以继续下面的 Beszel 部署。

5.2 创建 Beszel 项目目录

创建 Beszel 目录:

mkdir -p /opt/beszel
cd /opt/beszel

后续的 Docker Compose 配置以及 Beszel 数据都可以放在这个目录中,方便后期升级、备份和迁移。

5.3 创建 Docker Compose 配置

创建 docker-compose.yml

nano docker-compose.yml

写入以下配置:

services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    environment:
      APP_URL: http://服务器IP:8090
    ports:
      - "8090:8090"
    volumes:
      - ./beszel_data:/beszel_data

需要把:

http://服务器IP:8090

修改成自己实际使用的 Beszel Hub 地址。

例如服务器 IP 为 192.0.2.10,则可以填写:

APP_URL: http://192.0.2.10:8090

如果后续使用域名并配置 HTTPS,则可以改成:

APP_URL: https://monitor.example.com

./beszel_data 是 Beszel 的数据持久化目录,后续升级或者重新创建容器时不要随意删除。

5.4 启动 Beszel

/opt/beszel 目录执行:

docker compose up -d

查看运行状态:

docker compose ps

也可以使用:

docker ps

如果 Beszel 正常运行,通常可以看到 8090 端口已经映射。

5.5 查看运行日志

如果容器没有正常启动,可以查看日志:

docker logs beszel

也可以查看最近 100 行:

docker compose logs --tail=100

实时查看日志:

docker compose logs -f

确认没有明显错误后,就可以进入 Beszel 管理后台。

5.6 访问 Beszel 管理后台

浏览器访问:

http://服务器IP:8090

例如:

http://192.0.2.10:8090

首次访问时,根据页面提示创建管理员账号即可。

建议使用独立的高强度密码,不要直接和服务器 SSH 密码保持一致。

5.7 8090 端口打不开怎么办?

如果浏览器无法访问 Beszel,可以先在服务器本机测试:

curl -v http://127.0.0.1:8090

检查端口监听:

ss -lntp | grep 8090

检查 Docker 容器:

docker ps

如果服务器本机能够访问,但是公网无法打开,则重点检查:

  • 云服务器安全组
  • UFW
  • firewalld
  • iptables
  • 上游网络策略

如果出现 Connection refusedConnection timed out,可以参考本站之前发布的端口排查教程:

相关阅读: 云服务器端口不通怎么办?Connection refused 与 timed out 排查教程

6. 添加需要监控的服务器

Beszel Hub 部署完成以后,就可以添加需要监控的服务器。

登录 Beszel 后台,找到 Add System,根据页面提示创建新的监控节点。

Beszel 会为当前服务器生成 Agent 所需要的连接信息。

常见参数包括:

  • KEY
  • TOKEN
  • HUB_URL

其中 KEYTOKEN 用于 Agent 与 Hub 之间的认证,HUB_URL 则是 Beszel Hub 的访问地址。

实际部署时建议优先使用 Beszel 后台生成的配置,不要手工随意生成 KEY 或 TOKEN。

7. 部署 Beszel Agent

进入需要被监控的服务器。

创建目录:

mkdir -p /opt/beszel-agent
cd /opt/beszel-agent

创建配置文件:

nano docker-compose.yml

Agent 配置可以参考下面的结构:

services:
  beszel-agent:
    image: henrygd/beszel-agent:latest
    container_name: beszel-agent
    restart: unless-stopped
    network_mode: host
    volumes:
      - ./beszel_agent_data:/var/lib/beszel-agent
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      LISTEN: 45876
      KEY: "<Beszel后台生成的KEY>"
      HUB_URL: "<Beszel Hub地址>"
      TOKEN: "<Beszel后台生成的TOKEN>"

这里的 KEYTOKENHUB_URL 必须替换成自己 Beszel 后台实际生成的内容。

不要直接照抄示例中的占位值。

8. 启动 Beszel Agent

执行:

docker compose up -d

查看 Agent 状态:

docker compose ps

也可以:

docker ps | grep beszel

如果需要查看 Agent 日志:

docker logs beszel-agent

配置正常的情况下,稍等片刻后,就可以在 Beszel Hub 后台看到对应服务器上线。

9. Docker Socket 有什么作用?

Agent 配置中使用了:

/var/run/docker.sock:/var/run/docker.sock:ro

它主要用于让 Beszel Agent 获取宿主机上的 Docker 容器信息。

其中 :ro 代表只读挂载。

如果服务器运行了 Docker 容器,Beszel 可以进一步查看容器的运行状态以及相关资源使用情况。

如果服务器没有运行 Docker,也不会影响普通的 CPU、内存、磁盘和网络资源监控。

10. 为什么 Agent 使用 host 网络?

Agent 配置中使用:

network_mode: host

主要是为了让 Agent 更方便地获取宿主机网络接口等相关信息。

默认情况下 Agent 监听端口为 45876

如果需要修改 Agent 监听端口,可以修改 Compose 中的:

LISTEN: 45876

例如修改成:

LISTEN: 45877

修改完成后重新运行:

docker compose up -d

即可应用新的配置。

11. 查看服务器监控数据

Agent 成功接入 Beszel Hub 后,就可以在后台查看服务器资源状态。

通常可以查看:

  • CPU 使用率
  • 系统负载
  • 内存使用情况
  • Swap 使用情况
  • 磁盘使用情况
  • 磁盘 I/O
  • 网络流量
  • 服务器运行时间
  • Docker 容器状态

例如服务器偶尔出现 CPU 突然升高、内存持续增长、磁盘空间不足或者网络流量异常,通过历史监控数据会更加容易定位问题发生的时间。

相比每次登录 SSH 手动执行 topfree -hdf -h 等命令,监控面板更适合长期观察服务器状态。

12. Agent 一直显示离线怎么办?

如果 Beszel Hub 可以正常访问,但是添加的服务器一直处于离线状态,可以先检查 Agent。

查看 Agent 容器:

docker ps | grep beszel

查看日志:

docker logs beszel-agent

重点检查以下内容:

  • KEY 是否正确
  • TOKEN 是否正确
  • HUB_URL 是否正确
  • Agent 是否可以访问 Hub
  • 45876 端口是否正常
  • 系统防火墙是否存在拦截
  • 云服务器安全组是否存在限制

如果使用 UFW,可以查看:

ufw status

如果使用 firewalld,可以查看:

firewall-cmd --list-all

如果 Agent 日志中已经出现明确报错,优先根据日志提示进行处理。

13. 给 Beszel 配置域名

如果只是临时测试,可以直接使用:

http://服务器IP:8090

如果准备长期使用,可以配置独立域名,例如:

monitor.example.com

然后使用 Nginx 等 Web 服务反向代理到:

127.0.0.1:8090

并配置 HTTPS。

完成域名配置以后,将 Docker Compose 中的 APP_URL 修改成实际域名:

APP_URL: https://monitor.example.com

然后重新运行:

docker compose up -d

即可。

14. 安全建议

Beszel 属于服务器管理和监控后台,不建议在没有任何保护的情况下长期暴露到公网。

建议做好以下措施:

  • 使用高强度管理员密码
  • 配置 HTTPS
  • 不要公开 KEY 和 TOKEN
  • 不需要的端口保持关闭
  • 根据实际需求限制后台访问来源
  • 定期更新 Beszel
  • 定期备份监控数据

如果 Beszel 只提供自己使用,也可以通过内网、VPN 或防火墙限制来源 IP 等方式进一步减少公网暴露。

15. 更新 Beszel

进入 Hub 目录:

cd /opt/beszel

拉取最新镜像:

docker compose pull

重新创建容器:

docker compose up -d

查看运行状态:

docker compose ps

Beszel Agent 也可以按照相同方法更新:

cd /opt/beszel-agent
docker compose pull
docker compose up -d

建议升级之前先做好重要数据备份。

16. 备份 Beszel

按照本文部署方式,Beszel Hub 数据主要保存在:

/opt/beszel/beszel_data

可以直接备份整个项目目录:

cd /opt
tar -czf beszel-backup-$(date +%Y%m%d).tar.gz beszel/

如果以后需要迁移服务器,可以先停止 Beszel:

cd /opt/beszel
docker compose down

然后将 docker-compose.ymlbeszel_data 等相关文件复制到新的服务器。

进入新服务器对应目录后重新启动:

docker compose up -d

即可恢复。

17. Beszel 适合什么服务器配置?

如果只是部署一个 Beszel Hub,并监控少量 VPS,可以先从比较基础的服务器配置开始。

例如:

  • 1 核 CPU
  • 1GB 内存
  • 20GB 磁盘

如果接入的服务器数量比较多、历史数据保存时间较长,或者 Hub 所在服务器还同时运行网站和其他 Docker 服务,则可以适当提高配置。

本次教程使用莱卡云 Linux 云服务器完成部署。

查看官网购买链接: https://www.lcayun.com

可以根据服务器所在地区、网络线路、配置以及实际预算选择适合自己的产品。

对于 Beszel 这类轻量级 Docker 项目,不一定需要一开始就选择较高配置,可以先部署使用,再根据实际 CPU、内存和磁盘占用情况进行调整。

18. 总结

Beszel 的整体搭建流程并不复杂,首先准备 Linux 云服务器并安装 Docker,然后部署 Beszel Hub,在管理后台创建管理员账号并添加需要监控的服务器,最后在目标服务器部署 Agent 即可。

对于个人 VPS、多台云服务器、Docker 主机以及小规模业务环境来说,Beszel 可以提供一个相对轻量、直观的服务器监控方案。

如果部署过程中遇到 8090 端口无法访问、Agent 离线或者 Docker 容器无法识别等问题,建议优先检查容器状态、运行日志、端口监听、安全组和系统防火墙。

相比频繁登录每台服务器手动执行系统命令,Beszel 更适合长期集中查看服务器 CPU、内存、磁盘、网络以及 Docker 容器的运行变化。

赞(0)
未经允许不得转载:莱卡云 » 使用 Docker 搭建 Beszel 服务器监控面板:轻量级 VPS 与容器监控教程