zabbix 监控nginx 状态

菜鸟 845 0

    

   1,客户端agent的配置;

     nginx编译安装需要带有该模块--with-http_stub_status_module

    查看nginx.conf配置文件;

  1.    cat ../../nginx.conf;

  2.     location /nginx_status {

  3.     stub_status on;

  4.     access_log off;

  5.     allow 127.0.0.1;

  6.     deny all;

  7.      }

  8. 已经包含了nginx status,没有要加上;

  9.  

  10. 2, 修改agent端配置文件监控nginx状态配置

  11. # vim /etc/zabbix/zabbix_agentd.d/nginx_monitor.conf

  12. UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/nginx_monitor.sh "$1"



      3,创建nginx监控脚本;

        #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

   

 Active connections  Nginx正处理的活动链接数个数;重要

server              Nginx启动到现在共处理了多少个连接。

accepts             Nginx启动到现在共成功创建几次握手。 

handled requests    Nginx总共处理了几次请求。

Reading             Nginx读取到客户端的 Header 信息数。

Writing             Nginx返回给客户端的 Header 信息数。

Waiting             Nginx已经处理完正在等候下一次请求指令的驻留链接,开启。

Keep-alive的情况下,Waiting这个值等于active-(reading + writing)。

请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。

     

       添加执行权限;

      chmod +x nginx_monitor.sh


     重启agent;


   

      server端验证是否能获取agent端的key值;

      zabbix_get -s ip地址 -k nginx_status[active];如果执行不了,确认nginx status是否设置了白名单;

    zabbix 监控nginx 状态-第1张图片-笔记运维


  添加新的模板    zabbix 监控nginx 状态-第2张图片-笔记运维

 

    定义一个应用集;

    zabbix 监控nginx 状态-第3张图片-笔记运维  

 

    定义监控项:  
         键值

       nginx_status[active]

       nginx_status[reading]

       nginx_status[writing]

      nginx_status[waiting]

      nginx_status[accepts]

     nginx_status[handled]

     nginx_status[requests]

     

      zabbix 监控nginx 状态-第4张图片-笔记运维

     这边只展示了一个监控项。。。。

      创建图形;

      zabbix 监控nginx 状态-第5张图片-笔记运维


     定义触发器报警,非必须;

       我定义并发连接超过50就触发警告;

     zabbix 监控nginx 状态-第6张图片-笔记运维

     

     等一下数据就出来了;

     zabbix 监控nginx 状态-第7张图片-笔记运维

标签: nginx zabbix zabbix监控nginx

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~