标签搜索

目 录CONTENT

文章目录

Docker部署一个轻量易用的服务器监控-Beszel

yyzq
2025-09-09 / 0 评论 / 2 点赞 / 56 阅读 / 1,717 字

前言

在日常运维或者个人服务器管理中,实时监控系统状态是一项必不可少的工作。无论是 CPU、内存、磁盘使用率,还是容器与服务的运行情况,都需要一个直观、轻量、易于部署的监控面板来帮助我们快速掌握服务器健康状况。Beszel 就是一款开源的轻量级服务器监控工具,支持通过 Docker 快速部署,几乎零配置即可使用。它界面清爽,功能专注,适合个人开发者、小型团队以及家庭 NAS 用户,能够在本地或者远程环境中轻松运行,让你随时随地掌控服务器动态。
类似的项目之前还分享过哪吒监控有兴趣的可以了解下

项目简介

什么是 Beszel?
Beszel 是一个轻量级的服务器监控平台,包含 Docker 统计信息、历史数据和警报功能。
它拥有友好的 Web 界面、简单的配置,并且开箱即用。它支持自动备份、多用户、OAuth 身份验证和 API 访问。

项目截图

image-1757384617257
image-1757384578861

功能

  1. 轻量级: 比主要解决方案更小,资源占用更少。
  2. 简单: 易于设置,无需公网暴露。
  3. Docker 统计: 跟踪每个容器的 CPU、内存和网络使用历史。
  4. 警报: 可配置 CPU、内存、磁盘、带宽、温度、负载平均值和状态的警报。
  5. 多用户: 用户管理自己的系统。管理员可以在用户之间共享系统。
  6. OAuth / OIDC: 支持多种 OAuth2 提供程序。可以禁用密码验证。
  7. 自动备份: 从磁盘或 S3 兼容的存储保存和恢复数据。
  8. 电池: 主机系统电池电量。

支持的指标

  • CPU 使用率

    • 主机系统
    • Docker / Podman 容器
  • 内存使用情况

    • 主机系统和容器
    • 包括交换空间和 ZFS ARC
  • 磁盘使用情况

    • 主机系统
    • 支持多个分区和设备
  • 磁盘 I/O

    • 主机系统
    • 支持多个分区和设备
  • 网络使用情况

    • 主机系统和容器
  • 平均负载

    • 主机系统
  • 温度

    • 主机系统传感器
  • GPU 使用情况/温度/功耗

    • 仅限 Nvidia 和 AMD
    • 必须使用二进制代理
  • 电池

    • 主机系统电池充电

架构

Beszel 由两个主要组件组成:中心 (hub)代理 (agent)

  • 中心 (hub): 一个基于 PocketBase 构建的 Web 应用程序,提供用于查看和管理连接系统的仪表板。
  • 代理 (agent): 在您要监控的每个系统上运行,并将系统指标传递给中心。
    image-1757385355996

部署流程

1.我们先在一台服务器上部署hub
2.然后再添加agent

部署方法

使用Docker安装

本教程使用docker的方式安装部署,简单便捷
164b6ac419e23bc5390dc46601a202bf

准备条件

1)一台服务器或者NAS(理论上其他NAS都可以)

我们使用VPS来演示
由于中心(hub)需要有公网IP,所以我们最好将hub部署到服务器
需要vps的可以看以下信息
莱卡云官网

2)本项目使用到的开源项目

https://github.com/henrygd/beszel
image-1757387350856
目前有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

image-1757386020063
首先配置管理员信息
image-1757386088590

然后我们新增客户端agent
可以在本机也可以在其他主机添加
image-1757386430536
我们主要注意
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

这样即可监控成功
image-1757386736926

绑定域名

绑定域名可以参考

视频教程

B站

YouTube

NginxProxyManager https://duan.yyzq.eu.org//npm-ch 绑定完域名配置好证书就可以用域名来访问了

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

2

评论区