type
status
date
slug
summary
tags
category
icon
password
经过前面几篇文章的部署,发现管理的在线服务越来越多,此时我们希望知道我们基础服务是否是健康,一般大型的网站服务都会建立自己的 status 页面、或者 uptime 页面,类似于:
我们可以借助
uptime-kuma
Github
uptime-kuma
Owner
louislam
Updated
Aug 31, 2023
对我们自己的服务,完成同样的状态检测的效果。
 
通过本篇文章,你将:
  1. 完成
    uptime-kuma
    Github
    uptime-kuma
    Owner
    louislam
    Updated
    Aug 31, 2023
    的部署。
  1. 完成服务的监控配置。
  1. 完成服务状态的监控告警配置。
 

1)
uptime-kuma
Github
uptime-kuma
Owner
louislam
Updated
Aug 31, 2023
的部署

1.1 部署

我们依然使用 docker 部署我们的服务,创建 [uptime-kuma/] 文件夹,在该目录下创建 docker-compose.yaml 配置文件,
配置:
  1. ports: 暴露端口。我们将原本 Docker 容器中的 3001 端口暴露到宿主机 13001 端口上。
 
启动:
 

1.2 效果

启动后,直接访问对应机器的地址即可打开 uptime-kuma 的页面:[http://localhost:13001]。
notion image

2) 服务的监控配置

2.1 初始化环境

当第一次登录页面时,需要创建用户名和密码。
 

2.2 添加监控项

因为我们的服务基本上都是 HTTP(s) 服务,所以我们接下来以添加 HTTP(s) 的服务监控为例。
点击 [添加监控项],
notion image
重要参数说明:
  • 监控类型:选择 HTTP(s)
  • URL: 选择检测的 HTTP 接口。我自己的服务有一个接口 /status ,专门用于状态检测,所以我就填入该接口。
  • HTTP 选项:方法根据自己的需要,可以选择 GET、HEAD 等。
配置完成后,点击 [保存] 即可看到效果。
 

2.3 公开监控页面

要查看当前的所有配置和服务状态,需要用户登录后才能访问。但有时候我们希望将服务状态分享给其他人,而他们又没有登录权限,该怎么办呢?
这时候我们需要添加一个 [状态页面]。它可以:
  1. 让用户无需账号密码即可查看服务状态。
  1. 选择要暴露的服务状态配置。
 
notion image
 
编辑 [新的状态页],
notion image
参数说明:
  1. 路径:配置一个路径,当访问该路径时,即可打开该状态页面,
    1. 比如当前配置的基建服务的状态页面就是 /status/infra 路径,同时我的服务是暴露在公网域名 uptime.zouying.work 上,所以用户只需要访问 [https://uptime.zouying.work/status/infra] 页面即可打开该状态页面。
  1. [右侧] 添加监控项:选择该状态页面需要显示的服务。
 
点击保存后,查看状态。参考示例:https://uptime.zouying.work/status/infra
notion image

3)服务状态的监控告警

仅仅有服务的状态收集不够,我们希望服务出现状态异常时,能够及时通知我们。
 

3.1 配置监控

打开 [仪表盘],选择对应的服务,配置「通知」 - 「设置通知」
notion image
 
我这里选择的是 「Telegram」 进行通知,
💡
由于发送 Telegram 的消息需要科学上网环境,所以确保 uptime-kuma 部署的环境处于科学上网环境中。
notion image
 
创建 Telegram 机器人
  1. 创建 Telegram 机器人
    1. 打开 https://t.me/BotFather
    2. 选择:`/newbot`
      1. notion image
    3. 输入新的机器人名字后获取 Token。
      1. notion image
  1. 获取 Chat ID
    1. 搜索 userinfobot 机器人,直接会返回对应的 ID。
      notion image
 
根据自己的机器人信息配置后,点击 「测试」,
notion image
Telegram 机器人即可接收测试通知。
 

3.2 服务监控演示

当线上服务检测异常时,Telegram 即可接收到相应的异常状态的通知消息,(以 iOS Telegram 为例)
notion image
 
当服务恢复正常后,会接收到服务恢复正常的通知消息(以 MacOS Telegram 为例)
notion image
 
 
博客增加评论功能使用 Docker 管理开发服务
Loading...