举一反三-zabbix监控nginx

监控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一文中的步骤配置即可。

猜你喜欢

转载自blog.csdn.net/bigwood99/article/details/128550744