NAS的服务越装越多,但又担心挂掉?你需要一个带通知的监控系统
哈喽小伙伴们好,我是Stark-C~
应该很多小伙伴都听过网上流传的这个梗吧,中年男人的三大爱好:充电头、NAS、路由器。
NAS作为中年男人的三大爱好之一,除了因为它是近年来非常热门的科技产品,还有就是它不管是功能还是玩法都非常多,极大满足了用户的好奇心和动手能力,说直白点,就是NAS“很能折腾”!
我个人作为多年的 NAS 老用户,折腾过的项目多得自己都不记得了。部署成功的成就感确实很爽,然而时间一长,有些服务挂掉了自己却浑然不知,直到真正要用的时候才发现已经停摆了~
怎么解决这个问题呢?很简单,让 NAS 在服务出问题的第一时间主动告诉你。能解决这个问题的方案还是很多的,比如说我很早之前就为大家分享的Uptime Kuma 。
今天再为大家分享一款同类项目,和 Uptime Kuma 一样,它也是一个带有告警能力的监控系统,并且对于NAS 的适配性也非常友好!
关于Checkmate

🔺Checkmate是一款免费开源,支持自托管的一站式现代化监控与告警系统,可以部署在 NAS、服务器、树莓派等环境,用来实时监控网站、服务器硬件、Docker 容器、端口等多种服务状态,并在出现异常时第一时间推送告警。
项目Github地址:https://github.com/bluewave-labs/Checkmate
项目特色亮点:
多类型监控合一:同时覆盖网站可用性、接口响应、SSL 到服务器硬件与 Docker 容器监控。
现代化 UI 与可视化:界面直观,响应时间、uptime、历史趋势图表一目了然,便于故障定位与复盘。
自托管与隐私可控:所有数据保存在你自己的服务器或 NAS,不依赖第三方 SaaS。
轻量易部署:提供 Docker Compose、Helm、裸机二进制等多种部署方式,对于NAS部署及其友好。
多渠道告警与状态页:支持 Webhook、Slack、Email、PagerDuty 等通知,并能生成对外状态页减少用户询问。
Checkmate部署

🔺本地部署我依然以极空间NAS为例,打开文件管理器,在Docker目录下新建一个“Checkmate”的文件夹。

🔺然后点击极空间NAS的“Docker”应用,点击【Compose】 > 【新增项目】。

🔺在“创建项目”页面自定义项目名称,“存储位置”需要手动选择我们前面新建的go-novel-dl文件夹,勾选下方的“所有合规文件夹添加最大读写权限”,最后输入以下 Docker Compose 配置信息后点“创建”按钮:
services:
checkmate:
image: ghcr.io/bluewave-labs/checkmate-backend-mono:latest
container_name: Checkmate
healthcheck:
test: timeout 10s bash -c ':> /dev/tcp/127.0.0.1/52345' || exit 1
interval: 10s
timeout: 5s
retries: 3
start_period: 90s
ports:
- 52345:52345 #项目打开端口,冒号前面请勿冲突
environment:
UPTIME_APP_CLIENT_HOST: http://192.168.31.122:52345 #后面请改成你自己的IP:端口号
CLIENT_HOST: http://192.168.31.122:52345 #后面请改成你自己的IP:端口号
UPTIME_APP_API_BASE_URL: http://192.168.31.122:52345/api/v1 #后面请改成你自己的IP:端口号/api/v1
DB_CONNECTION_STRING: mongodb://mongodb:27017/uptime_db
JWT_SECRET: fQxVYpTZmRKNHsqMBJTEuAydWXbGkPrnCzSLvoQFtgUeYhIPwZcRmNsKDQJHVTy
depends_on:
- mongodb
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: on-failure:5
mongodb:
image: ghcr.io/bluewave-labs/checkmate-mongo:latest
container_name: Checkmate-DB
user: 0:0
command: ["mongod", "--quiet", "--bind_ip_all"]
volumes:
- ./checkmatedb:/data/db:rw
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet
interval: 10s
timeout: 10s
以上代码需要修改的地方就看我给到的中文注释,其它的直接保持默认即可。镜像的拉取需要自行解决网络问题,粘贴到自己的NAS这边之前建议使用AI工具优化一下,以防止格式问题造成的部署失败。

