一. 前言


如果您像我一样在服务器上托管了多个网站,并且没有足够的时间来手动检查每个网站的在线状态,那么当出现问题时,您可能无法及时收到通知来处理这些问题。因此,搭建一个在线监控服务是很有必要的,它可以在状态异常时提醒您,以便您能够及时处理问题,确保网站的稳定性和可用性。

监控服务有很多,我最终选择了 Uptime Kuma,因为 Uptime Kuma 是开源免费的,在 GIthub上目前有 55.1k Star 它搭建非常方便,占用系统资源低。

二. 介绍


Uptime Kuma 是一款开源的服务状态监控工具,拥有简洁美观的界面与强大的服务监控能力,支持多种监测方式。有了 Uptime Kuma,我们就可以很方便地知道我们的服务器、网站或者后端 API 有没有挂掉,何时挂掉,从而尽快修复问题。

主要功能

  • 监控 HTTP(s) / TCP / HTTP(s) 关键字 / Ping / DNS 记录 / 推送 / Steam 游戏服务器的正常运行时间

  • 花哨的、反应式的、快速的 UI / UX

  • 通过 Telegram、Discord、Gotify、Slack、Pushover、电子邮件 (SMTP) 和 70 多种通知服务发送通知

  • 提供代理支持

  • 支持多种语言

  • Ping 图(Ping Chart)

  • 证书信息(Certificate Info)

三. 效果预览


四. 相关地址


五. 部署教程


1. Docker CLI:

docker run -d --name uptime-kuma \
  --restart always `# 重启策略` \
  --network bridge \
  --cpus "1" `# 限制 CPU 资源` \
  --memory "1024M" `# 限制内存资源` \
  -p 3001:3001 `# 映射端口:主机 3001 -> 容器 3001` \
  -v $(pwd)/uptime-kuma/data:/app/data `# 映射 UK 配置文件` \
  louislam/uptime-kuma:1 `# 拉取固定版本镜像`

2. Docker Compose:

version: '3'

services:
  uptime-kuma:
    image: 'louislam/uptime-kuma:1'     # 拉取固定版本镜像
    container_name:  uptime-kuma        # 容器名称
    restart: always                     # 重启策略
    network_mode: bridge
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 1024M
    ports:
      - '3001:3001'                     # 映射端口:主机 3001 -> 容器 3001
    volumes:
      - './uptime-kuma/data:/app/data'  # 映射 UK 配置文件

六. 使用教程


1. 配置语言与外观

然后就可以直接访问并使用了,如果你没有配置反向代理,直接输入你的服务器的 ip + 端口号,例1.1.1.1:3001,就能访问控制台了。

首次进入会要求创建账户,输入用户名和密码即可注册并进入如图所示的界面

默认语言为英文,可以设为中文

2. 添加监控项

通过 Uptime Kuma 可以轻松地添加多种监控项目,点击左上角的 添加监控项 按钮就能快速添加监控项目。

使用示例

例如我们想监控百度的服务器有没有寄,啥时候寄,什么时候恢复的,可以按照如下配置来操作

监控类型选 http,名称写百度,url 就写上百度的地址 https://www.baidu.com

心跳间隔指的是多长时间去检查一下上述服务地址是否正常,默认 60 秒

最后点击保存即可

然后就能看到百度的在线状态了

3. 添加状态页面

现在我们有了一些监控项目了,但是现在这些监控项目只能我们自己登录后查看,要想让所有人都能看到服务的在线状态,我们就需要创建状态页了

点击右上角的 状态页面,点击 新的状态页

自定义名称和路径

按图示这样操作可以简单地自定义这个展示页面

效果如下

设置常规 这里可以设置访客如果访问了该服务器的主域名会自动跳转到哪个页面

就比如你访问我的 https://uptime.viplee.cc/status/monitor的主域名,你的浏览器会跳转到该状态页面

要想登录需要在链接后面加上 /dashboard,如 https://uptime.viplee.cc/dashboard

七. 常见问题及注意点


待补充

参考资料