Nginx之如何开启status状态页

Nginx之如何开启status状态页

# nginx和php-fpm一样都内建了一个状态页,通过查看状态页信息可以连接到nginx服务负载情况,还可以利用状态页信息配zabbix监控.
# Nginx启用status状态页需要安装http_stub_status模块,使用yum源安装默认已经编译安装 http_stub_status模块,手动编译的需要在安装之时加入此模块。

1:安装Nginx:这里我选择yum直接安装
[root@virtual_host ~]# yum install -y nginx

2:修改或新建配置文件:这里我选择新建一个配置文件(前提是删除nginx.conf内的配置server字段)
cat << eof>>/etc/nginx/conf.d/status.conf
server {
    listen       80;
    root         /usr/share/nginx/html;
    location /nginx_status {
        stub_status on;
        allow 127.0.0.1;
        deny all;
        access_log off;
    }
}
eof

3:启动nginx
[root@virtual_host ~]# nginx

4:获取状态信息
[root@virtual_host ~]# curl 127.0.0.1/status
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0


参数详解:
Active connections:当前所有处于打开状态的活动连接数
accepts :已经接收连接数
handled : 已经处理过的连接数
requests : 已经处理过的请求数,在保持连接模式下,请求数量可能会大于连接数量
Reading: 正处于接收请求的连接数
Writing: 请求已经接收完成,处于响应过程的连接数
Waiting : 保持连接模式,处于活动状态的连接数

5:附带Zabbix监控nginx脚本
#!/bin/bash
NGINX_PORT=80
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 $1 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


posted @ 2022-01-10 10:53  Layzer  阅读(332)  评论(0编辑  收藏  举报