监控nginx需要修改nginx配置文件,添加如下:
        location /nginx_status {
          stub_status;
          allow 127.0.0.1;
          allow 192.168.1.71;
          deny all;
         }
这里边192.168.1.71是这台服务器的IP。
保存退出,重启nginx服务。
编写nginx监控脚本,下面是一个范例:
#!/bin/bash
 nginx_status_fun(){
     NGINX_PORT=$1
     NGINX_COMMAND=$2
     nginx_active(){
          /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null| grep 'Active' | awk '{print $NF}'
               }
     nginx_reading(){
          /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | grep 'Reading' | awk '{print $2}'
                }
     nginx_writing(){
          /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | grep 'Writing' | awk '{print $4}'
                }
     nginx_waiting(){
          /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | grep 'Waiting' | awk '{print $6}'
                 }
     nginx_accepts(){
          /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | awk NR==3 | awk '{print $1}'
                }
     nginx_handled(){
          /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | awk NR==3 | awk '{print $2}'
                }
     nginx_requests(){
          /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2> /dev/null | awk NR==3 | awk '{print $3}'
             }
    case $NGINX_COMMAND in 
                 active) 
                nginx_active;
                ;;
             reading) 
                nginx_reading;
                    ;;
                     writing)
                            nginx_writing;
                        ;;
                     waiting)
                    nginx_waiting;
                    ;;
             accepts)
                nginx_accepts;
                ;;
             handled)
                nginx_handled;
                ;;
             requests)
                nginx_requests;
                ;;
                 *)
                echo "0"
                ;;
    esac
 }
 main (){
     case $1 in
         nginx_status)
             nginx_status_fun $2 $3;
             ;;
         *)
             echo $"Usage: $0 {nginx_status key}"
     esac
 }
 main $1 $2 $3
 测试脚本:

脚本测试通过,下一步就是在zabbix平台进行设置。参考zabbix监控php一文中的步骤配置即可。



















