Forked from yb/uptime-status
通过 UptimeRobot API 获取服务在线状态,通过后端 cURL 获取服务器证书状态的状态面板。
前端使用 Javascript + React 编写,后端使用 Python3 + Flask 编写。
不建议将监控页面和监控对象部署到同一台服务器上,防止服务器异常时监控页面也发生异常。
可以采用的部署方案是:前端使用储存桶(如阿里云 OSS)、后端使用函数计算(如阿里云 FC)
- 前往 UptimeRobot 添加站点监控,并在 My Settings 页面获取 API Key.
- 在右侧
Releases
页面中下载已构建的前端代码并解压。 - 修改
config.js
配置文件,具体如下:title
: 网站标题navbar
: 导航栏链接icpLicense
: ICP 备案号(留空不显示)uptimeTitle
: 服务状态页面标题uptimeAPI
: UptimeRobot API 地址,默认使用我的公开节点。apiKeys
: UptimeRobot API Key (Monitor-Specific API Keys 或 Read-Only API Key)uptimeDisplayCount
: 显示的日志天数uptimeDisplayLink
: 服务状态页面是否提供跳转链接certTitle
: 证书状态页面标题certAPI
: 后端服务器地址,默认使用我的公开节点。monitorDomains
: 需要监控证书的站点certDisplayCount
: 证书时长余量粒度certDisplayLink
: 证书状态页面是否提供跳转链接
- 上传至网站空间,只要支持静态页面即可。
- 下载安装 cURL,如果系统自带可跳过。
- 配置 Python3 环境。
- 在右侧
Releases
页面中下载后端代码并解压。 - 安装依赖:
pip install -r requirement.txt
- 按需修改
configs.py
配置文件,具体如下:ENABLE_CACHE
: 是否启用内置缓存(如果使用云函数部署请禁用),默认启用UPTIME_CACHE_TIMEOUT
: 服务状态缓存时间/秒,默认 5 分钟CERT_CACHE_TIMEOUT
: 证书状态缓存时间/秒,默认 1 天UPTIMEROBOT_API
: UptimeRobot API 地址,默认官方源CURL_BIN
: cURL 程序地址,默认使用系统路径 /usr/bin/curl
- 运行后端:
python app.py
- 测试后端接口
接口 | 调用方法 | 调用参数 | 内容 |
---|---|---|---|
/ | GET, POST | 无 | Hello World! |
/uptime | GET, POST | 与 UptimeRobot 官方一致 | 服务监控信息 |
/cert | GET, POST | domain: 代查域名 | 域名证书信息 |
若不想自建后端,可使用我公开的后端服务,地址为:https://www.chriskim.top/api/
该后端使用阿里云 FC + CDN 部署,但不对可用性做出保证,建议有能力的话自己部署。
由于使用 React 编写并使用了路由功能,为防止 404 需要进行额外配置。
- 如果使用 Nginx 搭建,配置文件需要添加:
location / {
try_files $uri /index.html;
}
- 如果使用储存桶搭建,需要将 404 页也指向 index.html,以阿里云 OSS 设置界面为例: