zabbix监控nginx_status

1.源码安装nginx

[root@agent ~]# tar zxf nginx-1.17.9.tar.gz
[root@agent ~]# cd nginx-1.17.9/
[root@agent nginx-1.17.9]#  ./configure --with-http_stub_status_module  #加入对应的模块
[root@agent nginx-1.17.9]# make && make install

2.修改配置文件

[root@agent conf]# cat nginx.conf | sed -n '48,53p'  
        location /nginx_status {        #在server模块加入
            allow 127.0.0.1;
	        deny all;
            stub_status on;
	        access_log off;
        }

3.重启nginx

[root@agent conf]# /usr/local/nginx/sbin/nginx -t
[root@agent conf]# /usr/local/nginx/sbin/nginx -s reload

4.访问

[root@agent conf]# curl http://127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
 1 1 1
Reading: 0 Writing: 1 Waiting: 0

5.编写脚本

#!/bin/bash
#active   当前活动的客户端连接数,包括waiting连接数
#accepts  已接受的客户端连接数
#handled  已处理的连接总数
#requests 客户端请求的总数
#reading  正在读取请求头的当前连接数
#writing  将响应写回客户端的当前连接数
#waiting  等待请求空闲客户端的当前连接数

result="/usr/bin/curl -s http://127.0.0.1/nginx_status"
case $1 in
    active)
        $result |awk '/Active/ {print $NF}'
    ;;
    accepts)
        $result |awk 'NR==3 {print $1}'
    ;;
    handled)
        $result |awk 'NR==3 {print $2}'
    ;;
    requests)
        $result |awk 'NR==3 {print $3}'
    ;;
    reading)
        $result |awk '/Reading/ {print $2}'
    ;;
    writing)
        $result |awk '/Writing/ {print $4}'
    ;;
    waiting)
         $result |awk '/Waiting/ {print $6}'
    ;;
          *)
    echo "USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
esac
[root@agent scripts]# pwd
/etc/zabbix/scripts #新建文件夹scripts
[root@agent scripts]# cat nginx_status.sh
#!/bin/bash
case $1 in
	active)
	curl -s http://127.0.0.1/nginx_status | grep conn | awk '{print $3}'
	;;
	accepts)
	curl -s http://127.0.0.1/nginx_status |awk 'NR==3' |awk '{print $1}'
	;;
	handled)
	curl -s http://127.0.0.1/nginx_status |awk 'NR==3' |awk '{print $2}'
	;;
	requests)
	curl -s http://127.0.0.1/nginx_status |awk 'NR==3' |awk '{print $3}'
	;;
	reading)
	curl -s http://127.0.0.1/nginx_status |awk 'NR==4'| awk '{print $2}'
	;;
	writing)
  curl -s http://127.0.0.1/nginx_status |awk 'NR==4'| awk '{print $4}'
	;;
	waiting)
  curl -s http://127.0.0.1/nginx_status |awk 'NR==4'| awk '{print $6}'
	;;
esac

解决docker的curl不能用的途径

#!/bin/bash
wget http://127.0.0.1/nginx_status -O nginx_status >/dev/null 2>&1 &
case $1 in
 active)
 cat nginx_status | grep conn | awk '{print $3}'
 ;;
 accepts)
 cat nginx_status |awk 'NR==3' |awk '{print $1}'
 ;;
 handled)
 cat nginx_status |awk 'NR==3' |awk '{print $2}'
 ;;
 requests)
 cat nginx_status |awk 'NR==3' |awk '{print $3}'
 ;;
 reading)
 cat nginx_status |awk 'NR==4'| awk '{print $2}'
 ;;
 writing)
 cat nginx_status |awk 'NR==4'| awk '{print $4}'
 ;;
 waiting)
 cat nginx_status |awk 'NR==4'| awk '{print $6}'
 ;;
esac

6.新建文件

[root@agent zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@agent zabbix_agentd.d]# cat nginx_status.conf
UserParameter=nginx_status[*],/etc/zabbix/scripts/nginx_status.sh $1

7.重启agent

[root@agent zabbix]# systemctl restart zabbix-agent

8.server端get值

[root@server ~]# zabbix_get -s 10.211.55.7 -k nginx_status[active]
1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云原生解决方案

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值