曾经使用过类似的服务 UptimeRobot 通过API配合开源面板体验还是不错的,但是 UPTIMEROBOT 没有国内的节点,由于线路问题很多时候会有误报的情况。而且自建还可以把数据牢牢地放在自己手里。

Uptime Kuma可以通过 Docker 或者手动安装,是一个十分成熟的开源解决方案。


项目简介

项目地址:Uptime Kuma

特性

支持的监控:HTTP(s) / TCP / HTTP(s) 关键字 / Ping / DNS 记录 / PUSH / Steam 游戏服务器的正常运行时间、SSL过期监控。

通过 Telegram、Discord、Gotify、Slack、Pushover、电子邮件 (SMTP) 以及70多种的服务推送通知。

多种语言支持,而且界面十分美观。

手动安装需要 Nodejs 版本 ≥ 14,而且通过PM2进行后台运行。

本文通过宝塔面板以及 DOCKER 进行安装。

配置 Uptime Kuma

安装Docker

在宝塔面板打开 应用商店 选择 Docker 进行安装

img

获取镜像

安装完成后即可进行获取镜像,在宝塔的 Docker 选择镜像管理,获取镜像输入以下镜像名称进行获取镜像

louislam/uptime-kuma

img

由于是通过 Docker 官方仓库获取镜像,所以速度较慢,请耐心等待。

配置容器

Uptime Kuma 的容器配置非常简单,详细配置如下:

镜像选择:louislam/uptime-kuma 
容器端口:3001
服务器端口:自定义即可
容器目录:/app/data
服务器目录:自定义即可

img

即可提交运行。此时通过 IP:自定义端口,即可访问服务。

设置反代

如果不想通过IP访问服务,此时需要进行 NGINX 反向代理。

注:如开启反向代理,请关闭 COCKER 对外设置的服务端口

新建网站,配置好SSL后即可进行反向代理配置,具体配置如下:

代理名称:自定义
目标URL:http://127.0.0.1:32111 (此处端口为自定义的端口)

完成以上配置,提交即可

img

由于项目的特殊性,需要用到 WebSocket 所以如果不配置WebSocket会出现以下错误:

Cannot connect to the socket server. [Error: websocket error] Reconnecting...
Using a Reverse Proxy? Check how to config it for WebSocket
Uptime Kuma

此时需要在 Nginx 的反向代理配置文件 #Set Nginx Cache后面加入以下代码,用于开启 WebSocket:

  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "Upgrade";

img

保存后,即可正常访问服务。

img

配置 Uptime Kuma 相关设置

此时需要注册管理员账号

img

输入完成后,即可点击创建

增加网站

img

填写 显示名称 以及 URL 即可提交,如其他有需要可按需配置。

img此时即可正常监控

配置通知服务。

UPTIME KUMA支持70余种服务通知,详细名单如下:

img

img

可按需配置,推荐使用国内的 SMTP、钉钉、企业微信群机器人进行推送。

后语

Uptime Kuma 是一个非常好的开源项目,适合很多网站服务特别多的站长,特别是那些不常访问,但是又非常需要长时间运行的项目。

可以通过配合 UptimeRobot 实现国内国外双线监控。保证网站服务稳定运行。