Beszel
无 Prometheus 复杂度的轻量级服务器监控。
Beszel 是最小、现代的服务器监控栈 —— 一个 hub 容器加上你想要观察的每个服务器上的小型代理。基于 SQLite + PocketBase,它提供精致的 Web UI、Docker 统计、通过 email/SMS/Telegram/Discord/Slack/Gotify 的警报,以及小于 50 MB 的资源占用。"我只想要服务器 CPU 图和警报"的答案,无需建立 Prometheus + Grafana + Alertmanager。
使用 Pier 部署
- 1 打开 Pier 控制台,点击 Add service。
- 2 从模板列表中选择 Beszel。
- 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
- 4 如需 HTTPS,请绑定域名。Traefik 会自动签发 Let's Encrypt 证书。
什么是 Beszel?
Beszel 是由 Henry Gressmann 构建的轻量级、现代、基于 Web 的服务器监控 系统。它存在于”我会 SSH 进去运行 htop”和”我会部署 Prometheus + Grafana + Alertmanager + node_exporter + Loki + cAdvisor + Pushgateway”之间的空白处。
架构是两个部分 —— 一个 hub(Web UI 加 SQLite 数据库,打包为 PocketBase 应用)和一个代理(在每个你想监控的服务器上运行的小型 Go 二进制或容器)。 Hub 发起到代理的出站连接(因此监控侧无需入站防火墙漏洞),每分钟抓取指标, 存储它们,并渲染仪表板。
你获得 CPU、内存、磁盘 I/O、网络吞吐量、系统负载、正常运行时间、每 Docker 容器统计、到每个常见聊天平台的警报、公共状态页面 —— 全部来自 50 MB hub 二进制加 10 MB 代理。
Pier 如何部署它
Pier 使用官方 henrygd/beszel 镜像。默认端口:8090(Web UI,在 Traefik
后)。数据卷挂载在 /app/data —— SQLite 数据库加 PocketBase 应用文件。
首次设置通过 Web UI 提示创建管理员用户。从那里,从 Settings → Servers 添加 服务器,在每个远程主机上运行打印的代理安装一行,指标开始流动。
要监控 Pier 主机本身,在 Pier 旁边以 network_mode: host 部署代理(本模板
中 hub 自动发现本地 Docker 守护进程用于容器统计)。
何时不要使用 Beszel
如果你已为应用程序指标运行 Prometheus / Grafana / Alertmanager,仅为主机
指标添加 Beszel 可能是多余的 —— node_exporter 在该栈内覆盖相同领域。
如果你需要亚秒级粒度用于性能调试,Netdata 专门为此构建。如果你只关心
公共 URL 是否响应,Uptime Kuma 是正确的工具。Beszel 命中特定的最佳点 ——
“我有少数服务器,我想要一个简单的仪表板加警报。”
核心功能
微小占用
Hub 容器约 50 MB RAM,代理每个约 10 MB。在 5 美元 VPS 上与其他一切舒适运行 —— 无需专用监控主机。
Hub + 代理架构
一个 Web hub 聚合来自许多远程服务器的指标。每个远程运行小型 beszel-agent 并通过 WireGuard、Tailscale 或普通 SSH 隧道连接报告。
内置 Docker 统计
每个运行 Docker 容器的 CPU、内存、网络和磁盘 I/O —— 无单独的导出器。
警报到每个聊天平台
Email、SMS(通过 Twilio)、Telegram、Discord、Slack、Gotify、ntfy、webhook。每个指标可配置阈值 + 持续时间 + 冷却时间。
SQLite 支持(PocketBase)
整个 hub 是一个二进制加一个 SQLite 文件。备份是平凡的;无需管理迁移;恢复是一份副本。
公共状态页面
为服务或车队共享只读状态页面 —— 正常运行时间百分比、最近 24 小时图表、无需身份验证。
应用场景
多 VPS 小型车队监控
你跨 Hetzner、Vultr、OVH、专用机器运行 3-30 台服务器。Beszel 将它们全部聚合到一个仪表板中。
Homelab 仪表板
你的家庭服务器车队的单一玻璃窗格 —— NAS、Proxmox 机器、Raspberry Pi、OPNsense、Synology。
SLA / 状态页面
客户的公共"X 是否在线?"页面,无需支付 StatusPage / Atlassian。
Docker 主机健康
每个容器的资源使用随时间变化 —— 找到泄漏的内存或失控的 worker 进程。
为小操作替换重型栈
Prometheus + Grafana + Alertmanager + node_exporter 对于"我想知道我的服务器是否在死"过度。Beszel 用 5% 的操作表面覆盖 90% 的小团队监控。
代码示例
curl -sL https://get.beszel.dev | sh -s -- \
--hub https://beszel.example.com \
--token <来自 hub UI 的 token> services:
beszel-agent:
image: henrygd/beszel-agent:latest
container_name: beszel-agent
restart: unless-stopped
network_mode: host
environment:
LISTEN: 45876
KEY: "你的公钥"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data:/var/lib/beszel-agent 警报:CPU
阈值:> 90%
持续:5 分钟
渠道:Discord
Webhook URL:https://discord.com/api/webhooks/... docker stop pier-beszel
tar czf beszel-backup-$(date +%Y%m%d).tgz /opt/pier/data/beszel
docker start pier-beszel 对比
| vs Prometheus + Grafana + Alertmanager | "标准"云原生栈 —— 强大、复杂、资源密集。Beszel 是小型车队不需要 PromQL 或 30 个仪表板时的更简单答案。 |
| vs Netdata | Netdata 是每主机实时监控,秒级粒度。Beszel 是多主机聚合监控,分钟级粒度。为不同目标使用两者。 |
| vs Uptime Kuma | Uptime Kuma 从外部监控端点(HTTP/HTTPS/TCP/ping)。Beszel 从内部监控服务器(CPU、RAM、Docker 统计)。配对它们 —— Kuma 用于"URL 可达?",Beszel 用于"主机健康?"。 |
| vs Zabbix | Zabbix 是重型企业监控。Beszel 是轻量级 homelab/小团队监控。不同的世界;按团队大小和指标要求选择。 |
常见问题
代理如何认证?
Beszel 收集什么指标?
保留策略?
支持的警报渠道?
多用户 / RBAC?
它与 PRTG / Nagios 有何不同?
Pier 部署什么版本?
相关服务
在你的 VPS 上部署
Beszel 是最小、现代的服务器监控栈 —— 一个 hub 容器加上你想要观察的每个服务器上的小型代理。基于 SQLite + PocketBase,它提供精致的 Web UI、Docker 统计、通过 email/SMS/Telegram/Discord/Slack/Gotify 的警报,以及小于 50 MB 的资源占用。"我只想要服务器 CPU 图和警报"的答案,无需建立 Prometheus + Grafana + Alertmanager。
部署此服务 →