需求:
我们服务器环境是lnmp,近期访问经常出现502的现象,在重启php-fpm服务后消失,因此需要编写一个监控脚本,一旦出现502,并且数量达到阈值,便自动重启php-fpm服务
#!/bin/bash
log=/var/log/nginx/access.log
#设置阈值为30
N=30
while :
do
#查看访问日志的最新 300 条, 并统计 502 的次数
err=`tail -n 300 $log |grep -c '502" '`
if [ $err -ge $N ];then
/etc/init.d/php-fpm restart 2> /dev/null
#设定 60s 延迟防止脚本 bug 导致无限重启 php-fpm 服务
sleep 60
fi
sleep 10
done