早上在排查网站时发现某个网站流量掉了,然后打开显示数据库连接错误,我顿时就知道了这是什么原因,肯定是MySQL数据库自动停止了,一般遇到这种情况说明网站可能遭遇到了小规模cc攻击,数据库或者服务器内存承受不住而掉线了,而且这种情况通常发生在晚上。

这些沙雕也很狡猾的,大白天的他知道你会盯着网站,所以他们一般晚上才打你,因为晚上我们要睡觉,没这个时间去盯着网站,所以我写了个定时监控脚本,可以定时间监控MySQL、Nginx是否停止,如果停止就执行重启任务,并且记录日志到 /www 目录

监控日志存放的目录:

 

监控的日志:

 

解决方案
1、MySQL监控
宝塔面板--->计划任务,输入任务名称、执行周期、脚本内容

脚本内容如下:

pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
bash /www/server/panel/script/rememory.sh
/etc/init.d/mysqld start
echo "监控到MySQL已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/mysql_jiankong.log
fi
最后效果如下:

 

2、Nginx监控
宝塔面板--->计划任务,输入任务名称、执行周期、脚本内容

脚本内容如下:

pgrep -x nginx &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/nginx start
echo "监控到Nginx已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/Nginx_jiankong.log
fi
3、PHP监控
宝塔面板--->计划任务,输入任务名称、执行周期、脚本内容

脚本内容如下:

注意:下面第3行代码中的52~73是指php版本5.2 7.3

pgrep -x php-fpm &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/php-fpm-{52|53|54|55|56|70|71|73} restart
echo "监控到php已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/php_jiankong.log
fi
4、redis监控
脚本内容如下:

pgrep -x redis &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/redis start
fi

5、memcached监控
脚本内容如下:

pgrep -x memcached &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/memcached restart
fi
最后
一般我们只需要添加MySQL和Nginx监控,其他的不需要添加,我只加了前面2个,添加了以后记得测试一下任务是否有效,去宝塔停止MySQL、Nginx,然后执行一下这个任务,看看MySQL和Nginx状态是否开启。
————————————————
版权声明:本文为CSDN博主「龙飞瘦了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/t1174148618/article/details/127299153

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源