ntfy 实战:一条 curl 把告警推到手机,自建监控的最后一块拼图

折腾自建服务的人都有一个共同的痛点:监控是搭…

折腾自建服务的人都有一个共同的痛点:监控是搭起来了,Uptime Kuma 挂着、Grafana 的仪表盘也挺好看,可真等告警来的时候,谁二十四小时盯着那个网页看?等你自己发现问题,往往是用户截图甩你脸上了。今天给各位推荐一个我最近焊死在全家桶里的组件——ntfy,一个开源的、基于 HTTP 的自托管推送通知服务。它的理念简单到令人发指:发一条 HTTP 请求,手机 App 立刻弹通知,没有 SDK、没有复杂协议,curl 就能玩。

ntfy 是什么

ntfy(读作 “notify”)是一个 pub/sub 消息推送服务。你在服务器上自托管一个实例,然后给某个「主题」(topic)发一条 POST 请求,所有订阅了这个主题的设备都会收到推送。它支持 Android / iOS 官方 App、浏览器 Web Push,甚至可以直接用 curl 在终端里订阅。对于已经堆了一堆自建服务的 Homelab 来说,它就是那块把「发现问题」变成「被人发现」的最后拼图。

一条命令部署

用 Docker 起服务,一行搞定(这里用 80 端口演示,实际生产建议放反代后面走 HTTPS):

docker run -d \
  --name ntfy \
  --restart unless-stopped \
  -p 80:80 \
  -v /opt/ntfy/cache:/var/cache/ntfy \
  -v /opt/ntfy/etc:/etc/ntfy \
  binwiederhier/ntfy \
  serve

先发一条试试

起好之后随手发一条,验证服务是否正常:

curl -d "服务器重启了,注意看" ntfy.example.com/myserver

手机装上 ntfy App,订阅 ntfy.example.com/myserver 这个主题,通知立刻就到。就这么简单,不配任何鉴权也已经是可用状态。

几个实用进阶

  • 优先级:给消息加个优先级,紧急告警会强制响铃、甚至忽略手机的勿扰模式:curl -H "Priority: urgent" -H "Tags: warning" -d "磁盘使用率 92%" ntfy.example.com/alert
  • 配合 Uptime Kuma:在通知类型里直接选 ntfy,填上服务器地址和主题,监控项一挂立刻推。
  • 配合 cron:写个磁盘监控脚本,超阈值就 curl 一发,比邮件通知轻快得多。
  • 安全:公网暴露记得加 access token 和按主题授权,再套一层 Caddy / Nginx 走 HTTPS。

小结

ntfy 最打动我的一点是「零心智负担」。它不强迫你改架构,不要求引入一整套消息队列,就一个 HTTP 接口——curl 能发、脚本能发、任何能发 HTTP 的东西都能发。工具很轻、成本几乎为零,建议你今晚就试一条 curl。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注