1 为什么会有这个项目
NovaOJ 的服务器在乌市一中的内网,笔者身为 Oier,不可避免的有去内地培训的情况出现,无法保证及时得知内网的情况
然而市面上绝大多数服务监控通常都支持公网(至少我是只找到了公网的按钮)
轮子好像是有的,但是我 Python 功底薄弱,迫于要搞 Oi,没有时间学习新语言
那就造新轮子吧!
2 如何探测
内网的探测结果要想发到公网只能主动探测
所以可以在内网搞一台监控机器,或者自己监控自己
然后定时运行,将数据发往服务器即可
但是这样子搞,如果监测服务器挂了怎么办?
目前还没有比较优雅的方案,现行方式是超过预定时间的 3 倍没有发来探测结果,定义为 Unknow
3 使用效果及可以考虑的改进
目前该项目已经在 https://api.woshiluo.site/status 运行了长达一个月的时间
除了开始两天出了一点小问题以外,并未出现大的问题
服务存活率是一个一直在服务器中存的但是从未写出来的东西,有时间会加上
可以肯定的是,这种服务监测方式是有效且可行的
目前已知并可能改进的东西有
- 多个监测结果并到一起发送给 Server 端,之前有因为短时间内请求过多被防火墙视为 DDos 的情况出现
- 可以考虑将页面变为静态页面减少读写情况
- 应当探测 SSL 证书相关情况并及时报警
- 应当将报警发送至 邮箱 / 机器人 上,以便及时知道相关情况
- 该在市一中放一个备用探测机了……