使用 Uptime Kuma 监测网站可用性

到年底了,最近没折腾啥东西,正发愁。

机缘巧合,接触到了 Uptime Kuma 这款产品,想到了之前在迪士尼玩被甲方抓了更新证书,顿时觉得这东西应该对我有用。

那么就搞这个吧!

2023.03.03 更新:新增邮件通知配置。

图片 Pixiv ID = 95148804

部署

Uptime Kuma 产品推出已经有不短的时间了,产品本身一直迭代,文档也挺友好,跟着文档很轻松就把服务起来了。

使用 Docker 安装 Uptime Kuma

在配置完 Docker 环境后,简单键入以下命令即可:

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

参数都很直观,如果和自己服务器上现有服务冲突的(比如端口),自行修改下。

访问 http://<server_ip>:3001 按照流程引导操作完即可进入主界面,这时候已经可以正常使用了。

配置 Nginx 反代

但这 HTTP 外加挂着个非常规端口是不是不优雅?

确实,而且也不太安全,所以再次请出 Nginx 反代来助其一臂之力。

不过在这之前先要做点微小的工作。

在 Uptime Kuma 仪表盘点右上角选 设置 - 反向代理,将 HTTP 头可信的代理类字段 开关打开并保存。

「微小的工作」

接着来配置 Nginx:

1
vim uptime_kuma.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
server {
listen 80;
server_name uptime_kuma.neko7ina.com;
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl http2;
server_name uptime_kuma.neko7ina.com;

ssl_certificate /home/syncthing/ssl/cert.pem;
ssl_certificate_key /home/syncthing/ssl/key.pem;

location / {
proxy_set_header Host $host;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:3001;
}
}
1
2
nginx -t
nginx -s reload

使用

用起来也是很简单,仪表盘左侧 添加监控项 添加目标网站,按照个人需求修改一些参数和选项就行了。

比如这个 证书到期时通知 是吧,对我就很有用,最早会在失效前 21 天就通知了,告别在迪士尼被抓更新证书。

刚好,平常常逛的一个网站 P9 今天挂了,也加到监控项中看看效果。

挂了就会像这样

通知

那我也不可能 24 小时盯着仪表盘看呀,所以有问题得通知到我才行。

Uptime Kuma 支持相当多的通知推送方式,我听过的、没听过的、国内的、国外的全都有。

本来打算配个比较泛用的邮件通知(SMTP),结果 QQ 邮箱的搞了半天也没搞起来。

在剩下的通知方式里挑挑捡捡,发现有个飞书刚好我们公司在用,那么就配这个吧!

邮件通知

<2023.03.03 更新>

新增邮件通知配置。

之前没搞出来的原因也很蠢,因为发信人这项没配置,觉得不关键。

那么配置邮件通知就很简单了,如下图一样把配置项填上,能测试通过即为成功。

现在各家邮箱业务都有专门的授权码给客户端用,所以建议在使用时生成授权码,替换至密码位置。

163 邮箱

QQ 邮箱

测试通过!

飞书通知

要用飞书通知,得先整个机器人。

要整个机器人,得先整个群。

于是我们先建个群,点加号然后选择 创建群组 即可建立个人群。

创建群组

然后点右上角三个点,选择 设置 - 群机器人 - 添加机器人 - 自定义机器人 - 添加,填好名称和描述,成功创建机器人。

这时候就可以看到机器人的 WebHook 地址了,复制这个。

回到 Uptime Kuma,点右上角选 设置 - 通知 - 设置通知 打开设置通知详情,通知类型选择 飞书,显示名称按喜好修改,第三项粘贴从飞书那复制过来的 WebHook 地址。

点一下测试,很快嘛,测试通知瞬间就过来了。

测试通知

测试没问题就可以保存了,如果像我这样是首个通知,也可以学我把 默认开启应用到所有现在监控项 勾上省点事。

虽然我也没几个监控项就是了。

刚好前面 P9 还挂着,拿来测试一下通知。

P9 通知

写在最后

Uptime Kuma 的功能实际上并不仅限于此,但这么点对我来说就很足够了。

考虑到以后需要长期维护的甲方服务越来越多,提前未雨绸缪一下,也不是件坏事吧。

噢对了,最后 P9 的线上服务恢复了。

P9 恢复了