服务器不多却想统一看状态?Beszel比重型监控更适合轻量运维
前言
手里有几台VPS、一台NAS、几台测试服务器时,最麻烦的不是单台机器怎么查看状态,而是每台都要单独登录。CPU高了不知道是哪台,磁盘快满了要一个个查,Docker容器状态也分散在不同主机上。
Prometheus、Grafana、Zabbix这类方案当然强大,但对个人开发者、小团队或临时项目来说,部署和维护成本并不低。很多时候,我们只是想快速看清几台服务器是否正常运行,没必要一开始就拉起一整套复杂监控体系。
Beszel适合这种轻量场景。它提供一个简洁的Web监控面板,可以集中查看多台主机的CPU、内存、磁盘、网络、负载以及Docker容器状态。服务端部署在一台设备上,其他主机通过Agent接入,整体结构比较清楚。
把Beszel部署在极空间这类NAS上也比较合适。NAS本来就适合长期在线,作为监控面板的主控端,可以持续收集和展示不同服务器的数据。后续再把Linux服务器、Windows主机或Docker节点逐步接进来,就能形成一个自己的轻量运维看板。
本文将从极空间开启SSH、确认Docker环境开始,演示Beszel的Docker Compose部署、首次账号注册、Linux Agent接入、Windows Agent接入、容器状态查看和日志查看。最后再通过 cpolar 配置公网访问地址和固定二级子域名,让这个监控面板不只在局域网可用,外出时也能随时查看服务器状态。
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)登录:
sshroot@IP没有ssh的小伙伴可以参考这篇文章:
连接成功:极空间别再吃灰了!开启SSH,秒变全能服务器! - cpolar 极点云官网
2.2验证docker是否开启
使用命令:
docker-vsystemctl status-v没有docker的小伙伴可以参考这篇文章:极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手! - cpolar 极点云官网
3.安装Beszel
首先创建一下安装的目录并进入到该目录:
sudomkdir-p/docker/beszelcd/docker/beszel创建并编辑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-composeup-d部署完成后,在浏览器中输入http://极空间IP:8091就能看到beszel的界面:
4.使用Beszel
第一次登录,先注册账户密码:
进来页面就是这样的啦:
跟我开始添加被监控系统吧!
使用docker命令在被监控主机上部署agent服务。等服务启动后,添加的客户端数据会显示在页面中:
dockerrun-d--namebeszel-agent--networkhost--restartunless-stopped-v/var/run/docker.sock:/var/run/docker.sock:ro-vbeszel_agent_data:/var/lib/beszel-agent-eKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEVghS28S9ON4Ppffa2K2JgBiqSiSACPKk6GTYJwnfe/"-eLISTEN=45876-eTOKEN="1380-d81b442ca4-2275-dfc4219154"-eHUB_URL="http://192.168.50.213:8091"henrygd/beszel-agent添加执行命令的主机ip,然后点击"添加系统":
回到主页面刷新就可以看到所监控主机啦啦!
没有docker的小伙伴还可以使用二进制方式,有很多形式,我这里演示windows服务:
&iwr-usebhttps://get.beszel.dev-OutFile"$env:TEMP\install-agent.ps1";&Powershell-ExecutionPolicyBypass-File"$env:TEMP\install-agent.ps1"-Key"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEVghS28S9ON4Ppffa2K2JgBiqSiSACPKk6GTYJwnfe/"-Port45876-Token"1380-d81b442ca4-2275-dfc4219154"-Url"http://192.168.50.213:8091"添加windows信息:
添加后windows信息就显示成功啦!
点击刚刚填加的客户端,可以查看具体的监控指标:
点击右上角“所以容器”:
可以看见本机所部署的docker容器详细信息:
还可以查看详细日志:
点击右上角如图所示:
可以查看设备更多信息:
切换多种语言:
在上一节中,我们成功在本地服务器上部署了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步骤:
使用一键脚本安装命令:
sudocurlhttps://get.cpolar.sh|sh安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudosystemctl status cpolarCpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。
6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:beszel,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:8091
- 域名类型:随机域名
- 地区:选择China Top
打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。
访问成功:
7.保留固定公网地址
使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。
点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是beszel,大家可以自定义。填写备注信息,点击保留。
登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
完成部署后,Beszel就可以作为一套轻量级多服务器监控面板使用。主控端负责集中展示数据,Agent负责采集各台主机状态,用户可以在一个页面里查看CPU、内存、磁盘、网络和Docker容器信息。
这套方案适合个人VPS管理、小型团队服务器巡检、临时项目监控和家庭实验室环境。它不追求覆盖所有企业级监控场景,但胜在部署简单、界面清楚、资源占用低,能快速解决“多台机器状态分散不好看”的问题。
配置 cpolar 后,Beszel面板可以从外部网络访问。随机域名适合临时测试,固定二级子域名更适合长期使用,方便在公司、出差途中或手机浏览器上查看服务器运行情况。
需要注意的是,监控面板会暴露主机资源、容器列表和运行状态等信息,公网访问时一定要设置强密码,不建议随意公开地址。Agent接入命令里的Key、Token和Hub地址也要妥善保存,避免被无关设备误接入。
Beszel负责把多台服务器状态集中展示,Agent负责采集各节点数据,cpolar负责补上远程访问入口。当这几部分组合起来以后,轻量运维就不再需要每台机器反复登录查看,而是可以用一个简洁面板快速掌握整体状态。