利益相关声明:作者与文中产品有直接的利益相关(开发者、自家产品等)

作者:Frank|标签:Homelab · NAS · iOS · 群晖 · 自建服务 · 监控

利益相关说明:我是 OpsHome NOC 的开发者。
这篇文章不是第三方评测,而是一篇开发者手记:它来自我帮家人维护自建服务时遇到的真实问题,也解释了我为什么会做这样一个 iOS 监控工具。

事情就是这么奇妙,开发的契机是这样的。

去年我去表妹家,闲聊的时候应了她的需求,就帮她在她家的NAS上搭了几个服务。

她有个需求很直白:不想把孩子的照片放在别人的云上,还要看到每一个人的头像(人脸识别),能查到游乐场的照片(场景识别,模糊搜索)。我理解,就帮她装了 Immich,配了反代,调好了 DDNS,调好了ACME 证书(你要问我域名,自己想去)。反正这些她也不懂也不管,总之一句话,服务端搞定收工,安装手机客户端,手机能连,照片上传正常,阅览正常,人脸识别有点慢,能出图,成了,另外还装了nextcloud和Mealie,反正不花钱,能提供服务,接入iPhone,总是好的。

然后过了大概两个多月,她发了一段语音给我。

语气有点急,说相册 App 打不开了。

我第一反应是让她开电脑看一下容器状态。

她问我从那边看?

额,那个就是登录NAS管理后台,一问三不知,算了,这条路不通。

我又问她网络正不正常,她说能上网,在刷 小红书。

于是我让她一个个试,Immich 打不开,nextcloud 可以,问她 mealie 怎样,她说:什么是 Mealie?

得了,对于app的记忆力,来源于使用频率,用的少,自然她连这个 App 存在都忘了。

没办法,等到周末我过去一趟。

容器停掉了,Immich 已经不知道挂了多久。估算了一下大概超过3天。她手机里这三天的照片一张都没备份进去,有了小外甥,照片不要太多了,iCloud不太够用呢。

整个过程没有任何告警,没有任何通知,如果不使用app,她也不会发现,你要说为什么没有配置邮件提醒,这事得怨我,我够懒。

 

其实这件事之后我想了很久,邮件通知不想搞,我邮件很多的,不想看,她呢,邮件客户端都没有,更没戏。

问题不是 Immich 不稳定,那次是一个 Docker 依赖的问题,不常见。问题是我完全没有意识到,我没有给这套服务配任何监控。

给自己用的服务出了问题,我自己会发现。服务打不开我会 SSH 进去看,容器挂了我会查日志。

但给家人搭的服务不一样。表妹不会看日志,不会看容器状态,她甚至忘记 Mealie 是什么。她能告诉我的就是打不开了(用不了),甚至是期望过一会儿就好了,就和打网游一样,过一会就能连上了?而且她发现打不开的时间可能已经是一天以后了。

我盘算了一些市面上的监控工具。

UptimeRobot 用过,只有公网监测,英文界面;Uptime Kuma 也看过,自己搭,开源,但我当时想,如果要装第三方容器,那还不如自己写一个,反正目标已经明确,体现价值的时刻到了。

总结一下需求:

服务挂了,我 iPhone 收到通知(不要给我发邮件!!!特别是周末),不是等她打电话。

同时支持公网,内网监测。

给她一个能看懂的页面,绿色就是好的,红色就是有问题,不需要她登录任何后台,也不需要在路由器后台配置额外的端口映射。

就这三点。

所以后来我自己做了一个,叫 OpsHome NOC

iOS 原生,Apple 账号登录,加一个容器 URL 就开始监控,服务挂了推送到 iPhone,服务恢复了再推送一条。

我把表妹家的三个服务都加进去了:Immich、Nextcloud、Mealie。检测间隔设了三十分钟,够用了。

另外有一个功能我觉得对家人特别有用,是状态页。可以生成一个公开链接,打开就能看到所有服务的状态,绿色正常红色异常。我把链接发给表妹,她说看得懂,反正看见红的,就找我。

这话说的一点不含糊,是,有异常就联系我,老妹,如果你家宽带欠费了,可不要找我。

 

用了之后确实抓到过几次问题。

还有一次她家网络断了,三个服务同时告警,我判断是外网问题,等了十几分钟,网络恢复,服务也跟着恢复了,没有任何操作(等待大法还是有点用处的)。

以前这种事情的流程是:她发现打不开,发语音问我,我猜原因,让她试这试那,来来回回搞半天。

现在是:我先知道,我先判断,绝大多数情况下在她意识到之前就解决了。

 

App 监控列表

关于这个 App,说几点实际的。

免费版有 15 个监控点,HTTP、HTTPS、TCP、ICMP、SSL 证书几种协议,检测间隔十分钟到十二小时,历史记录保留三十天,一个状态页免费可用。

Pro 版是公网监控点扩到 80 个,内网监控点50个(一般家庭50个容器,不至于吧,可以监测不对外暴露的服务),间隔可以缩到五分钟,历史记录九十天,多了 UDP、DNS、Domain 这几种协议,三个状态页可用。

对表妹这个场景,要用这个。

 

适合用的场景:

给家人或朋友搭了 NAS、Immich、Nextcloud 这类服务,想第一时间知道出问题,不想靠家人来通知你。

自己有一堆自建服务在跑,不想再额外维护一套监控系统。

想给家人一个看得懂的状态页,减少那个东西还能用吗这类问题。

不适合的也说一下:

什么服务都没有的话用不上。

Android 用户目前不支持。

IOS在港区应用市场。

需要企业级监控的场景它也不是合适的工具。

就这些。

如果你也有类似经历,评论区聊聊。我准备了 20 个 Pro 一个月的体验码,留言说说你帮谁搭了什么服务,私信给前 20 位。

下载:https://apps.apple.com/app/opshome-noc/id6763890679

官网:https://app.opshome.run

 

 

 

2
1