Loading

zabbix自定义key监控nginx和fpm(网站并发数)

一、 nginx编译参数

监控nginx,主要讲解监控并发数

--prefix=/usr/local/nginx --with-http_stub_status_module

zabbix编译参数的查看:

/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.8.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module

二、nginx配置新增

location /status {
                allow 127.0.0.1;
                deny all;
                stub_status on;
                access_log off;
        }
重启nginx:
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload

三、测试下看看能不能获取nginx状态

curl 127.0.0.1/status

四、写脚本获取nginx的状态

监控脚本(/usr/local/zabbix/check_nginx.sh):
#!/bin/sh
#nginx status
#Active connections: 1 
#server accepts handled requests

#Reading: 0 Writing: 1 Waiting: 0 
while getopts "o:" opt
do
        case $opt in
                o ) option=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done
if [ ! "${option}" ];then
        echo "parameter is null"        
        exit 1
fi

if [[ ${option} == "active" ]];then
        curl -s 127.0.0.1/status |grep '^Active connections' |awk '{print $NF}'
elif [[ ${option} == "accepts" ]];then
        curl -s 127.0.0.1/status |awk 'NR==3'|awk '{print $1}'
fi

五、zabbix配置(/usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx.conf)

UserParameter=nginx.status[*],sh /usr/local/zabbix/check_nginx.sh -o $1
重启zabbix agentd(pkill zabbix_agentd; sleep 3; /usr/local/zabbix/sbin/zabbix_agentd )

六、zabbix网页配置

nginx.status[accepts] 整形(每秒差值)

监控fpm,主要讲解监控动态并发数

/usr/local/php/etc/php-fpm.conf fpm配置新增

pm.status_path = /php_fpm_status
fpm需要重启。

nginx配置新增

location /php_fpm_status
        {
                allow 127.0.0.1;
                deny all;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
        }
nginx需要reload

测试看看能不能获取到fpm的状态

curl 127.0.0.1/php_fpm_status
pool:                 www
process manager:      static
start time:           02/Jun/2017:17:45:05 +0800
start since:          58677
accepted conn:        10753843
listen queue:         0
max listen queue:     0
listen queue len:     0
idle processes:       249
active processes:     1
total processes:      250
max active processes: 251
max children reached: 0
slow requests:        426

写脚本获取fpm的状态

监控脚本(/usr/local/zabbix/check_fpm.sh):
#!/bin/sh
#20170603 fpm status
#curl 127.0.0.1/php_fpm_status
#pool:                 www
#process manager:      static
#start time:           02/Jun/2017:17:45:05 +0800
#start since:          59022
#accepted conn:        10768453
#listen queue:         0
#max listen queue:     0
#listen queue len:     0
#idle processes:       249
#active processes:     1
#total processes:      250
#max active processes: 251
#max children reached: 0
#slow requests:        426
while getopts "o:" opt
do
        case $opt in
                o ) option=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done
if [ ! "${option}" ];then
        echo "parameter is null"        
        exit 1
fi

if [[ ${option} == "conn" ]];then
curl -s 127.0.0.1/php_fpm_status |grep '^accepted conn'|awk '{print $NF}'
elif [[ ${option} == "idle" ]];then
curl -s 127.0.0.1/php_fpm_status |grep '^idle processes'|awk '{print $NF}'
elif [[ ${option} == "active" ]];then
curl -s 127.0.0.1/php_fpm_status |grep '^active processes'|awk '{print $NF}'
fi

zabbix配置(vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/fpm.conf)

UserParameter=fpm.status[*],sh /usr/local/zabbix/check_fpm.sh  -o $1
重启zabbix agent。pkill zabbix_agentd; sleep 3; /usr/local/zabbix/sbin/zabbix_agentd 

zabbix网页配置

fpm.status[conn]

 

posted @ 2018-07-10 20:48  KubeSec  阅读(365)  评论(0编辑  收藏  举报