首页 › weekly › 网站挂了谁先知道?8个监控神器

网站挂了谁先知道?8个开源监控神器,替你盯着线上每一秒

本文所有 Star 数为写作时的约数,以 GitHub 实时页面为准。

本期思路

服务挂了,最怕的不是修,而是用户先于你知道。这一期不挖新框架、不蹭大模型,专攻一个被忽视但人人需要的赛道:在线监控与状态页。它商业上被 Pingdom、UptimeRobot 验证了十几年,开源侧却远没有被挖透——从主动拨测、被动心跳、内容变更到对外状态页,四块拼图各有精品,既有 6 万星的爆款,也有千星级的冷门好货。运维、独立开发者、SaaS 创业者都能直接抄作业。


1. louislam/uptime-kuma | 约 60k+ Star | 持续活跃

一句话定位: 自托管监控界的国民级答案,UptimeRobot 的开源替身,装完五分钟就有自己的监控台和状态页。

痛点: 付费拨测服务按监控项数量收月费,十个网站八个证书一个内网服务,账单很快失控;而且数据捏在别人手里。

核心拆解: Node.js + Vue 单体,SQLite 存储,一条 docker run 起服务。监控类型覆盖 HTTP(s)、TCP 端口、Ping、DNS、Docker 容器、Push 心跳等十余种;通知渠道接了约 90 个,Telegram、Discord、企业微信、Slack 全在列,底层用的正是 Apprise 那套适配层。每个监控项可配重试次数、心跳间隔、证书到期提醒,还能生成公开状态页、双因素登录、数据导入导出。2.0 大版本长期在 beta 通道打磨,1.x 主线依旧稳定维护(以官方 Release 页为准)。社区规模是它最大的护城河,中文文档和教程满地都是。

上手难度:⭐

适用人群: 个人站长、小团队运维、想给客户一个“服务水平页面”的外包商。变现方向:拿它给中小企业做“监控代管 + 月度报告”服务,本质是把开源件包装成托管 SLA。


2. TwiN/gatus | 约 7k Star | 持续活跃

一句话定位: 配置即代码的拨测引擎,监控规则全在一个 YAML 里,跟仓库走、跟 Git 走。

痛点: Uptime Kuma 靠点鼠标配置,监控项一多就没法 Code Review,更没法在 CI 里同步变更;Gatus 反着来——一切皆文件。

核心拆解: Go 写的单二进制,核心是条件表达式 DSL:[STATUS] == 200、[BODY].status == "healthy"、[RESPONSE_TIME] < 500 这样的断言直接写在 YAML 里,还能做 DNS 记录校验、ICMP ping、SSH 连通性检查。告警目标覆盖 Slack、Discord、PagerDuty、Twilio、Teams 等主流通道,原生暴露 Prometheus /metrics,接进 Grafana 就是现成的监控大屏。作者 TwiN 是 Go 社区的高产独立开发者,issue 响应快,文档范例齐整。它和 Kuma 不是替代关系:一个给“人点”,一个给“管线用”。

上手难度:⭐⭐⭐

适用人群: DevOps 工程师、基础设施团队。二次开发方向:把它的条件 DSL 包一层图形化编辑器,做成面向企业内网的“监控配置平台”,这是个真实付费场景。


3. healthchecks/healthchecks | 约 8k Star | 持续活跃

一句话定位: 反向思维的监控——不主动探测,只等你的定时任务来“报平安”,没来就是出事了。

痛点: 拨测监控只能证明“服务活着”,证明不了“备份脚本昨晚真的跑了”。定时任务静默失败,是数据事故的头号来源。

核心拆解: Django 实现,模式极简:给每个任务发一个唯一 ping URL,任务末尾 curl https://hc-ping.com/<uuid> 一下;超时没收到心跳就触发告警。支持 cron 表达式和宽限期双阈值——比计划晚跑但没超期算正常,超了宽限才报警,避免误报轰炸。集成 PagerDuty、Slack、Telegram、邮件、Webhook,提供完整 REST API。这个项目同时是“开源 + 独立盈利”的经典样本:作者 Pēteris Caune 自 2015 年起运营同款 SaaS(healthchecks.io),一个人维护核心代码和付费托管两条线,靠口碑活了十年。想学独立开发的人,值得把它的订阅定价和功能分层抄一遍。

