前言

手里有几台服务器的人,多多少少会经历这个阶段:服务多了之后,不知道哪台现在负载高、哪个容器挂了、硬盘还剩多少空间。登进去看太费时间,Prometheus + Grafana 搭一套又太重,小团队或者个人根本没有精力维护这一套。

Beszel 就是这个场景下的选择。它是一个专门做轻量级服务器监控的工具,安装方式是 Docker,一个配置文件启动,支持同时管理多台服务器。能监控 CPU、内存、磁盘、网络等基础指标,也能深入到 Docker 容器内部看每个容器的状态。界面简洁,占用资源极低,不需要额外数据库。
在这里插入图片描述

部署逻辑是中心 hub + agent 模式:一台装 Beszel 作为主控端,其他要监控的服务器各装一个 agent,连进来之后在同一个界面里看所有机器的状态。支持 Linux Docker、Linux 二进制、Windows 二进制等多种客户端形式。

这篇说说怎么装和基本配置。

1.什么是Beszel?

Beszel是一个由开发者henrygd创建的轻量级、Docker原生的服务器与容器监控平台,强调简洁、开箱即用和快速部署。它虽未成为主流工具,但在特定场景下(如个人VPS监控、临时DevOps看板)具有实用价值。其名称蕴含“看见不可见之物”的隐喻,契合监控系统的本质使命。

Docker 镜像存在

  • 镜像地址:henrygd/beszel(可在Docker Hub搜索验证)
  • 启动端口:默认8090
  • 功能描述(根据你之前的描述):
  • 监控主机资源(CPU、内存、磁盘、网络)
  • 收集Docker容器统计信息
  • 存储历史数据
  • 支持告警(Alerting)
  • 提供 Web 界面
  • 支持多用户、OAuth 登录、API 访问、自动备份

部署方式简单

通过docker-compose.yml即可一键启动,依赖本地挂载目录(beszel_data存数据,beszel_socket用于访问Docker Daemon)。

定位明确
面向轻量级、低运维成本场景,适合个人或小团队快速搭建监控看板,避免复杂配置。

2.前提条件

2.1ssh远程连接到极空间

  • 开启【SSH 服务】
  • 使用终端(Windows PowerShell / Mac Terminal)登录:
ssh root@IP

没有ssh的小伙伴可以参考这篇文章:

连接成功:极空间别再吃灰了!开启SSH,秒变全能服务器! - cpolar 极点云官网

957c00e3b3f0ce8aa95df96aa41b8715

2.2验证docker是否开启

使用命令:

docker -v
systemctl status -v

没有docker的小伙伴可以参考这篇文章:极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手! - cpolar 极点云官网

image-20251017103712618

3.安装Beszel

首先创建一下安装的目录并进入到该目录:

sudo mkdir -p /docker/beszel
cd /docker/beszel

81aa7f9e7409e2e5b1d2baf1dfab4cd7

创建并编辑 docker-compose.yml文件:

version: "3"
services:
  beszel:
    image: henrygd/beszel
    container_name: beszel
    restart: unless-stopped
    ports:
      - 8091:8090
    volumes:
      - ./beszel_data:/beszel_data
      - ./beszel_socket:/beszel_socket

启动容器:

docker-compose up -d

290150576c397f32f09152c55d9f2ab7

部署完成后,在浏览器中输入 http://极空间IP:8091 就能看到beszel的界面:

44b2eff8966762aebf29a8d6cea189a1

4.使用Beszel

第一次登录,先注册账户密码:

229f96fa53a5ce34c1a160ca5e0b23ab

进来页面就是这样的啦:

image-20260414174623380

跟我开始添加被监控系统吧!

使用docker命令在被监控主机上部署agent服务。等服务启动后,添加的客户端数据会显示在页面中:

docker run -d --name beszel-agent --network host --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock:ro -v beszel_agent_data:/var/lib/beszel-agent -e KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEVghS28S9ON4Ppffa2K2JgBiqSiSACPKk6GTYJwnfe/" -e LISTEN=45876 -e TOKEN="1380-d81b442ca4-2275-dfc4219154" -e HUB_URL="http://192.168.50.213:8091" henrygd/beszel-agent

20357ead5e44a64ddbe8d2463ffc2453

a5fc7be5374a21cfe48f7c88acccf076

添加执行命令的主机ip,然后点击"添加系统":

8beb7e5e0244466f2bf4e88866f4040a

回到主页面刷新就可以看到所监控主机啦啦!

80ace1048c580a5e998d524062bac617

没有docker的小伙伴还可以使用二进制方式,有很多形式,我这里演示windows服务:

& iwr -useb https://get.beszel.dev -OutFile "$env:TEMP\install-agent.ps1"; & Powershell -ExecutionPolicy Bypass -File "$env:TEMP\install-agent.ps1" -Key "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEVghS28S9ON4Ppffa2K2JgBiqSiSACPKk6GTYJwnfe/" -Port 45876 -Token "1380-d81b442ca4-2275-dfc4219154" -Url "http://192.168.50.213:8091"

322062a7d5ec8be979623549597e434d

900424d32b9c5b8ca19a83fa0fea2c8c

添加windows信息:

6f842fee964050633556ffdb6575c4e6

添加后windows信息就显示成功啦!

420e937fa29e6f1916aafaba50129cbf

点击刚刚填加的客户端,可以查看具体的监控指标:

image-20260414175352808

点击右上角“所以容器”:

image-20260414175435705

可以看见本机所部署的docker容器详细信息:

image-20260414175504947

还可以查看详细日志:

image-20260414175532994

点击右上角如图所示:

image-20260414175601195

可以查看设备更多信息:

image-20260414175616029

切换多种语言:

image-20260414175634114

在上一节中,我们成功在本地服务器上部署了Beszel —— 一个轻量级、开箱即用的多服务器监控平台。通过docker-compose启动后,只需访问http://localhost:8091,即可查看主机与容器的实时状态、历史数据及告警信息。然而,这一便捷的监控能力目前仅限于内网环境:如果你身处办公室、家中或任何非服务器所在网络的位置,将无法直接访问该Web界面。

对于远程运维、异地团队协作或临时调试场景,我们亟需一种安全、稳定的方式,将运行在内网的Beszel服务暴露到公网。此时,传统的方案如配置公网IP、端口映射(NAT)、DDNS或反向代理虽可行,但往往涉及复杂的路由器设置、云服务商限制,甚至安全隐患。

为此,我们可以借助一款现代化的内网穿透工具 ——cpolar。

5.安装cpolar实现随时随地开发

5.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

5.2 部署cpolar

cpolar可以将你本地电脑中的服务(如SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

image-20250725104019896

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

6.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:beszel,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8091
  • 域名类型:随机域名
  • 地区:选择China Top

image-20260415104916552

打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20260415105011667

访问成功:

image-20260415105053112

7.保留固定公网地址

使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。

image-20250918151358733

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是beszel,大家可以自定义。填写备注信息,点击保留。

image-20260415105444740

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20260415105550851

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20260415105621894

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20260415105637089

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20260415105712165

总结

Beszel 适合这些场景:管理几台到十几台服务器、不想维护复杂监控体系、小团队或者个人开发者需要快速看到机器状态。它的优势是搭起来快、界面清爽、不占资源;局限是功能不如 Prometheus 丰富,告警和可视化能力有限,不适合需要精细化监控的生产环境。

用下来最直接的价值是把多台服务器的状态收拢到一个界面里,不需要逐台登录去看。在 NAS 或者软路由上跑也不占多少资源,配一个 cpolar 穿透之后出门在外也能看到,省得临时要去查状态还得找 VPN。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