type
status
date
slug
summary
tags
category
icon
password
经过前面几篇文章的部署,发现管理的在线服务越来越多,此时我们希望知道我们基础服务是否是健康,一般大型的网站服务都会建立自己的 status 页面、或者 uptime 页面,类似于:
- Github - https://www.githubstatus.com/

- OpenAI - https://status.openai.com/

我们可以借助 
对我们自己的服务,完成同样的状态检测的效果。
uptime-kuma
Github
uptime-kuma
Owner
louislamUpdated
Aug 31, 2023通过本篇文章,你将:
- 完成服务的监控配置。
- 完成服务状态的监控告警配置。
1)uptime-kumaGithubuptime-kumaOwnerlouislamUpdatedAug 31, 2023
的部署
uptime-kuma
Github
uptime-kuma
Owner
louislamUpdated
Aug 31, 20231.1 部署
我们依然使用 docker 部署我们的服务,创建 [uptime-kuma/] 文件夹,在该目录下创建
docker-compose.yaml
配置文件,配置:
- ports: 暴露端口。我们将原本 Docker 容器中的 3001 端口暴露到宿主机 13001 端口上。
启动:
1.2 效果
启动后,直接访问对应机器的地址即可打开 uptime-kuma 的页面:[http://localhost:13001]。

2) 服务的监控配置
2.1 初始化环境
当第一次登录页面时,需要创建用户名和密码。
2.2 添加监控项
因为我们的服务基本上都是 HTTP(s) 服务,所以我们接下来以添加 HTTP(s) 的服务监控为例。
点击 [添加监控项],

重要参数说明:
- 监控类型:选择 HTTP(s)
- URL: 选择检测的 HTTP 接口。我自己的服务有一个接口
/status
,专门用于状态检测,所以我就填入该接口。
- HTTP 选项:方法根据自己的需要,可以选择 GET、HEAD 等。
配置完成后,点击 [保存] 即可看到效果。
2.3 公开监控页面
要查看当前的所有配置和服务状态,需要用户登录后才能访问。但有时候我们希望将服务状态分享给其他人,而他们又没有登录权限,该怎么办呢?
这时候我们需要添加一个 [状态页面]。它可以:
- 让用户无需账号密码即可查看服务状态。
- 选择要暴露的服务状态配置。

编辑 [新的状态页],

参数说明:
- 路径:配置一个路径,当访问该路径时,即可打开该状态页面,
比如当前配置的基建服务的状态页面就是
/status/infra
路径,同时我的服务是暴露在公网域名 uptime.zouying.work 上,所以用户只需要访问 [https://uptime.zouying.work/status/infra] 页面即可打开该状态页面。- [右侧] 添加监控项:选择该状态页面需要显示的服务。
点击保存后,查看状态。参考示例:https://uptime.zouying.work/status/infra。

3)服务状态的监控告警
仅仅有服务的状态收集不够,我们希望服务出现状态异常时,能够及时通知我们。
3.1 配置监控
打开 [仪表盘],选择对应的服务,配置「通知」 - 「设置通知」。

我这里选择的是 「Telegram」 进行通知,
由于发送 Telegram 的消息需要科学上网环境,所以确保 uptime-kuma 部署的环境处于科学上网环境中。

创建 Telegram 机器人
- 创建 Telegram 机器人
- 打开 https://t.me/BotFather
- 选择:`/newbot`
- 输入新的机器人名字后获取 Token。


- 获取 Chat ID
搜索
userinfobot
机器人,直接会返回对应的 ID。
根据自己的机器人信息配置后,点击 「测试」,

Telegram 机器人即可接收测试通知。
3.2 服务监控演示
当线上服务检测异常时,Telegram 即可接收到相应的异常状态的通知消息,(以 iOS Telegram 为例)

当服务恢复正常后,会接收到服务恢复正常的通知消息(以 MacOS Telegram 为例)

- 作者:zouying
- 链接:https://haha.ai/service-uptime
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章