引子/状态监控原理分析

说到状态监控大家应该都不陌生
类似UptimeRobot FreshPing D监控这样的比比皆是 但又各有千秋
先说这三款状态监控我都用过
他们的机制大概是这样:

状态监控站点机房服务器→通过http(s)/Ping等手段检测网站是否在线→通知渠道

但他们 都有一个缺点 没有可供公开展示的状态监控面板或状态监控面板不够美观/自定义域名需要收费
那我这种白嫖党肯定不能忍啊 去Github逛了逛 有通过iframe标签绕过自定义域名的(此方法已被ban)
也有其他方法(但是大部分都被ban了 万恶的资本主义啊淦
不过做这个也需要服务器的资金 恰钱 可以理解


自托管 是个好办法
所谓自托管就是将 “状态监控站点机房服务器” 这一步改成 “你自己的服务器”
反正自己有服务器 也要挂网站 不用白不用 对吧?
话不多说 好不好看你们说了算 先丢个我自己的状态页Demo:https://status.shinezz.cc
于是我又上万能的Github翻了翻 果然找到了一个美观大气上档次的这么一款 自托管状态监控系统
它在Github上的仓库名就是 UpTime-Kuma
Github仓库地址:https://github.com/louislam/uptime-kuma

UpTimeKuma的部署

诶 很快啊 我就在ReadMe里面找到了它的部署方法
分别是:
1.Docker(也就是直接用容器跑 这是原作者也是我推荐的方法
2.Non-Docker(也就是用Node跑 这种方法极其麻烦
一开始因为不熟悉Node 我使用了第二种方法
然后迎面走来的就是各种问题 各种报错
类似有Node对不上 Node跑不起来 npm莫名其妙爆炸
血压起来了吗?起来就对了xD
虽然最终部署好了 但是确实是有点烧脑子 在后来换服务器后果断抛弃了这种办法
使用了 Docker运行 也就有了现在这篇文章
首先我们需要安装Docker才能在Docker中拉镜像、建容器
如果你是 折腾专业户 ,那么你可以通过 终端 来安装Docker
这里咱拿 CentOS 举例 由于Docker软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里 所以可以直接yum安装:

yum -y install docker

然后输入

service docker start

这一段是启动咱的Docker服务
随后 我们就可以拉取UpTimeKuma的镜像了:

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

一段代码 直接搞定 简直不要太方便
这段代码包含了拉取镜像、创建容器、启动容器 所以我们直接使用就可以了
随后我们就可以在宝塔中看到这个正在运行的容器和拉取下来的镜像
可以在宝塔的 “Docker” 一栏内看到创建好的容器
在到这一步之后 咱就已经成功了一半以上了 接下来就是基本的设置
如果你是本地部署 访问 127.0.0.1:3001 or localhost:3001 即可
(因为UpTimeKuma的项目端口为3001
如果你部署在了公网服务器上 那就访问 你的服务器公网ip:3001
在跟随UpTimeKuma的向导设置完 你会看到这个界面
UpTimeKuma主界面
然后就可以进行网站的添加

通过反向代理实现域名访问

这个时候就有 嘴欠 聪明的小伙伴要问了:

好问题,接下来我们会用到的是Nginx的 反向代理 功能
原理下次再补充 这里咱主要是讲如何实现域名访问和后台及创建好的状态面板

首先是如何实现域名访问后台:

在部署好uptime-kuma后,将域名解析到你的服务器ipv4地址
我们就可以前往宝塔面板的“网站”选项卡添加网站了
由于我们只反向代理 所以按照如下设置即可 不需要php 纯静态就够哩
网站域名填写 你刚刚解析的域名 别学我这么写 其他设置照搬
宝塔面板添加网站示例
然后就可以配置反向代理了
点击域名打开 “站点修改”-“反向代理”
站点修改中的反向代理选项卡
选择 “添加反向代理”
“代理名称” 可以写自己喜欢的 但 “目标URL” 一定要写 127.0.0.1:3001
(即本地的3001端口 也可以理解为 localhost:3001 服务器自己代理自己
缓存功能 建议不要开启 以免造成不必要的麻烦
反向代理设置
随后点击 “提交”
就算是大功告成了
接下来 你就可以通过域名来访问你的UpTimeKuma状态面板了!
Enjot it!

当然状态面板也可以通过域名来访问:

首先我们需要创建一个状态面板

Tip:只有浏览器UA为PC时才会显示创建状态面板的按钮,且需要先添加监控网站才能在状态面板中添加已添加监控的网站

如图点击按钮即可创建一个状态面板
有聪明的小伙伴已经发现了,这样创建的状态面板后带有目录
是xxx.xxx.com/xxxx/xxx这样的
那如果我想要xxx.xxx.com格式的如何操作呢?
首先,老样子 需要解析域名且反向代理 反向代理见 “如何实现域名访问后台” 这个子版块
然后最关键的一步, 先进入你的状态监控面板设置界面
可以看到左下角有一个 “域名” (没有的话就往下扒拉扒拉
左下角域名添加
在这里添加上你刚刚解析的域名 添加后访问这个域名
你会神奇的发现 它直接跳转到你的状态页了!

以上就是部署自托管UpTime-Kuma的教程
告别收费的UptimeRobot什么的真的太爽了 xD & Enjoy it!

最后修改:2023 年 12 月 26 日
如果我的文章能够帮助到你,你的赞赏是对我最大的鼓励