Gname

广告

DangYun

广告

Docker搭建Beszel服务器监控面板教程

美国云服务器推荐

日常管理云服务器时,我们经常要通过 SSH 登录,再用 top、free、df 等命令查看 CPU、内存和磁盘情况。只有一台服务器还好,VPS、网站服务器和 Docker 主机一多,逐台检查就比较费时间。

Beszel 可以把这些服务器放进同一个 Web 面板,查看当前状态和历史变化,也能监控 Docker 容器。本教程使用 Docker Compose 部署 Beszel Hub,再在需要监控的服务器上部署 Agent。

Beszel 服务器监控面板首页

一、Beszel 是怎么工作的?

Beszel 采用 Hub + Agent 的方式运行。Hub 提供管理后台并保存监控数据;Agent 安装在目标服务器上,负责采集系统和容器信息。

先部署一套 Hub,再给每台需要监控的服务器安装 Agent,就可以集中查看 CPU、内存、磁盘、网络等指标。个人 VPS、多台云服务器、Docker 主机和小规模业务服务器都可以使用。

二、准备搭建环境

本次使用 Linux 云服务器部署 Hub,参考环境如下:

项目 参考配置
CPU 1 核及以上
内存 1GB 及以上
硬盘 20GB 及以上
系统 Debian 12
部署方式 Docker Compose
Hub 默认端口 8090
Agent 默认监听端口 45876

本次演示使用莱卡云 Linux 云服务器。仅部署 Hub、监控少量机器时,可以先从基础配置开始;如果同一台服务器还运行网站、数据库等项目,应给原有业务留足资源。

莱卡云官网:查看云服务器

新客福利:新用户使用本站专属莱卡云优惠码idcspy购买官网任意产品享8.5折!续费同价!

三、安装 Docker 并创建项目目录

服务器需要提前安装 Docker 和 Docker Compose。已经安装的,可以先检查版本:

docker --version
docker compose version

两个命令都能正常返回版本信息后,创建 Hub 目录:

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

Hub 的 Compose 文件和持久化数据都放在这个目录中,后期升级、备份和迁移会更方便。

四、部署 Beszel Hub

在 /opt/beszel 中创建配置文件:

nano docker-compose.yml

写入以下内容,注意保留 YAML 缩进:

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

将 APP_URL 中的服务器IP改为实际访问 Hub 使用的地址。例如,服务器 IP 为 192.0.2.10,就填写 http://192.0.2.10:8090;以后配置了域名和 HTTPS,再改成对应的域名地址。

./beszel_data用于保存 Hub 数据,升级或重新创建容器时不要删除。上述目录挂载、APP_URL和 8090 端口与 Beszel 当前的 Docker 部署方式一致。

启动 Hub:

docker compose up -d
docker compose ps

如果启动失败,查看最近的日志:

docker compose logs --tail=100

需要持续观察时使用:

docker compose logs -f

Hub 容器启动成功及 docker compose ps 结果

五、打开管理后台

浏览器访问:

http://服务器IP:8090

首次进入时,按照页面提示创建管理员账号。建议使用独立的高强度密码,不要与服务器登录密码相同。

Beszel 首次访问及管理员账号创建页面

8090 端口打不开怎么办?

先在 Hub 所在服务器测试本机访问:

curl -v http://127.0.0.1:8090
ss -lntp | grep 8090
docker compose ps

如果本机能访问、公网打不开,再检查云服务器安全组和系统防火墙是否允许 8090 端口。若容器没有正常运行,优先查看 Compose 日志。这里仅建议在初次测试时开放必要访问;长期使用可以配置域名、HTTPS,并限制后台访问来源。

六、在 Hub 中添加服务器

登录后台,点击 Add System,按照页面提示添加要监控的服务器。Beszel 会提供 Agent 所需的连接配置,其中常见参数包括:

  • KEY:Hub 提供的公钥;
  • TOKEN:Agent 注册或认证使用的令牌;
  • HUB_URL:Agent 连接 Hub 所使用的地址。

这些内容应从自己的 Beszel 后台获取。官方也提供可复制的 Agent Compose 配置,实际部署时优先使用后台生成的内容,不要自行编造密钥或令牌。

Hub 后台 Add System 页面及 Agent 配置

七、部署 Beszel Agent

登录需要被监控的服务器,创建目录:

mkdir -p /opt/beszel-agent
cd /opt/beszel-agent
nano docker-compose.yml

写入以下配置:

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 后台生成的公钥>"
      HUB_URL: "<Beszel Hub 地址>"
      TOKEN: "<Beszel 后台生成的令牌>"

把尖括号中的内容替换为自己后台生成的实际值,再启动 Agent:

docker compose up -d
docker compose ps

查看日志:

docker compose logs --tail=100