🔺项目部署之后可以看到两个Docker容器显示“正常”,就说明可以使用了!
Checkmate体验

🔺项目的打开方式没什么特别,直接浏览器地址栏输入【IP:端口号】即可。Checkmate是原生支持中文显示的,只需要首次使用将语言更改成“简体中文”即可。

🔺首次使用需要简单的注册一个账号,跟着向导随意设置就可以了,它的密码要求有些高,字母数字特殊符号都要用上。

🔺然后进来之后可以看到它的主界面还是比较简洁的,不过在“创建监控”之前,建议先来进行一些简单的设置。
Snipaste_2026-05-11_16-33-23🔺首先在“设置”里,将显示时区设置为“Asia/Shanghai”。

🔺然后是“通知”设置,通知类型看上去挺多的,但貌似基本对国内用户都不太友好。我个人的建议是,有互联网的,直接选择T开头的(不明说,懂的都懂~),国内普通用户,要么折腾Email邮箱,要么使用Webhook。
不过我个人更推荐后者,因为Webhook是一种通用的HTTP 回调通知方式,兼容性很强,所以有很多服务都支持,比如说国内的飞书、企业微信、钉钉等,或者是之前为大家分享的私有化部署通知方案『Bark』等。我个人实测的是微信Server酱,完全没问题。

🔺设置起来非常简单,自定义渠道名称,类型就选择我说的Webhook,然后输入地址。Server酱的 Webhook 地址格式为“https://sctapi.ftqq.com/.send”。 自己将SendKey换成你自己的秘钥就可以了,完成后可以点击“测试”按钮,这边会有测试通过的提醒,微信Server酱那边也会弹出通知。

🔺搞定通知之后我们就可以“创建监控”了,Checkmate支持多种监控类型,个人觉得http(s)是最实用,也是使用场景最多的。比如说我们在NAS上部署的所有Docker、虚拟机,或者个人网站,博客啥的,全部都可以通过这个方式监控。比如我这里以监控我的另外一台极空间NAS为例,“URL”就是极空间的本地IP地址和端口号,“显示名称”随意。

🔺然后在“通知”里选择我们配置好的通知名称,其它的没什么特殊要求全部默认即可,最后点“保存”。

🔺再回到主页就能看到监控的服务已经启动了!

🔺可以点进来进一步查看监控详情,在这里详细的记录了监控对象的正常运行时间和停机时间,还有事件日志等,并且还有相应时间的波动图。

🔺其实如果只是和我一样监控本机Docker服务,直接使用http(s)的方式即可。不过既然项目支持专门的Docker监控,我们也可以在这里配置。需要注意的是,它这里需要填入真实的容器名称或者ID,ID需要在终端执行命令才能看到,而容器名称直接在NAS中就能查看,上图是我配置的Lucky容器监控。

🔺注意填写的容器名称一定要按照NAS那边显示的真实容器名称填写,不要随意更改。

🔺之后Docker容器的监控也是没有问题的。

🔺当我特意关掉Lucky容器,在10s之内我就收到了设置好的Server酱通知, 就这么简单!
最后
总的来说,Checkmate 作为一款可以部署在 NAS 上的轻量级监控与告警系统,它的定位很明确:轻量、易用、可视化、告警及时,完全契合NAS用户“服务多、场景杂”的使用环境,还是非常值得 大家尝试的!
好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~

爱折腾的老狐狸
校验提示文案
弗老大
校验提示文案
弗老大
校验提示文案
爱折腾的老狐狸
校验提示文案
弗老大
校验提示文案
弗老大
校验提示文案