VPS 探针怎么选?哪吒 / Komari / Uptime-Kuma / Worker 探针横向对比

服务器出事的时候,你往往不是第一个知道的

先说一个我自己遇到的场景。去年冬天有台机器内存被一个失控的脚本吃满,Linux 的 OOM killer 开始杀进程。Nginx 是最后被杀的,所以在那之前网站一直能访问。等我发现的时候,已经过去两个小时,中间重启了三次 MySQL。

探针要解决的就是这件事:把每台机器的 CPU、内存、硬盘、流量、在线状态收拢到一个面板上,异常了主动推给你。在宕机之前知道要宕机,比事后翻日志有用太多。

站上之前分别写过哪吒、Komari、Worker 探针各自怎么部署,但一直缺一篇回答最关键问题的东西:我到底该选哪个。这篇补上。


先分清两类东西,选错方向就白装了

很多人把「探针」和「网站监控」当成一回事,结果装完了才发现看不到想看的指标。

服务器探针工作原理流程图
图 1|服务还能访问,但内存快爆了 —— 只有探针能发现

服务器探针:在被监控的机器上跑一个客户端,定期把资源数据上报给面板。看的是机器本身——CPU 负载、内存占用、磁盘剩余、网络速率。

状态监控:从外部去请求你的网站或者端口,看通不通。看的是服务可用性,被监控的机器上什么都不用装。

判断逻辑完全不同。我上面那个例子属于前者:服务还能访问,但机器快爆了,只有探针能看到。反过来,机器资源全空闲但 Nginx 进程挂了,只有状态监控能发现。

成熟的做法是两套都上。我现在就是这样:哪吒看资源,Uptime-Kuma 看服务。


四款主流方案放一起看

四款 VPS 探针功能对比表
图 2|本文核心,先看这张再往下读

下面逐个说适合谁。

哪吒面板

Go 写的自助监控面板,功能最全。资源监控、在线状态、告警推送之外,还带 Web 终端(浏览器里直接连 SSH)、文件管理、定时任务、DDNS。

架构是服务端 + 客户端:服务端部署在你某台机器上,客户端装到每一台被监控的机器上。

适合机器数量多(三台以上)、需要集中管理和远程操作的人。功能最全的代价是配置项也最多,我第一次配通知渠道搞了快一个小时。

Komari

比较新的开源面板,主打资源占用低。

哪吒的服务端本身也要吃一些资源,Komari 的定位就是把这块压到最小,适合跑在小内存机器上。如果你手头都是 1G 内存的小鸡,Komari 比哪吒更合适。

适合只有一两台机器、对资源占用敏感、够用就行的场景。

Uptime-Kuma

严格说它是状态监控,不是服务器探针,别指望它告诉你 CPU 用了多少。

强项是监控类型丰富:HTTP、TCP、Ping、DNS、关键词检测、证书到期提醒,而且自带一个挺好看的状态页,可以对外公开服务可用性。我给这个站挂了个公开状态页,读者能看到服务是不是在线。

适合个人服务、想对外展示可用性、需要证书到期提醒的人。

Cloudflare Worker 探针

完全不需要服务器,跑在 Cloudflare Workers 上,零成本零维护。

它解决的是「你已经有机器了,不想为了监控再单独养一台」这个问题。

限制也很清楚:Workers 只能做 HTTP 层的探测,拿不到任何服务器内部数据。免费额度的请求数也有上限,监控项不能开太多、频率不能拉太高。

适合纯静态站、只有几个域名要盯、完全不想碰服务器的场景。


三个问题定方案

VPS 探针选型决策表
图 3|三个问题就能定位

机器超过 2 台吗? 是的话走服务端 + 客户端架构(哪吒或 Komari);不是就用 Uptime-Kuma 单独盯着,装探针的收益不大。

在意资源曲线吗? 想看 CPU、内存、硬盘、流量的历史走势,只能用服务器探针。只关心服务通不通,Uptime-Kuma 或 Worker 探针就够。

有闲置机器能当面板吗? 有就自托管哪吒或 Komari;一台都没有就走 Worker 探针,或者把面板丢到免费容器上跑。

💡 面板如果和被监控的机器是同一台,机器挂了面板也挂,告警就失去意义了。理想情况下面板要放在独立的机器上。

