最新消息:

使用rrdtool统计网站PV和IP

监控 admin 3271浏览 0评论

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

1、安装rrdtool

  1. centos: yum install rrdtool
  2. ubuntu: sudo apt-get install rrdtool

2、创建rrdtool数据库

  1. rrdtool create /var/www/test.rrd             
  2. -s 300     
  3. DS:pv:GAUGE:600:U:U   
  4. DS:ip:GAUGE:600:U:U   
  5. 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、创建更新脚本

  1. #!/bin/bash
  2. becur=`date -d “5 minute ago” +%H%M%S`
  3. 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)” `
  4. #获取五分钟内PV
  5. pv=`echo “$ list” | wc -l`
  6. #获取五分钟内IP
  7. ip=`echo “$ list” | awk ‘{print $ 1}’ | sort | uniq | wc -l `
  8. #每五分钟更新数据库
  9. rrdtool update /var/www/test.rrd N:$ {pv}:$ {ip}
  10. #每五分钟更新图片
  11. rrdtool graph /var/www/1h-pv.png
  12. -t “PV and IP statistics in an hour” 
  13. –start now-3600
  14. –watermark “`date`”
  15. –no-gridfit
  16. –slope-mode
  17. -l 0
  18. -y 1000:5
  19. -X 0 
  20. DEF:mypv=/var/www/test.rrd:pv:AVERAGE
  21. DEF:myip=/var/www/test.rrd:ip:AVERAGE
  22. AREA:mypv#9F35FF:”PV Num” 
  23. 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统计网站PV和IP

您必须 登录 才能发表评论!