上手难度:⭐⭐

适用人群: 写 cron 的所有后端、数据工程师。自用直接 Docker 起一套,也可参考它的 SaaS 化路径。


4. dgtlmoon/changedetection.io | 约 20k+ Star | 持续活跃

一句话定位: 盯网页内容变化的开源雷达——价格降了、库存回了、对手改条款了,它先知道。

痛点: 拨测只看状态码,可大多数关键信息藏在页面正文里:补货、降价、公告、政策更新。人工刷页面既蠢又不可持续。

核心拆解: Python 实现,支持纯 HTTP 抓取和 Playwright 无头浏览器两种模式,后者能走 JS 渲染、登录态甚至“浏览器步骤”模拟点击。过滤体系是精髓:CSS 选择器、XPath、JSONPath 逐层抽出你真正关心的那块 DOM,再配阈值规则(比如价格低于某数才告警)。变更页面自带逐行 diff 视图,通知走 Telegram、Discord、邮件、Apprise 全家桶。典型玩法:盯显卡补货、盯签证slot、盯竞品 changelog、盯政府公告。作者 dgtlmoon 一个人维护多年,同域名的托管版直接收费,又是一个“开源引流、托管收钱”的活样本。

上手难度:⭐⭐

适用人群: 薅羊毛党、电商运营、做竞品分析的人。变现方向:垂直化封装——“机票降价监控”“学位-slot提醒”这类小程序,内核全是它。


5. upptime/upptime | 约 16k Star | 持续活跃

一句话定位: 零服务器的监控方案,整个监控系统的运行时就是 GitHub Actions,状态页躺在 GitHub Pages 上。

痛点: 想要监控,又不想多养一个进程、一个数据库。尤其给开源项目或静态站配状态页,专门开服务器纯属杀鸡用牛刀。

核心拆解: 用法是 fork 仓库、填入站点列表,剩下的全自动:GitHub Actions 按计划每 5 分钟跑一轮拨测,结果以 commit 形式写回仓库(响应时间历史天然版本化);故障时自动开一个 GitHub Issue 当事故记录,修复后自动关闭;Pages 上的状态页从这些数据渲染,还带响应时间图表。代价也说清楚:GitHub Actions 的最小调度间隔和偶发排队决定了它做不了秒级拨测,机房视角也只有一个“GitHub 数据中心出口”。但对“证明我的服务大体靠谱”这个诉求,它免费、透明、零维护。

上手难度:⭐⭐

适用人群: 开源作者、静态站站长、学生项目。它证明了“用现成平台当运行时”这个思路,值得所有工具类项目借鉴。


6. rajnandan1/kener | 约 3k Star(增速快) | 持续活跃

一句话定位: 颜值天花板级的开源状态页,2025 年间从几百星一路涨上三千,是本期公认的“新星”。

痛点: Uptime Kuma 的状态页够用但谈不上惊艳;给客户交付时,一张漂亮的状态页本身就是信任状。

核心拆解: Node.js 技术栈(SvelteKit),配置文件放在仓库里管理,监控项支持 cron 拨测、时区、维护窗口;事故可以手动创建,也能由 GitHub Issue 触发——开源项目用它正好复用 issue 流。主题、banner、配色、多语言、嵌入式组件都做得细,官方演示页就是最好的广告。它刻意不做全家桶:专注“状态页 + 轻拨测”,重监控交给 Kuma/Gatus,用嵌入组件把它们的数据展示出来。定位克制,完成度高。

上手难度:⭐⭐

适用人群: 给客户做交付的agency、开源项目维护者、想给产品页加“信任背书”的SaaS。变现方向:白标状态页托管——每个客户一套独立域名状态页,收订阅费。


7. lyc8503/UptimeFlare | 千星级 | 持续活跃

一句话定位: 白嫖 Cloudflare 边缘网络的拨测方案,全程零服务器、零账单,小而美的典型。