这条我自己踩过。早期图省事,面板和被监控的机器都在同一台小鸡上,那次机器死机,我什么告警都没收到。


以哪吒为例的部署要点

把哪吒的配置逻辑搞懂,其他几个都是照葫芦画瓢。

哪吒面板部署三步流程
图 4|面板和被监控机最好分开,否则一起挂

服务端

官方有一键脚本,跑完会提示你注册管理员账号。

哪吒面板服务端安装与状态检查命令
图 5|装完第一件事是改密码,第二件是限制访问来源

装完登录进去,先把这三件事做掉:

  1. 改管理员密码(脚本会强制,别跳过)
  2. 设置站点名称和主题(默认外观挺朴素的)
  3. 配通知渠道,下一节细说

客户端

在面板里添加服务器,会生成一段安装命令,在每台被监控的机器上执行。

几个关键点:

  • 客户端要装成 systemd 服务,否则重启机器就断了上报
  • 上报间隔别设太短。默认 1 秒一次对面板和网络都是负担,3 到 5 秒足够
  • 机器在 NAT 后面也没关系,客户端是主动连面板的,不需要公网 IP

告警渠道:别只挂一个邮件

探针的价值一半在监控,一半在告警。告警配得不到位,等于白装。

VPS 探针告警渠道对比表
图 6|邮件只做兜底,主力用即时通讯
渠道到达速度稳定性配置难度
Telegram Bot秒级低,建 Bot 拿 Token
企业微信机器人秒级极低,一个 Webhook
钉钉机器人秒级极低,一个 Webhook
邮件分钟级中,容易进垃圾箱
自定义 Webhook秒级取决于你的服务

我现在的组合是企业微信机器人 + Telegram 双通道,邮件只当兜底。之前只用邮件吃过亏:机器凌晨两点挂了,通知进了垃圾箱,早上八点才看到。

国内用户首选企业微信机器人。建个群,加一个群机器人,把 Webhook 地址填进探针配置,一分钟的事。


五个我实际踩过的坑

上报间隔设太短,把面板自己打挂

一台机器 1 秒上报一次,十台就是每秒十个请求。面板如果跑在小机器上,内存会一路往上涨。3 到 5 秒是合理区间。

磁盘和流量告警没开

大多数人只配了 CPU 和内存告警。实际上磁盘写满导致服务挂掉是最常见的宕机原因,而且完全可预防。磁盘使用率到 80% 就该告警。

面板自己挂了没人知道

面板服务器需要另一套系统从外面看着。最省事的做法是用免费的 Worker 探针去监控面板地址,两套系统互相盯着。

告警风暴,最后你开始无视通知

一次网络抖动能触发几十条告警。几次之后你就对通知脱敏了,真有故障也懒得看。要配告警抑制:同一监控项在 N 分钟内只发一次,恢复的时候单独发一条恢复通知。

面板暴露在公网还用弱密码

面板带 Web 终端,等于把机器钥匙挂在门外。必须做的三件事:强密码、开两步验证(支持的方案就开)、限制访问 IP 或者用 Cloudflare Access 加一层。


我会怎么选

机器 2 台以内:Uptime-Kuma 一个就够,把 HTTP 监控和证书提醒配好,装探针性价比不高。

机器 3 到 10 台:哪吒面板 + 企业微信机器人告警。功能全、社区活跃、文档齐,出了问题好搜。

机器 10 台以上,或者对资源特别敏感:Komari,或者哪吒精简配置。注意面板和客户端要分开部署。

完全不想维护服务器:Worker 探针 + Cloudflare 的可用性通知。只能做 HTTP 层,但零成本零维护。

最后一句提醒:探针配好之后,请真的去测一次告警。手动把某个服务的端口关掉,看通知能不能在三分钟内到你手机。没测过的告警系统,和没装是一样的。

如果你还没有合适的机器来放面板,claw 免费容器完全指南 里讲了怎么用免费额度跑一个 Uptime-Kuma,零成本。机器本身想再压一压性能的话,Cloudflare Cache Rules 实战 那篇是从边缘层下手的。

上一篇 claw 免费容器完全指南:每月 $5 额度跑 6 个常驻服务
下一篇 Cloudflare Cache Rules 实战:把 WordPress 首页 TTFB 压到 90ms