配置正常后,稍等片刻,Hub 后台就能看到对应服务器的状态。上述参数和目录结构与 Beszel 官方的 Docker Agent 示例一致。

Agent 部署成功及 Hub 显示服务器在线

Docker Socket 有什么作用?

配置中的:

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

用于让 Agent 获取宿主机的 Docker 容器信息。:ro表示以只读方式挂载,但 Docker Socket 仍属于敏感接口,应只在可信服务器上使用,并妥善保护 Agent 容器。

如果不需要监控 Docker 容器,可以去掉这行挂载,继续使用普通的服务器资源监控。

为什么使用 host 网络?

官方示例使用 network_mode: host,主要是为了获取宿主机网络接口的统计信息。使用这一模式时,Agent 的监听端口会直接作用于宿主机,不需要再写 ports 映射。若要调整端口,可以修改 LISTEN,然后重新运行 docker compose up -d。

另外,Beszel 支持 Hub 主动连接 Agent,也支持 Agent 主动通过 WebSocket 连接 Hub。实际需要放行哪些端口,应结合后台采用的连接方式判断,不要默认把 45876 向整个公网开放。

八、查看服务器监控数据

Agent 上线后,可以在 Hub 中查看服务器的 CPU、系统负载、内存、Swap、磁盘、网络流量,以及 Docker 容器的运行情况。

例如,网站偶尔变慢,可以回看当时 CPU 是否升高;磁盘空间不足,可以观察容量是持续增长还是突然变化。相比临时登录服务器执行命令,历史图表更适合追查问题发生的时间。

CPU、内存、磁盘、网络及 Docker 容器监控图表

九、Agent 一直离线怎么办?

先在 Agent 所在服务器确认容器是否运行,再看日志:

docker compose ps
docker compose logs --tail=100

接着逐项核对:

  1. KEY、TOKEN是否与 Hub 后台生成的内容一致;
  2. HUB_URL是否为 Agent 能够访问的地址;
  3. Agent 使用的监听端口是否与 Hub 中填写的一致;
  4. 系统防火墙和云服务器安全组是否拦截了当前连接方式;
  5. 如果通过反向代理连接 Hub,代理是否正确处理 WebSocket。

Beszel 的两种连接方式方向不同:Hub 主动连接 Agent 时,要检查 Hub 到 Agent 的端口;Agent 主动连接 Hub 时,要检查 Agent 到 Hub 地址的访问。按实际使用的方式排查,比一味开放端口更有效。

十、配置域名和 HTTPS

临时测试可以使用 http://服务器IP:8090。准备长期使用时,可以将域名解析到 Hub 服务器,使用 Nginx 等 Web 服务反向代理至 127.0.0.1:8090,并配置 HTTPS。

完成后,把 Hub Compose 文件中的 APP_URL 改为实际地址:

APP_URL: https://monitor.example.com

再执行:

docker compose up -d

如果 Agent 通过 WebSocket 连接,反向代理还需要正确转发 WebSocket 请求,否则可能出现后台正常打开、Agent却无法上线的情况。Beszel 官方提供了对应的反向代理配置示例。

十一、安全、更新与备份

Beszel 是服务器监控后台,不建议在没有保护措施的情况下长期暴露到公网。至少应做好以下几点:

  • 使用独立的高强度管理员密码;
  • 配置 HTTPS,并按需限制后台访问来源;
  • 不要公开 KEY、TOKEN和管理员凭据;
  • 只开放当前连接方式需要的端口;
  • 定期更新 Hub、Agent并备份 Hub 数据。

更新 Hub 时,在其目录执行:

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

Agent 可在 /opt/beszel-agent 目录使用相同方式更新。升级前建议先备份,确认 Hub 和 Agent 更新后都能正常连接。

按照本文的配置,Hub 数据位于 /opt/beszel/beszel_data。需要做一致性备份或迁移时,可先安排短暂停机:

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

备份完成后回到项目目录启动:

cd /opt/beszel
docker compose up -d

备份文件还应保存到另一台服务器或其他独立位置,不要只留在当前 VPS 上。

相关阅读:

支持一键安装Docker的VPS主机推荐

Docker部署Komga教程:使用莱卡云自建漫画和电子书服务器

Hostinger VPS使用Docker安装Langflow教程

(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

主机侦探企业微信

微信扫码加好友进群

主机优惠码及时掌握

主机侦探QQ群

QQ群号:938255063

主机优惠发布与交流

温馨提示:

1、本站部分图片来源于互联网,如有侵权请联系删除。邮箱:2942802716#qq.com(#改为@)

2、本文评论没有专人回复,如果您有问题请到美国主机侦探论坛提问!

3、美国主机侦探免费为您提供美国主机购买咨询。

RakSmart美国服务器
下一篇
Beszel 首次访问及管理员账号创建页面
已经没有了
返回顶部