Beszel 轻量监控上手:几百 KB 内存占用,老服务器也能跑

2026-10-07 16:32 1004 次浏览

服务器一多,最先出问题的往往不是性能,而是「不知道它在干什么」。一台机器 CPU 突然冲到 100%,等你收到用户投诉才发现;磁盘悄悄写满,服务挂掉才知道。想装监控,Zabbix 那一套下来,光数据库和 Web 端就吃掉一台小机器的资源,更别提维护成本。我见过不少站长卡在这一步:监控本身成了负担,干脆不装。Beszel 就是冲着这个矛盾来的,一个用 Go 写的轻量监控,主控加 agent 加起来几百 KB 到几 MB 的内存占用,老服务器、小内存 VPS 都能跑。下面按「它适合谁、怎么装、坑在哪、什么时候别用它」的顺序说清楚。

先看它省了什么:一套不用数据库的监控

传统监控的链路通常是采集、时序库、可视化三层,每层都是一个独立服务。Beszel 把这三层压成两个进程:hub 负责收数据和出面板,agent 装在被监控的机器上。数据默认存在本地,用的是 SQLite 这类嵌入式方案,不需要额外起一个数据库。

省下来的东西很具体。你不用再为一台 1 核 1G 的小机器纠结要不要装监控——Beszel 的 hub 内存占用通常在几十 MB 级别,agent 更小。按我的经验,1 核 1G 的机器跑 hub 加几个 agent 是够的,前提是别同时挂一堆别的服务。

它监控的指标覆盖了日常最常看的那几项:

  • CPU 使用率与负载,按核心维度拆分
  • 内存、交换分区、磁盘占用与读写
  • 网络上下行速率
  • Docker 与 Podman 容器的运行状态、CPU 和内存

够不够用取决于你要什么。如果你要的是「机器别挂、挂了能收到通知、资源趋势能看」,它够。如果你要的是自定义业务指标、复杂的告警规则链,它就不够。

部署这一步,agent 的端口和密钥最容易出错

hub 的部署方式有几种,二进制直接跑、Docker 跑都行。Docker 方式对新手友好一点,一条命令起来,映射一个端口就完事。

真正容易卡住的是 agent 这一端。agent 装在被监控的机器上,要主动连回 hub,需要两样东西:hub 的地址,以及一个公钥。公钥在 hub 后台添加系统的时候生成,复制粘贴过去就行。这一步出错的表现通常是面板上系统一直显示离线。

几个我踩过或者见别人踩过的点:

  • agent 默认监听在 45876 端口,如果机器上有防火墙或者安全组,得放行这个端口,或者改成允许的端口
  • hub 和 agent 之间走的是 SSH 隧道,agent 那台机器要能主动出网到 hub 的 SSH 端口
  • 密钥粘贴时多一个空格、少一个换行都会连不上,建议直接复制不要手敲

监控数据本身也会占磁盘。默认保留周期有限,机器多了、指标采集频率高,SQLite 文件会慢慢变大。这个不算大问题,但心里要有数:轻量不代表零成本,只是把成本压到了可以忽略的量级。

什么时候它不够用,得换回 Prometheus 那套

这是最该讲清楚的一点。Beszel 的定位是轻量、够用,不是全能。

如果你要监控几十上百台机器,还要做长期趋势分析、跨团队共享面板、按业务维度自定义指标,Prometheus 加 Grafana 的组合仍然更合适。它的生态、查询能力和告警规则灵活度,是轻量工具给不了的。代价也摆在那里:内存占用、维护复杂度、学习成本都高一截。

另一类不适合的情况是业务指标监控。Beszel 看的是主机层面的资源,不是你的应用 QPS、订单量、接口延迟。这些得靠应用自己埋点,或者用专门的 APM 工具。

所以选型的判断可以简单一点:机器数量在个位数到十几台、主要是看资源趋势和存活状态、运维人手有限——Beszel 合适。规模上去了、指标维度复杂了,别硬撑,早点上成熟方案。

监控工具本身跑在哪台机器上,也是个取舍。放本地机器省事,但机器挂了监控也没了;放一台独立的监控机更稳,代价是多一台机器的成本。如果监控的是海外业务,这台监控机的地理位置会影响采集延迟和告警及时性。拿不准的话,可以先挑一台配置不高的独立服务器专门跑监控,把 hub 和 agent 的流量集中在一条线路上,排查问题时链路更清晰。比如硅谷裸机云 VIII 这类 E5-2680*2 / 32G / 100M 的配置,跑监控主控绰绰有余,月付 119 美元,比在业务机上挤资源稳妥。

香港方向的业务可以看香港裸机云 VII,E5-2650*2 / 32G / 20M 的配置,月付 134 美元,延迟对国内访问更友好。如果监控对象里有高防需求的机器,独立一台美国西雅图高防服务器11跑监控,E5-2620 / 32G / 100M,月付 169 美元,至少不用担心监控面板自己被打挂。

告警怎么配才不吵人

监控装了不看等于没装,但告警配得太密,人很快就会麻木。我的做法是分层:CPU 和内存设一个较高的阈值,比如持续 5 分钟超过 90% 才报;磁盘单独设,因为磁盘满了是硬故障,80% 就该提醒。网络流量突增这类指标,看趋势比设死阈值更有用。

通知渠道上,能推到手机的就别只发邮件。邮件容易被淹没,手机推送至少会让你瞄一眼。Beszel 支持的通知方式够日常用,具体支持哪些以实际版本为准,这点我没逐个实测过,不同版本可能有差异。

最后给一个可以直接执行的结论。手上有 1 到 10 台服务器、主要想解决「机器挂了能第一时间知道」和「资源趋势能看」这两个问题,Beszel 值得花一个下午装起来,成本几乎为零。机器超过 20 台,或者要监控业务指标,别在轻量工具上耗时间,直接上 Prometheus 加 Grafana。监控机本身的预算,一台月付 100 到 200 美元级别的独立服务器完全够用,没必要为监控单独砸钱买高配。