zabbix監控nginx和fpm(網站併發數)自定義key

監控nginx,主要講解監控併發數:
1: 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

2: 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

3: 測試下看看能不能獲取nginx狀態
curl 127.0.0.1/status

4: 寫腳本獲取nginx的狀態
監控腳本(/usr/local/zabbix/check_nginx.sh):

#!/bin/sh
#20170603 nginx status
#Active connections: 1
#server accepts handled requests
#1035268066 1035268066 1035136592
#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

5: 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 )

6: zabbix網頁配置:
nginx.status[accepts] ×××(每秒差值)

監控fpm,主要講解監控動態併發數:
1: /usr/local/php/etc/php-fpm.conf fpm配置新增:
pm.status_path = /php_fpm_status
fpm需要重啓。

2: 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

3: 測試看看能不能獲取到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

4: 寫腳本獲取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

5: 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

6: zabbix網頁配置:
fpm.status[conn]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章