Beszel是一款轻量级探针工具,用来监控机器的CPU/内存/磁盘/网络/Docker容器等

Github:https://github.com/henrygd/beszel(22.8k⭐)

Beszel介绍

架构

Beszel的架构非常简单,由 Hub(中心) + Agent(代理) 两个组件组成:

  • Hub:运行在主控端,提供仪表大盘、用户管理、告警配置等
  • Agent:运行在被控端,采集指标后发给 Hub

d48a91a59f72a73b25160d62c2ae1d6d

功能

  • 轻量级: 比主流解决方案(哪吒、Korami等)资源占用更少。
  • 简单: 支持Docker部署。
  • 警报: 可配置 CPU、内存、磁盘、带宽、温度、负载平均值和状态的警报。
  • 多用户: 用户管理自己的系统,管理员可以在用户之间共享系统。
  • OAuth / OIDC: 支持多种 OAuth2 提供程序。可以禁用密码验证。
  • 安全: Agent仅负责向上汇报系统资源指标,不具备任何执行宿主机命令的能力。

监控指标

  • CPU 使用率 - 主机系统和 Docker / Podman 容器。
  • 内存使用率 - 主机系统和容器,包括交换分区和 ZFS ARC。
  • 磁盘使用率 - 主机系统,支持多个分区和设备。
  • 磁盘 I/O - 主机系统,支持多个分区和设备。
  • 网络使用率 - 主机系统和容器。
  • 负载平均值 - 主机系统。
  • 温度 - 主机系统传感器。
  • GPU 使用率 / 功耗 - Nvidia, AMD, 和 Intel。
  • 电池 - 主机系统电池电量。

适合场景

适合

  • 个人开发者的 2-10 台服务器
  • Docker / Podman 环境下的容器监控
  • 低配置环境(如1c1g)

不适合

  • 大规模服务器集群
  • 复杂的监控指标与权限管理

仪表盘截图

搭建步骤

前置条件

Docker环境:请确保已经搭建好Docker环境
Nginx反向代理:本文使用NPM(Nginx Proxy Manager)工具
域名:已正常经过DNS解析的域名

Nginx反代设置

打开NPM面板,添加代理服务,填入”域名”、“IP”(我这里填的是腾讯云内网ip,不是公网ip)、“端口”、打开两个开关

切换到“SSL”标签页、申请SLL证书、打开两个开关,最后保存

Hub部署

创建数据目录

mkdir -p ~/beszel/hub && cd ~/beszel/hub

创建Hub配置

cat > docker-compose.yml << 'EOF'
services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    environment:
      APP_URL: https://yourdomain.com  # 改成实际访问的域名地址
    ports:
      - 8090:8090
    volumes:
      - ./beszel_data:/beszel_data
EOF

启动Hub服务

docker compose up -d

访问Web UI面板

为管理员账户设置高安全系数的邮箱和密码后,进入首页,点击 “添加系统”,选择“Docker”或“二进制”,点击“复制docker compose文件”或“复制Linux安装命令”后,点击“添加系统”

提示

添加系统即添加 Agent,Web UI 会自动生成 Docker Compose 配置或Linux 命令,复制后在目标机器上执行即可完成Agent部署。

Agent部署(Docker方式)

创建数据目录

mkdir -p ~/beszel/agent && cd ~/beszel/agent

创建Agent配置

cat > docker-compose.yml << 'EOF'
# 上一步复制的内容,示例如下
services:
  beszel-agent:
    image: henrygd/beszel-agent
    container_name: beszel-agent
    restart: unless-stopped
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./beszel_agent_data:/var/lib/beszel-agent
      # monitor other disks / partitions by mounting a folder in /extra-filesystems
      # - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
    environment:
      LISTEN: 45876
      KEY: 'key'
      TOKEN: token
      HUB_URL: https://yourdomain.com
EOF

启动Agent服务

docker compose up -d

Agent部署(二进制方式)

执行Linux命令

# 替换成你自己的命令,这里只是示例
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh -p 45876 -k "key" -t "token" -url "https://yourdomain.com" --china-mirrors

验证部署

在Web UI面板查看是否监控成功