Centos网站服务器使用rrdtool统计网站PV和IP,centosrrdtool这几天初学rrdto


现在网站服务器已经使用snmp进行监控,已经对CPU,内存,流量等进行了监控,但觉得还需要加一项监控,就是网站的PV和IP的监控,这样可以快速知道服务器负载上升是否是网站访问量增加的原因。这几天初学rrdtool,这个工具既能存储数据,又能画图,非常的方便。


下面是统计近一天的pv和ip图。


1、安装rrdtool

centos: yum install rrdtool


ubuntu: sudo apt-get install rrdtool


2、创建rrdtool数据库


rrdtool create /var/www/test.rrd


-s 300


DS:pv:GAUGE:600:U:U


DS:ip:GAUGE:600:U:U


RRA:AVERAGE:0.5:1:288


这里创建一个test.rrd数据文件,相关参数说明如下:


-s 300 300秒存储一次数据


DS:pv:GAUGE:600:U:U


DS:ip:GAUGE:600:U:U 指定两个数据源DS,字段分别为pv和ip


RRA:AVERAGE:0.5:1:288 指定RRA,相当于数据表,存储一天的数据。

3、创建更新脚本

#!/bin/bash


becur=`date -d "5 minute ago" +%H%M%S`


list=`tac /var/log/apache2/access.log | awk -v a="$becur" -F [' ':] '{t=$5$6$7;if (t>=a) {print;} else {exit;} }' | egrep -v ".(gif|jpg|jpeg|png|css|js)" `


#获取五分钟内PV


pv=`echo "$list" | wc -l`


#获取五分钟内IP


ip=`echo "$list" | awk '{print $1}' | sort | uniq | wc -l `


#每五分钟更新数据库


rrdtool update /var/www/test.rrd N:${pv}:${ip}


#每五分钟更新图片


rrdtool graph /var/www/1h-pv.png


-t "PV and IP statistics in an hour"


--start now-3600


--watermark "`date`"


--no-gridfit


--slope-mode


-l 0


-y 1000:5


-X 0


DEF:mypv=/var/www/test.rrd:pv:AVERAGE


DEF:myip=/var/www/test.rrd:ip:AVERAGE


AREA:mypv#9F35FF:"PV Num"


AREA:myip#00DB00:"IP Num"


把此脚本添加进计划任务,每五分钟执行一次。


这是一个包含数据更新和图片生成的脚本,相关参数说明如下:


-t "PV and IP statistics in an hour" 指定图表标题


--start now-3600 获取近一小时数据


-l 0 Y轴从0开始


-y 1000:5 定义y轴分隔线为1000,5条显示一刻度


-X 0 以原值显示y轴

rrdtool相关教程:http://oss.oetiker.ch/rrdtool/

相关内容

    暂无相关文章