利用GitHub Actions 监控网站- Upptime
前阵子在网络上看到一个很酷的开源项目: Upptime
每隔一段时间用GitHub Actions 看网站能否访问,若不能访问就用GitHub Issues 回报异常事件,使用GitHub Pages 产生服务状态的页面.
GitHub Actions 简介
GitHub Actions是GitHub上的一个自动化服务,你可以把脚本放到上面,当特定事件发生时,自动执行你的脚本。
以Upptime来说,预设是每隔五分钟访问你的网站一次(实际上由于GitHub的限制,间隔可能会更长),同时也会记录每次的response time,让你在页面上看历史纪录等等。
这些动作都写在Actions的脚本中,机器都会自己执行,完全不用动到一根指头。
介绍完之后,就来开始部署Upptime吧。
创建GitHub Repo
- 进入Upptime的repo
- 点击 Use this template
- 创建repo
* 输入repo name
* 勾选 Include all branches
* 点击 Create repository from temple
等一阵子后,就会复制一样的repo到你的帐号下
设置GitHub Pages
- 到你的repo,点击 Settings
- 往下找到GitHub Pages 的Source
- Branch 设为 gh-pages
- 点击 Save
设置Repository Secret
为了让Upptime有commit和publish网页的权限,需要设定Personal Access Token
- 点击自己的Profile picture > Settings
- 点击左侧的Developer settings > Personal access tokens > Generate new token
- 新增token
- Note: upptime
- Select scopes:勾选repo和workflow
- 点击 Generate token
- 复制token
- 返回repo >Settings
点击左侧Secrets> Add a new secret > New repository secret - 设定repo 的token
- Name: GH_PAT
- Value: 贴上刚刚复制的 token
- 点击 Add secret
更新YAML文件
Upptime使用.yml来做“集中式设置”,只要更改这个文件的设置,所有相关代码就会一起修改。
- 到你的repo,点击Code > .upptimerc.yml
- 点击铅笔按钮编辑文件
- 按照以下模版修改此文件:(方括号内是需要修改的内容,修改完之后请删除方括号)
查看GitHub Actions
设定好.upptimerc.yml后,Actions就会自动开始运行(黄圈在转)。运行成功会显示绿色的勾,运行失败会显示红色的叉。
如果发现Actions没运行,或是想要让它马上执行,就点击左侧的Setup CI> Run workflow > Run workflow
查看Status Website
你的状态页面URL是:https://【user_name】.github.io/【repo_name】/
或是可以到repo > Settings > GitHub Pages查看URL
点击URL后,我们来到了状态页面,页面分成三个区块。
Active Incidents 显示目前的异常事件,Past Incidents 显示过去的异常事件,Live Status 可以切换五种response time 图形。
进阶操作
自定义运行时间
Upptime有七个Workflows,只要把下面这段粘贴到.upptimerc.yml,就可以自定义Workflow的时间点
自定义状态页面
Status Website预设是英文的,如果你想要改成其他语言,可以把要修改的部分粘贴到.upptimerc.yml
例如:
参考资料
- AnnKuoQ Blog
- Getting started | Upptime
- upptime - GitHub
- [利用GitHub Actions 监控网站- Upptime | gd1214b's blog](https://blog.gd1214b.icu/post/G9dquz6bG/)