痛点: 自建拨测只有单点视角——你家宽脂拨通不代表全球用户拨得通;多地域探测又得买服务。UptimeFlare 直接把探针铺在 Cloudflare 全球边缘节点上,免费额度内无限用。

核心拆解: 架构是“Workers 定时触发 + 边缘多地区拨测 + D1 存储 + Pages 托管状态页”的纯 Serverless 链路,部署跟着文档走 GitHub OAuth 授权加几个密钥即可,之后每次检查结果自动提交,状态页带响应时间曲线和可用率统计,支持 Telegram、Discord 等推送。整个项目没有一台需要你维护的机器,成本约等于零。局限同样明显:拨测逻辑受 Workers 运行时限制,复杂断言不如 Gatus 灵活。但对个人项目,这是目前性价比的极限操作。

上手难度:⭐⭐

适用人群: 有 Cloudflare 账号的一切人。二次开发方向:把它包成 Terraform 模块,给多站点客户批量部署。


8. valeriansaliou/vigil | 约 1.5k Star | 低频维护

一句话定位: Rust 写的微服务状态页,单二进制、低内存,为“一屏看清整套基础设施”而生。

痛点: 上面几个工具都面向“网站列表”,可后端团队的监控对象是一组互相依赖的服务:API、队列、缓存、网关,需要按“节点—分支—副本”的层级展示,一眼看出哪一层断了。

核心拆解: 作者 valeriansaliou 是 Crisp 聊天系统的 CTO,也是高性能搜索引擎 Sonic 的作者,Vigil 延续了他“Rust 单二进制 + 极低资源占用”的一贯风格。用 TOML 声明监控拓扑,支持 HTTP、TCP 等探针,页面按业务分支分组展示,各节点红绿灯一目了然,还带响应时间历史。它几乎不更新,但“做完即稳定”正是 Rust 基础设施件的常态——没有任何需要追新的特性,装上就不用管。社区不大,恰好说明它解决的是个窄而真的问题。

上手难度:⭐⭐⭐

适用人群: 自建机房的后端团队、嵌入式/边缘计算场景(资源占用极低)。适合当内网值班室大屏。


横向对比

仓库 类型 Star(约) 上手难度 适用场景
Uptime Kuma 拨测 + 状态页全家桶 60k+ ⭐ 个人/小团队一站式监控
Gatus 配置即代码拨测 7k ⭐⭐⭐ DevOps、GitOps 管线
Healthchecks 心跳/死信开关 8k ⭐⭐ 定时任务、备份校验
changedetection.io 网页内容变更 20k+ ⭐⭐ 补货/降价/竞品监控
upptime 零服务器拨测 16k ⭐⭐ 开源项目、静态站
Kener 高颜值状态页 3k+ ⭐⭐ 客户交付、产品背书
UptimeFlare Serverless 边缘拨测 千级 ⭐⭐ 零成本多地域探测
Vigil 微服务状态页 1.5k ⭐⭐⭐ 基础设施值班大屏

监控四层拼图

flowchart LR
  A["探针拨测"] --> B["判定与阈值"]
  C["Cron 心跳"] --> B
  D["内容变更比对"] --> B
  B --> E["告警通道"]
  E --> F["值班响应"]
  B --> G["状态页公示"]
mindmap
  root((开源监控拼图))
    主动拨测
      Uptime Kuma
      Gatus
      UptimeFlare
      Upptime
    被动心跳
      Healthchecks
    内容变更
      changedetection.io
    状态页
      Kener
      Vigil

成熟做法是四层各取一件:Gatus 管接口,Healthchecks 管任务,changedetection.io 管页面,Kener 对外公示——而不是指望一个工具通吃。

本期之最

参考来源

  1. louislam/uptime-kuma — Uptime Kuma 官方仓库,自托管拨测与状态页
  2. TwiN/gatus — Gatus 官方仓库,配置即代码的拨测引擎
  3. healthchecks/healthchecks 及 healthchecks.io 官网 — 心跳监控开源实现与同源 SaaS
  4. dgtlmoon/changedetection.io 及 changedetection.io 官网 — 网页变更监控与托管版
  5. rajnandan1/kener — Kener 官方仓库,高颜值开源状态页

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入