Uptime-Kuma是一个Server级的网站状态监控软件,它能实现看自己的状态。配置好后你甚至都能看别人的网站状态。而且最关键的是它不仅支持监控HTTP协议的服务器,同时还支持诸如UDP和自定义TCP协议的监控。
https://github.com/louislam/uptime-kuma

安装

作为一个Docker软件,安装Docker是必不可少的。然后你需要一个镜像站来拉取代码。本文统一使用docker.1panel.live源。
安装命令:

1
docker pull docker.1panel.live/louislam/uptime-kuma:2

启动命令:

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

如果你能看到类似9c3d9374d8022c436c840410e6acb17165c5abca79634cef4fee4883d8d23eaf的输出就成功运行了。
这里配置将Docker容器里的3001端口打到服务器的3001端口上,也就是映射。

不要忘记在防火墙放行相关端口

如果需要 查看数据库文件,使用这个命令可以查看数据保存的位置

1
docker volume inspect uptime-kuma

如果需要 重新安装或卸载,使用这个命令将删除数据卷所有数据,无法恢复(需要先停止或删除正在运行的 容器,注意别删成下载的本地镜像了)

1
docker volume rm uptime-kuma

执行后,重新运行启动命令即可全新安装。

部署

访问Uptime-Kuma的后台(一般是IP/域名:3001),完成安装向导。

向导页
开头会让你选择语言和数据库选项。第一个选项是本地服务,而第二个允许你连接一个远程数据库,比如说连接数据库托管商或者专门的数据库服务器。第三个选项也是本地数据库
以下是对应的选项和介绍
Embedded MariaDB

您无需设置此项。通过 Docker 方式安装时已自动配置了一个 MariaDB 数据库。Uptime Kuma 会通过 Unix 套接字方式连接该数据库。

MariaDB/MySQL

连接到外部 MariaDB 数据库。您需要设置该数据库的连接方式

SQLite

一个简单的数据库文件,推荐小规模部署使用。在 v2.0.0 版本之前,Uptime Kuma 使用 SQLite 作为默认数据库。

选择 第一项 或者 最后一项 将会使用本地数据库。
坑点:如果你要用本地数据库的话不建议选第一个,要不然以后迁移累死还巨麻烦。选择SQLite后迁移时带个.db文件就走,备份和维护的成本都很低。

请注意:数据库选择完成后将无!法!更!改!慎重,慎重。如果你觉得自己选错了想反悔,看前面的部分重新安装吧

自动配置过程
等就是了。

然后下一步是设置一个用户名和密码,一般首次创建的第一个为管理员。
创建管理员

创建完成后请牢记自己的用户名和密码

完成后,你将看到控制台(仪表盘)页面
后台页面

配置

下面将教你如何创建第一个状态监控页,显示B站的状态。同时实现异常状态的预警推送

访问状态页

点击左上角“添加监控项”,然后输入以下内容:
填写“显示名称”和“URL”
后直接点击确定,你就创建了第一个要监控到的目标网站。

当然了,目前是只能自己在后台看。那我们如果要给其他访客也能看的话就需要添加新的状态页
点击仪表盘旁边的“状态页面”按钮,在右侧点击“+新的状态页”:
基本信息
输入标题和路径后点击确定将会带到更详细的页面:
详细页面
调整到你想要的效果,点击确定即可创建公开页面。

完成后输入https://www.yourdomain.com:3001/status/123就可以访问了(上面的例子对应的对公URL)
如果你嫌端口号太难看的话可以套个CDN反向代理一下,转换成80端口就好了

效果:
红框区域非登录状态的访客将不会显示

当然了,它能做到的远不止这些。你还可以给它创建自定义分组,引入自定义css来优化页面UI。抑或是分流解析的全球网站同时监控同一个站的国内和海外节点也都能实现。

宕机提醒

我们可以为它添加一个推送,实现网站出错时候能够及时给我们推送告警信息。这里我们以飞书机器人为例。
在Uptime-Kuma的仪表盘页面点击头像->设置->通知
里面会显示一个“暂不可用,请先设置”,点击设置通知按钮。
在通知类型的下拉菜单中,选择Feishu (飞书)。留着这个标签页备用。

注册飞书,然后创建一个公司(个人也能创建“企业”)
然后创建一个群组:
群组创建
然后在新建的群组的右上角三个点菜单中选择“设置”:
设置按钮

在设置里有一栏叫“群机器人”,点进去。
如果你这里只有使用说明,没创建按钮的话就说明你用的是网页版
网页版没创建按钮

需要切换到客户端才能创建,入口和上面的一样:
客户端创建

这里选择第一个,也就是自定义机器人
自定义机器人

完成后,在下一个页面里会给你一个WebHook地址,我们复制它
Webhook地址

安全生产提示:强烈建议配置IP白名单,防止因地址泄露导致被黑。如果你套了CDN那么IP地址应为你的源站公网地址

回到Uptime-Kuma的设置页面,将飞书提供的hook地址填入后保存即可。
点击“测试”,如果在飞书群组里看到了机器人发的这条消息就代表成功了:
测试回调


推荐阅读
https://blog.acofork.com/posts/double-monitior/
https://blog.acofork.com/posts/http-header-host/

(不愧是我们的XXTT大佬,他的文章质量都很不错,力推)