zabbix监控nginx

(1)agent端配置

  • nginx编译安装需要加上该选项--with-http_stub_status_module
  • 修改nginx配置文件

    #vim /usr/local/nginx/conf/nginx.conf
    location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    deny all;
    }
    #nginx -s reload
  • nginx状态解释

    Active connections  Nginx正处理的活动链接数个数;重要
    server              Nginx启动到现在共处理了多少个连接。
    accepts             Nginx启动到现在共成功创建几次握手。 
    handled requests    Nginx总共处理了几次请求。
    Reading             Nginx读取到客户端的 Header 信息数。
    Writing             Nginx返回给客户端的 Header 信息数。
    Waiting             Nginx已经处理完正在等候下一次请求指令的驻留链接,开启。
    Keep-alive的情况下,Waiting这个值等于active-(reading + writing)。
    请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。
  • 修改agent端配置文件监控nginx状态配置

    # vim /etc/zabbix/zabbix_agentd.d/nginx_monitor.conf
    UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/nginx_monitor.sh "$1"
  • 获取nginx状态的shell脚本

    #cd /etc/zabbix/zabbix_agentd.d/
    #vim nginx_monitor.sh
    NGINX_PORT=80  
    NGINX_COMMAND=$1
    nginx_active(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'
    }
    nginx_reading(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'
    }
    nginx_writing(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'
       }
    nginx_waiting(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'
       }
    nginx_accepts(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'
       }
    nginx_handled(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'
       }
    nginx_requests(){
    /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {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 $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
    esac
  • 给脚本添加执行权限
    chmod +x nginx_monitor.sh
  • 重启agent服务

    # systemctl restart zabbix-agent

猜你喜欢

转载自www.cnblogs.com/lovelinux199075/p/8990538.html