你有没有过这种半夜被手机报警吵醒的经历?微信弹出一条消息:“服务器CPU飙到98%”,你迷迷糊糊爬起来,连上远程桌面,发现是某个Docker容器偷偷吃光了内存——结果查了一小时,重启完才发现只是日志没轮转。或者更糟:硬盘突然变红,系统卡死,数据丢了大半,而你根本没收到任何预警。不是不想监控,是那些商业方案太贵、太重、太难配:Zabbix要搭数据库+Web服务器+Agent,还要自己写告警规则;Datadog按主机数和指标量收费,一个月动辄三四百;Prometheus看着开源,但光是配置Alertmanager和Grafana面板就能劝退一半人。你只想知道“这台机器还活着吗?硬盘快挂了吗?哪个容器在偷吃资源?”——就这三件事,真没必要花几百块买服务。
能替代什么 / 能省多少钱
Beszel 不是来对标某一个具体软件的,它是来干掉“服务器监控付费服务”这个整类需求的。比如你正在用阿里云的云监控高级版(每月60元起)、腾讯云的可观测平台(按指标点计费,轻量级部署也要100+)、或者自建Zabbix/Netdata团队版(人力成本远超软件费)——这些钱,Beszel一分不收。它不卖SaaS服务,不收订阅费,不按节点数或存储量收费。你装在自己的Linux服务器上,它就永远属于你。一台VPS每月50元,加个Beszel监控,等于零成本获得实时CPU、内存、磁盘I/O、温度、风扇转速、GPU功耗、甚至eMMC寿命预警。如果你管着3台生产机,一年光监控服务就能省下1800元以上;要是公司有10台边缘设备,Beszel直接帮你把这块预算砍成零。而且它不锁功能:所有告警渠道(邮件、Telegram、Discord、Webhook)、所有历史数据保留时长(默认7天,可改)、所有用户权限管理(支持OAuth登录),全都在开源代码里,没有隐藏的“企业版”开关。
核心功能
- 一眼看清每台机器的“身体状况”:打开网页,左边是服务器列表,点进去就是实时仪表盘,CPU使用率曲线、内存占用柱状图、磁盘空间水位条,全都带时间轴。不是静态截图,是每5秒自动刷新的活数据。我昨天在树莓派上跑它,连HDMI显示器都没接,只用手机浏览器访问IP:8080,就能看到CPU温度从42℃慢慢升到58℃,风扇转速同步跳变,比看系统命令直观十倍。
- 容器不再是个黑盒子:它不只是监控宿主机,还会自动发现所有Docker/Podman容器,单独列出每个容器的CPU、内存、网络收发包量,还能回溯过去24小时的历史峰值。上周我有个Python脚本容器内存泄漏,Beszel的曲线图清楚显示它从200MB一路涨到1.8GB,凌晨3点自动重启后回落,这比翻docker stats日志快多了。
- 硬盘快挂了,它会提前告诉你:不仅显示剩余空间,还直接读取S.M.A.R.T.信息,把“Reallocated_Sector_Ct”、“UDMA_CRC_Error_Count”这些关键参数翻译成中文提示(虽然界面是英文,但参数名本身是行业通用缩写)。我拿一块用了四年的SSD试过,它准确标出“Wear_Leveling_Count”只剩12%,并触发邮件告警,而系统df命令还显示“可用空间充足”。这点让我特别安心。
- 多台服务器统一管理,不用挨个登录:一个Beszel Hub(中心服务)可以同时接收多个Agent(监控代理)的数据。我在家里NAS、公司测试机、还有朋友托管的VPS上都装了Agent,它们都往同一个Hub上报,登录一次就能切换查看。管理员还能给不同用户分配不同机器的查看权限,比如让运维同事只看生产环境,实习生只能看测试机。
- 告警不是摆设,能真正送到你手上:支持邮件、Telegram Bot、Discord Webhook、Slack、Pushover,甚至自定义HTTP请求。我配的是Telegram,填入Bot Token和Chat ID后,只要CPU连续5分钟超90%,立刻弹出消息:“[nas] CPU usage 94.2% for 5m”。不像某些工具告警阈值调了八遍还是收不到,Beszel的告警配置页面就三个输入框:指标名、阈值、持续时间,填完保存就行。
- 自动备份配置和历史数据:默认每天凌晨2点把整个数据库打包存到本地/var/beszel/backups,也能配S3兼容存储(比如MinIO或腾讯云COS)。我试过手动删掉Hub目录,重新拉镜像启动,再从备份恢复,10分钟内所有图表和告警记录全回来了。
三步上手
- 去官网 beszel.dev 点右上角 “Get Started”,跳转到文档页,直接点击 “Docker Compose Quick Start” , 页面会给你一段完整的docker-compose.yml代码。复制下来,新建一个文件叫 docker-compose.yml,粘贴进去,用文本编辑器打开,找到 environment 下面的 ADMIN_PASSWORD 这一行,把后面引号里的默认密码改成你自己想设的(比如 admin123),保存。
- 确保你的Linux服务器已安装Docker和docker-compose(Ubuntu/Debian执行 sudo apt update && sudo apt install docker.io docker-compose;CentOS执行 sudo yum install docker docker-compose)。然后在存放 docker-compose.yml 的目录里,终端输入 docker-compose up -d,回车。大概等15秒,打开浏览器访问 http://你的服务器IP:8080,就能看到登录页了,用刚才设的密码登录。
- 登录后点左下角 “Agents” → “Add Agent”,页面会生成一段 curl 命令,形如 curl -sSL https://beszel.dev/install.sh | sh -s — -h http://你的IP:8080 -k xxxxx。把它复制到你要监控的另一台Linux机器上运行(比如公司的测试服务器),几秒钟就装好Agent并自动连接Hub。重复这一步,所有机器都能接入,整个过程不需要改配置文件、不碰端口、不装额外依赖。
要说清楚的短板
第一,它只支持Linux。Windows服务器、macOS笔记本、安卓手机,统统不能装Agent。这不是开发者的疏忽,是Go语言调用硬件传感器(比如/sys/class/hwmon下的温度数据)和Docker API的方式决定了它必须跑在Linux内核上。第二,中文界面确实没有。所有菜单、按钮、提示都是英文,比如“System Health”、“Container Stats”、“SMART Attributes”。不过常用词就那么二十来个,我用三天就记熟了,而且参数名本身是行业标准缩写(比如“Power_On_Hours”谁都看得懂)。第三,首次配置OAuth登录(比如用微信企业号或GitHub账号)需要手动填Client ID和Secret,得去对应平台申请,这点不如纯密码登录简单。我自己试过配GitHub OAuth,前后花了20分钟查文档填错三次,最后发现是回调URL少了个斜杠,这种事新手容易卡住,建议第一次先用密码登录,熟悉后再折腾。
项目信息
henrygd/beszel
GitHub
Lightweight server monitoring with historical data, docker stats, and alerts.
25.9k
Stars
1.1k
Forks
Go
MIT
用 Go 写的,GitHub 上有 25897 颗星,MIT 协议,完全开源免费。GitHub 项目地址
你用过类似的免费工具吗?评论区聊聊,我挑几个下期专门写。






