我平时的工作会涉及到监控,而站点是一个很重要的监控项。项目上线后,我们通常会将站点监控配置到云平台上,以检测各站点的连通性。但随着项目不断增多,云平台上的配额就有点捉急了。针对这个情况,我们可以试试这个开源项目:Uptime Kuma。
项目介绍
Uptime Kuma[1] 是一个开源的监控工具,功能类似于 Uptime Robot。相较于其它同类工具,Uptime Kuma 支持自托管服务,并且限制更少。本文将介绍 Uptime Kuma 的安装和使用方法。
支持众多特性:
-
-
- 监控 HTTP(s)/TCP/Ping/DNS/Push/Steam 游戏服务器的在线时间
- 支持多种通知服务,包括 Telegram、Discord、Slack、Pushover、Email、企业微信、钉钉、webhook 等70多种通知服务
- 支持多国语言
- 简单的状态页面
- 监控图表信息
- 证书信息
-
下载安装
目前 Uptime Kuma 最新版本为 1.8.0,支持使用 Docker 安装,以下是我的安装步骤。
创建工作目录:
mkdir /opt/uptime-kuma
运行以下命令启动服务:
docker run -d --restart=always -p 3001:3001 -v /opt/uptime-kuma/data:/app/data --name uptime-kuma louislam/uptime-kuma
服务启动后,在浏览器中输入 http://{ip}:3001
进行访问。
如果想用手动方式进行安装,首先需要先保证安装下面的几个依赖工具:
- Node.js >= 14
- Git
- pm2
然后按照下面的命令进行安装即可:
# 更新 npm 到最新版
npm install npm -g
# clone 代码,安装依赖
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup
# 可选1. 直接启动服务
node server/server.js
# (推荐) 可选方式2. 使用 PM2 在后台运行
# 如果没有 PM2 则先安装:
npm install pm2 -g && pm2 install pm2-logrotate
# 使用 PM2 启动服务
pm2 start server/server.js --name uptime-kuma
同样在浏览器中通过 http://localhost:3001 进行访问即可。
更多 PM2 使用命令:
# 查看现有 console 输出
pm2 monit
# 添加到 startup
pm2 save && pm2 startup
更多安装方式,比如 Kubernetes、Ansible 等方式可以查看文档 https://uptime.kuma.pet/docs/%F0%9F%94%A7-How-to-Install。
使用说明
接下来,我将介绍 Uptime Kuma 的基本功能,创建一个站点监控项来看看实际监控的效果。
创建管理员账号
次访问 Uptime Kuma 会要求创建一个管理员账号,根据提示填写信息:

账号创建后会跳转到仪表盘页面:

创建监控项
现在我们添加一个监控项来看看 Uptime Kuma 具体监控的效果。
进入监控页面后就可以添加监控项了,支持多种监控类型,比如我们添加一个用于监控 Github Uptime 的监控项:

点击左上方的『+创建监控项』按钮进入页面,选择监控类型:

以监控站点为例,基本设置可以这样填写:

如果需要消息通知,可以点击『设置通知』进行设置:
可以配置心跳间隔以及重试次数等。而且还可以添加通知服务,甚至支持企业微信、钉钉这些通知渠道


在详情页面中可以看到站点的响应时长、可用率以及证书过期时间。
保存监控项后就可以开始监控了,会在仪表盘中显示我们配置监控项的响应时间、在线时间、平均响应时间以及证书信息:


可以看到会提供一个比较友好的监控图表,甚至还可以看到证书的有效期:

主题设置
Uptime Kuma 支持暗色模式,可以在设置中将主题调整为黑暗。

暗色模式显示效果如下:

写在最后
Uptime Kuma 的界面干净简洁,部署和使用都非常简单。如果你本身对站点监控没有太高要求的话,Uptime Kuma 是一个非常好的选择。
参考
- ^Uptime Kuma https://github.com/louislam/uptime-kuma