之前一段时间,老左在网友圈抽样进行调查,发现80%以上的站长用户希望网站、服务器实现自动化运维,比如前几天有网友希望自己的服务器定期重启。无论我们是个人站长,还是公司企业的专业运维人员,我们在管理和维护网站的时候更为需要实现自动化运维,因为这样不但可以减少我们的工作量和提高工作效率,而且更能能快速响应和自动化解决项目服务器的问题。比如老左经常遇到有网友提到服务器需要定时执行某个任务、以及在服务器可能出现问题时候需要自动重启。如果单纯的靠人为的执行效率上肯定不如自动化好。
比如老左有看到监控宝提供URL回调的功能应用,我们可以借此来基于这样的功能提供更为自动化的运维服务器工作,比如我们可以用来检测到宕机服务器,且利用DNSPOD等第三方解析工具自动切换到备用服务器IP解析,或者老左经常看到有网友提到服务器数据库或者WEB环境经常出现问题,需要手工重启才可以恢复,我们也可以利用监控宝URL回调的功能,检测到宕机报警之后,自动重启Nginx等WEB服务。
在这篇文章中,老左将会实战演练如何利用监控宝URL回调功能检测到宕机服务器且进行重新启动Nginx服务且恢复网站正常的运转。
第一、准备工作
A - 我们需要有一个监控宝(jiankongbao.com)账户,如果没有账户则需要新注册一个。
B - 用户放置URL回调PHP页面的站点目录,我们可以找一个在用/可用的WEB环境站点根目录,也可以自己专门搭建一个,需要当前环境支持SSH2(SSH2安装教程)、以及PHP5.3以上。
C - 需要监控的站点/服务器,添加到监控宝的监控项目中。
第二、设置URL回调页面和参数获取
根据上图,我们到自己的监控宝账户中,添加URL回调的页面,这个页面是需要能够访问到的,这里可以根据官方的文档参考制作不同项目的开发脚本。
第三、部署和编辑重启服务器回调脚本
脚本地址:https://soft.laozuo.org/tools/jiankongbao.zip
这里老左把脚本也分享出来(感谢P总给予技术支持),这里仅仅是自动重启或者执行SSH命令的范例,对于其他深入的使用则需要我们自己写脚本。
在文档的jiankongbao.php文件中,参数对应说明,我们需要找到项目的ID、以及当前回调URL的Token,以及我们监控服务器的ROOT信息。
更为重要的是,在ssh_command是表示在服务器出现问题之后,我们来执行重启Nginx WEB服务,同样的如果我们需要重启数据库也可以这样使用。
第四、监控宝URL回调功能体验
老左在部署完毕URL回调页面参数之后,针对监控服务器关闭掉Nginx,然后等待监控促发之后手机、邮件告知服务器宕机,然后等待一会可以看到收到恢复且重启Nginx的自动任务。建议购买付费版本,因为从响应速度、监控频率以及功能上会优秀很多。
总结,通过监控宝URL回调的重新启动WEB服务的功能,我们还可以应用到更为强大的自动运维服务中,这样可以实现无人值守的运维实践。