zabbix 监控nginx 状态

   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 状态

 

  添加新的模板
zabbix 监控nginx 状态

 

    定义一个应用集;

    zabbix 监控nginx 状态  

 

    定义监控项:
         键值

nginx_status[active]

nginx_status[reading]

nginx_status[writing]

nginx_status[waiting]

nginx_status[accepts]

nginx_status[handled]

nginx_status[requests]

      zabbix 监控nginx 状态

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

      创建图形;

zabbix 监控nginx 状态

 

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

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

zabbix 监控nginx 状态

 

等一下数据就出来了;

zabbix 监控nginx 状态

正文完
 
评论(没有评论)