PassNAT LogoPassNAT

自托管监控工具Uptime Kuma极简部署指南,NAS一键启动Docker容器实时监控服务可用性

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

Uptime Kuma 是一个自己部署的探活面板。把要盯的地址交给它,它按固定间隔去探一次,挂了就给你发通知 —— 家里的 NAS 服务、自己的博客、公司的接口,都可以丢进去。

点开一条能看详情:上面是这段时间的在线率,下面是响应时间曲线,一格一格就是每一次探活,哪天抽过风一眼看得出来。监控方式除了 HTTP(s),还有 TCP 端口、DNS、Ping、以及容器和数据库等一堆类型;通知支持 Telegram、Discord、邮件等九十多种。

它还能生成「状态页」:挑几条监控放上去,得到一个不用登录就能打开的页面,甩给家里人或者同事,他们不用有账号也能看到现在是不是好的。

项目地址:点我跳转

部署安装

装在自己的 NAS 上之后,它默认只能在家里的网络里打开 —— 可「服务活没活」这件事,恰恰是人不在家的时候才最想知道。我家是移动宽带,没有公网 IP,所以用 帕斯内网穿透 把它开放到公网,飞牛的应用中心里就能直接装到插件,不用另外找工具。下面这套流程在飞牛 NAS 上从头到尾走一遍。

第一步:准备编排文件

下面这份编排可以直接用,四行就够,一个环境变量都不用填。

1services:
2 uptime-kuma:
3 image: louislam/uptime-kuma:2
4 ports:
5 - "3001:3001"
6 volumes:
7 - ./data:/app/data
8 restart: unless-stopped

镜像:louislam/uptime-kuma:2 就是上游 README 里给的写法,2 是大版本,小版本更新会自己跟上。⚠ 这个项目的 latest 还停在 1.x,别拿它当「最新」用 —— 「跟着官方 README 写」和「一律用 latest」不是一回事,这一期正好是个反例。

端口:冒号左边的 3001 是 NAS 上对外的端口,浏览器敲它,建隧道时也填它;右边的 3001 是容器内部的端口,不要动。左边被别的服务占了就换一个,比如 "3002:3001"。

数据目录:./data 是相对编排文件所在目录的一个普通文件夹,监控配置和全部历史数据都落在里面,容器重建也不会丢,整个项目文件夹拷走就是一份完整备份。

restart: unless-stopped:NAS 重启之后自动拉起;自己手动停掉的话就不会被自动起来。

第二步:在飞牛上建 Compose 项目

回飞牛桌面打开 Docker,切到上面的 Compose,点新增项目。项目名称填 uptime-kuma。

路径这一栏点开,右上角新建一个文件夹,名字随便起,建好选中它,点确认。编排文件和上面那个 data 目录以后都放在这儿 —— 一个项目一个文件夹。

来源选「创建 docker-compose.yml」,把上面那段贴进去。勾上「创建项目后立即启动」,点创建。这个镜像六百来兆,拉得久一点,列表里看到「正在运行」就成了。记住 3001 这个端口,下一步建隧道要填它。

第三步:用内网穿透开放到公网

容器跑起来之后,先别急着在内网打开它 —— 下一步直接把它开放到公网,后面的初始化、建管理员、加监控全都在公网地址上做。这一期尤其要这样:它出厂是零鉴权的,谁先走完初始化谁就是管理员,所以隧道和建号这两步要连着做完,中间别隔夜。

在飞牛的应用中心里直接搜 PassNAT,装上,账号登一次。打开插件,点创建隧道:名字随便起;接入节点和传输协议都留默认;本地 IP 这一栏留默认就好,也就是 127.0.0.1,不用去查自己 NAS 的局域网地址;本地端口填上面那个 3001。

建好之后点开这条隧道的详情,最左边那个电源键按一下,隧道就连上了,面板上那一行「IP:端口」就是公网地址,之后在外面打开的就是它。

第四步:在公网地址上把管理员建掉

拿这个公网地址打开,2.x 的首次进入是两步:先选数据库 —— 自己用,选 SQLite 就够,不用另起一个数据库容器;下一步起个用户名、设个密码,点创建,管理员就建好了。

这两步要赶紧做完。它出厂没有任何口令,谁先走完这两步谁就是这台实例的管理员,所以隧道一开就把账号建掉,别晾在那儿。

怎么用

加第一条监控:点「添加监控项」,类型选 HTTP(s),起个名字,地址填要盯的那个服务,其它留默认,保存 —— 探通了那一条就变绿,下面的格子开始一格一格往右长。探活间隔默认 60 秒,可以按需要调。

要让别人也能看,就建一个状态页:起个名字,路径填一个短词比如 nas,把刚才那几条监控加进去,保存。这一页不用登录就能打开,甩给谁都行;不想公开的监控不加进去就是了。

通知在「设置 - 通知」里配,加好之后可以勾给具体某几条监控用。常用的是 Telegram 和邮件,配完有个「测试」按钮,当场就能收到一条。

一些使用上的细节

数据全在项目文件夹的 data 目录里,是 SQLite。想搬到另一台机器,把整个文件盘拷过去、用同样的编排起一个容器就能接着用。

别把 data 放在 NFS 网络共享上 —— SQLite 在 NFS 上的文件锁不可靠,放本地目录就好,也就是上面那种写法。

界面语言跟浏览器走,时区在「设置 - 外观」里单独选,选对了图表和事件时间才跟本地对得上。

暂时不想让外面访问的话,去 PassNAT 插件里把那条隧道的电源关掉就行,内网照常用,容器不用动。