香港服务器部署Beszel:比Netdata更轻量的多服务器监控仪表盘完整配置

香港服务器部署Beszel:比Netdata更轻量的多服务器监控仪表盘完整配置

Netdata 实时监控能力强大,但单机占用约 50MB 内存,多台服务器聚合还需要额外配置 Parent 节点。Grafana + Prometheus 功能全面,但安装配置复杂,轻量 VPS 上运行约需 500MB 以上内存。Beszel 是 2024 年兴起的轻量开源监控工具,Hub + Agent 架构,Agent 仅约 10MB 内存,Hub 提供简洁的多服务器统一仪表盘,是中小规模服务器监控的极简之选。


一、Beszel 架构

<code">
Beszel Hub(运行在香港 VPS,提供 Web 界面)
    │  接收来自各 Agent 的数据
    ├──← Agent(香港服务器1,~10MB 内存)
    ├──← Agent(香港服务器2)
    ├──← Agent(新加坡服务器)
    └──← Agent(美国服务器)

特点:
- Hub 存储历史数据(SQLite)
- Agent 轻量,只采集本机数据
- Agent → Hub 通过 SSH 隧道传输,无需开放额外端口
- Web 界面:实时图表 + 历史趋势 + 简单告警

二、部署 Beszel Hub(Docker)

<code"># /opt/beszel/docker-compose.yml
version: '3.8'

services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    ports:
      - "127.0.0.1:8090:8090"
    volumes:
      - /opt/beszel/data:/beszel_data
    environment:
      # 可选:禁止注册新用户(首次使用后关闭)
      - DISABLE_PASSWORD_AUTH=false
<code"># 启动
mkdir -p /opt/beszel/data
cd /opt/beszel && docker compose up -d

# Nginx 反向代理
# /etc/nginx/sites-available/monitor.yourdomain.com
server {
    listen 443 ssl http2;
    server_name monitor.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/monitor.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/monitor.yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# 首次访问 https://monitor.yourdomain.com 注册管理员账号

三、在被监控服务器上安装 Agent

<code"># 方法一:二进制安装(推荐,内存占用最低)
curl -sL https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-agent.sh \
  | bash -s -- -p 45876 -k "Hub 提供的公钥"

# 方法二:Docker 安装
docker run -d \
  --name beszel-agent \
  --restart unless-stopped \
  --network host \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -e KEY="从 Hub 界面复制的公钥" \
  -e PORT=45876 \
  henrygd/beszel-agent:latest
<code"># 在 Beszel Hub 界面添加服务器:
# Systems → Add System
# 配置项:
# - Name: HK-Web-Server
# - Host: 服务器IP(或内网IP,如通过Tailscale/Headscale组网)
# - Port: 45876(Agent 监听端口)
# - 复制 Hub 公钥到被监控服务器(Agent 安装时已填入)

# Hub 通过 SSH 连接 Agent,无需在被监控服务器开放额外公网端口
# Agent 端口只需对 Hub 所在 IP 可访问即可

四、监控指标覆盖

指标类别具体指标
CPU使用率、核心温度(硬件支持时)
内存使用量、Swap 使用量、缓存
磁盘使用率、读写 IOPS、读写带宽
网络入流量、出流量(按网卡)
系统负载均值、运行时间
Docker 容器各容器的 CPU/内存(需挂载 docker.sock)

五、告警配置

<code">
在 Beszel Hub 界面配置告警:
Settings → Notifications

支持的告警渠道:
- Telegram(填写 Bot Token + Chat ID)
- Discord Webhook
- Slack Webhook
- 自定义 Webhook(可配置为飞书/钉钉格式)
- Email(SMTP)
- Gotify(自托管推送通知)

告警规则配置:
Systems → 点击服务器 → Alerts → Add Alert
- CPU 使用率 > 85% 持续 5 分钟 → 告警
- 内存使用率 > 90% → 告警
- 磁盘使用率 > 80% → 告警
- 服务器离线 > 2 分钟 → 告警
- 网络流量异常(可设定阈值)

六、Beszel vs 同类工具对比

工具Agent 内存历史数据多服务器Docker 监控配置复杂度
Beszel~10MB✅ SQLite✅ 统一 Hub✅极低
Netdata~50MB1天(免费)需 Parent 配置✅低
Grafana+Prometheus~100MB✅ 无限✅ 多 Target需 Exporter高
Zabbix~30MB✅✅需插件高
Uptime Kuma~50MB✅❌(不采集指标)✅极低

七、数据保留与备份

<code"># Beszel 使用 SQLite 存储历史数据
# 默认保留 90 天(可在 Settings 中修改)

# 备份数据库
docker exec beszel cp /beszel_data/beszel.db /beszel_data/beszel.db.bak
# 或
cp /opt/beszel/data/beszel.db /backup/beszel/beszel-$(date +%Y%m%d).db

# 定时备份
echo "0 4 * * * root cp /opt/beszel/data/beszel.db /backup/beszel/beszel-\$(date +\%Y\%m\%d).db" >> /etc/crontab

八、嵌入状态页(公开监控)

<code">
Beszel 支持将服务器状态嵌入到网页或生成公开链接:

1. Systems → 点击服务器 → Share
2. 生成公开分享链接(只读,无需登录)
3. 可嵌入为 iframe 显示在状态页

适合:
- 对客户/团队展示服务器运行状态
- 与 Uptime Kuma 的状态页结合
  (Uptime Kuma 展示服务可用性,Beszel 展示资源使用情况)

九、总结

Beszel 是 2024~2025 年快速崛起的监控工具,填补了「Netdata 太重、Grafana+Prometheus 太复杂、Uptime Kuma 不采集资源指标」之间的空白。对于管理 3~20 台香港/海外服务器的团队,Beszel 的 Hub + 轻量 Agent 架构是目前最省心的多服务器资源监控方案,5 分钟内完成全部部署,之后几乎零维护。

Telegram