服务器故障自动提醒功能(短信+邮件)
前言:不知不觉有二三十台服务器了,其中比较困扰的是经常发现服务器php或mysql异常中断,很是恼火,等发现一批网站都挂掉时才发现服务器异常了。于是想着做个工具能对服务器进行监测,本以为很简单的小功能,却不料踩了好些坑,同样的代码在不同服务器的兼容性还不一样,遂只能自己动手一点点调整代码,把代码放在某个能兼容的服务器上运行。
适用哪些人群?
1、服务器比较多、站点比较多,又无暇顾及
2、服务器使用宝塔面板,且支持面板API(宝塔版本在6.0以上)
3、近期或曾经站点偶发性出现php、mysql、Nginx等意外自动停止的
自动监控的功能及优点
避免降权及广告费收入
服务器不论php还是mysql或者Nginx,Apache挂掉,就是整个服务器全部瘫痪,多则七八十个站点,哪怕一个站点,宕机多一小时都是损失,毕竟有些站点的广告收入是按小时计的。而且一不小心宕机十天半个月,对网站权重影响太大,网站关门半个月,大概率会掉排名;网站关门一个月,降权甚至拔毛都没问题。
功能特点:
通过宝塔后台的API功能,实时监控宝塔面板,对异常(停止)项目进行监控,一旦发现停止项目,就通过邮件、短信通知运维人员。
邮件是免费的,非常不错。如果经常玩QQ,还会自动弹出QQ邮箱新邮件提醒。
但一天忙于其它事情,不碰手机电脑,就很容易忽略邮件信息。
于是立马增加了短信提醒功能。
开通一个短信功能也好多坑,例如模板审核都得申请个三四回,模板变量参数不能超过12个字,导致放不下最长15位的ip地址。不过这都不是事,最终解决了。
为什么要从服务器层面进行监控
从域名层面监测存在诸多问题,从服务器方面下手,负载压力小,且更为直观。一个服务器可能放着几十个域名,如果牵涉二级域名就更为复杂了。
服务器故障常见病灶
1、php程序异常
导致php程序异常自动停止的原因很多,例如wp插件冲突、死循环、内容爆满、权限异常等等。
2、mysql异常
MySQL异常自动停止的情况相比php自动停止更为常见,比较常见的譬如硬盘写满、查询死循环等等。
预警是手段,最终还是要修好服务器。
配置费用:50元/次
对于xiaoboy小男孩伪原创的在用客户,可以提供免费的服务器监测服务(监测频率为小时),待后期再提供短信提醒服务。
需要高频监测的客户可以考虑自行购买短信套餐以及调高监测频率。
考虑到自写的代码不易维护,所以代码暂不对外开放,有需要的客户可以联系小北帮忙配置。
您需要提供:宝塔面板API及设置某固定ip的白名单
爬坑备忘录:
1、腾讯云短信需要安装qcloudsms_py
pip install qcloudsms_py
如提示:-bash: pip: command not found,执行下面命令
yum install python-pip
2、腾讯云邮件可以控制台开通25端口,未开通会长时间排队等待。。
开通后,切忌不能使用服务器smtp发邮件(wordpress就是用服务器自带smtp发邮件,这是腾讯云坚决禁止的,会永久封25端口)
3、宝塔API的py示例有bug。。。
在win或部分Linux主机环境可以,但阿里腾讯甚至uhost都不行,一度怀疑权限问题,www切换root都不成。
cookie_file = './' + self.__get_md5(self.__BT_PANEL) + '.cookie';
with open(cookie_file,"a") as file:
file.write("# Netscape HTTP Cookie File\n")
如上所示,接第一行,增加下面两行。这两行代码,浪费了好长时间。都两年了,官方版这bug依旧未修复。
4、原宝塔给我的代码
#解析JSON数据
return json.loads(result)
也存在不严谨的问题。当请求失败,result非str,因此会报错。这时候在我源码中加个Tab缩进即可。如果你也遇到这类问题,可自行添加判断语句。
5、腾讯云短信便宜,老用户35元1000条随便买,还是很划算的。
6、这稳定运行两年的程序,如今搬迁并改良,不料耗费了一天的时间,还熬夜到3点。
还准备做个url级的监测工具,本以为旧的加新的半天时间全部搞定,想不到这个坑爬得如此艰辛。
双十一马上要到了,你买服务器的钱准备好了吗?
又到了一年一度为新账户发愁的日子,好想全部迁移到天翼云,阿里云真的贵!
服务器故障自动提醒功能(短信+邮件):等您坐沙发呢!