用nginx-rrd监控nginx访问数


本文参考:http://www.gm100861.com/542.html

http://laoxu.blog.51cto.com/4120547/1159491

nginx-rrd是基于虚拟主机的,监控并发连接数量的!通过Cacti监控到的nginx的并发连接数量,是一台nginx服务器上所有的虚拟主机的并发总量!

nginx-rrd配置起来很简单,只需要简单的安装配置一下即可,监控nginx的并发量,肯定要开启nginx的stub模块,Nginx中的stub_status模块主要用于查看Nginx的一些状态信息.本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定添加--with-http_stub_status_module参数。

编译安装nginx参考http://freeloda.blog.51cto.com/2033581/1288553博文

首先配置其需要的环境,并下载软件包准备安装

yum install perl rrdtool perl-libwww-perl libwww-perl perl-rrdtool -y

wget http://soft.vpser.net/status/nginx-rrd/nginx-rrd-0.1.4.tgz

确定 rrdtool 和相应的perl 被安装上后,开始安装配置nginx-rrd

tar xf nginx-rrd-0.1.4.tgz

cd nginx-rrd-0.1.4

cp usr/sbin/* /usr/sbin/

cp etc/nginx-rrd.conf  /etc/

cp etc/cron.d/nginx-rrd.cron /etc/cron.d/

mkdir /var/www/html/nginx/rrd -pv

mkdir /var/www/html/nginx/html -pv

cp html/index.php /var/www/html/nginx/html/

编辑修改/etc/nginx-rrd.conf文件

vi /etc/nginx-rrd.conf

RRD_DIR="/var/www/html/nginx/rrd/";

WWW_DIR="/var/www/html/nginx/html/";

NICE_LEVEL="-19";

BIN_DIR="/usr/sbin";

SERVERS_URL="http://www.123.com/nginxstatus;www.123.com"

如果有多个URL要监控,中间以空格隔开。URL的第一部分是虚拟主机配置好的stub-status,第二部分是域名所在的主机。默认是15分钟绘制一次图形.

第一种方法:

cat /etc/cron.d/nginx-rrd.cron

# generate graphs from lighttpd RRD data

MAILTO=root

***** root/usr/sbin/nginx-collect

/15**** root/usr/sbin/nginx-graph

你可以根据你的需求去改变绘制图形的周期。其实这个软件就两个pl脚本,一个收集数据,一个绘制图形。

service crond restart

可能出现的错误:

cron任务计划没有执行

查日志发现:

Aug406:11:02centos1000 crond[12966]:(*system*)BAD FILEMODE(/etc/cron.d/nginx-rrd.cron)

报了一个错误,好像是文件的权限有问题,看一下文件的权限,发现是755

# ls -l /etc/cron.d/

-rwxr-xr-x1root root13408-0405:56 nginx-rrd

把权限改为0644,就正常执行了。看来/etc/cron.d/里面放的任务计划文件,不能有执行权限,不然会无法执行!

chmod 0644  /etc/cron.d/nginx-rrd

第二种方法:

设置定时收集数据

 
  
  1. crontab -e  

  2. * * * * * root /usr/sbin/nginx-collect  

  3. */10 * * * * root /usr/sbin/nginx-graph

service crond restart  重启crond服务


查看已安装的nginx是否包含stub_status模块

/usr/sbin/nginx -V  

nginx version: Nginx/1.5.8

configure arguments: --with-http_stub_status_module

确定支持stub_status模块后编辑修改/etc/nginx/nginx.conf文件

vim /usr/local/nginx/conf/nginx.conf  

user  nobody;

worker_processes  1;

events {

   worker_connections  1024;

}

server {

       listen       80;

       server_name  www.123.com;

//server{} 中,需要已经加入如下内容

location / {

  root   /var/www/html/nginx/html/;

  index  index.php index.html index.htm;

location /nginxstatus {

  stub_status on;//这个选项参数就是在编译时对stub_status模块的支持,如果不编译加入则会在启动nginx时有警告信息

  access_log off;

  allow all;

  }

 }

// 去掉如下内容的注释,这里是对php的支持,注意文件路径

location ~ \.php$ {

           root           /var/www/html/nginx/html/;

           #root           html;

           fastcgi_pass   127.0.0.1:9000;

           fastcgi_index  index.php;

           #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

           fastcgi_param  SCRIPT_FILENAME  /var/www/html/nginx/html$fastcgi_script_name;

           include        fastcgi_params;

       }

}

Nginx服务器 /usr/sbin/nginx -s reload


访问页面http://域名/index.php

例如:http://www.123.com/index.php    nginx的连接数如下图

nginx请求数如下图