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]