香港服务器部署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 | ~50MB | 1天(免费) | 需 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 分钟内完成全部部署,之后几乎零维护。