<!-- title: 网站挂了谁先知道？8个监控神器 -->

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

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

## 本期思路

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

---

## 1. [louislam/uptime-kuma](https://github.com/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](https://github.com/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](https://github.com/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](https://github.com/dgtlmoon/changedetection.io) ｜ 约 20k+ Star ｜ 持续活跃

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

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

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

**上手难度：⭐⭐**

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

---

## 5. [upptime/upptime](https://github.com/upptime/upptime) ｜ 约 16k Star ｜ 持续活跃

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

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

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

**上手难度：⭐⭐**

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

---

## 6. [rajnandan1/kener](https://github.com/rajnandan1/kener) ｜ 约 3k Star（增速快） ｜ 持续活跃

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

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

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

**上手难度：⭐⭐**

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

---

## 7. [lyc8503/UptimeFlare](https://github.com/lyc8503/UptimeFlare) ｜ 千星级 ｜ 持续活跃

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

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

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

**上手难度：⭐⭐**

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

---

## 8. [valeriansaliou/vigil](https://github.com/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 | ⭐⭐⭐ | 基础设施值班大屏 |

## 监控四层拼图

```mermaid
flowchart LR
  A["探针拨测"] --> B["判定与阈值"]
  C["Cron 心跳"] --> B
  D["内容变更比对"] --> B
  B --> E["告警通道"]
  E --> F["值班响应"]
  B --> G["状态页公示"]
```

```mermaid
mindmap
  root((开源监控拼图))
    主动拨测
      Uptime Kuma
      Gatus
      UptimeFlare
      Upptime
    被动心跳
      Healthchecks
    内容变更
      changedetection.io
    状态页
      Kener
      Vigil
```

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

## 本期之最

- **最值得立即尝试：Uptime Kuma。** 一条 Docker 命令、十分钟见效，监控这件事没有任何理由再拖。要求“配置进 Git”的团队直接换 Gatus。
- **最有商业潜力：changedetection.io。** 变更监控是最容易被垂直化包装的需求（降价、补货、政策、舆情），内核现成，差一个精准场景和获客页；Healthchecks 则示范了十年单人 SaaS 的完整路径。
- **最被低估：UptimeFlare。** 把拨测成本压到零、把探针铺到全球边缘，架构极轻、思路极妙；它身上“用大厂免费额度当运行时”的玩法，还远没被开发者们用透。

## 参考来源

1. [louislam/uptime-kuma](https://github.com/louislam/uptime-kuma) — Uptime Kuma 官方仓库，自托管拨测与状态页
2. [TwiN/gatus](https://github.com/TwiN/gatus) — Gatus 官方仓库，配置即代码的拨测引擎
3. [healthchecks/healthchecks](https://github.com/healthchecks/healthchecks) 及 [healthchecks.io 官网](https://healthchecks.io) — 心跳监控开源实现与同源 SaaS
4. [dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) 及 [changedetection.io 官网](https://changedetection.io) — 网页变更监控与托管版
5. [rajnandan1/kener](https://github.com/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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
