zoukankan      html  css  js  c++  java
  • shell习题第8题:监控nginx的502状态

    【题目要求】

    服务器上跑的是LNMP环境,近期总是有502现象。502为网站访问的状态码,200正常,502错误是nginx最为普遍的错误状态码。

    由于502只是暂时的,并且只要一重启php-fpm服务则502消失,但不重启的话,则会一直持续很长时间。

    所以有必要写一个监控脚本,监控访问日志的状态码,一旦发生502,则自动重启一下php-fpm。

    502 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应

    我们设定:

    1)access_log /data/log/access.log

    2)脚本死循环,每10s检测一次(假设每10s钟的日志条数为300左右)

    3)重启php-fpm的方法是 /etc/init.d/php-fpm restart

    【核心要点】

    用curl检测状态码是否是502或者通过分析访问日志判断状态码的比率
    重启php-fpm服务的命令

    【脚本】

    #!/bin/bash
    
    log=/data/log/access.log
    while :
    do
        502_n=`tail -n 300 $log | grep -c ' 502 '`
        if [ -z "$502_n" ]; then
            exit
        fi
    
        if [ $502_n -gt 100 ]; then
            /etc/init.d/php-fpm restart > /dev/null 2 > /tmp/php-fpm.err
            fpm_p_n=`pgrep -l php-fpm | wc -l`
            
            if [ $fpm_p_n -eq 0 ]; then
                python mail.py 123@123.com "php-fpm重启失败" "`head -1 /tmp/php-fpm.err`"
            exit
            fi
        fi
    sleep 10
    done
  • 相关阅读:
    《TD项目开发小结》
    感悟
    毕业两年了
    ip+port无法访问nginx问题
    问题解决之道
    调休9天的那些日子
    关于类加载器(ClassLoader)
    ios核心蓝牙之心率监控(swift)
    git(git-flow)的高效管理使用
    WKWebview加载本地图片时出现路径问题
  • 原文地址:https://www.cnblogs.com/dingzp/p/10768807.html
Copyright © 2011-2022 走看看