1. 安裝rrdtool
yum install rrdtool
2. 建立 rrdtool 資料庫
rrdtool create /opt/local/rrdtool/jicki.rrd -s 300 DS:pv:GAUGE:600:U:U DS:ip:GAUGE:600:U:U RRA:AVERAGE:0.5:1:288
-s 300 每 300秒儲存一次資料
DS:pv:GAUGE:600:U:U 指定資料來源DS 欄位pv
DS:ip:GAUGE:600:U:U 指定資料來源DS,欄位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 /opt/local/rrdtool/moxian.rrd N:${pv}:${ip}
#每五分鐘更新圖片
rrdtool graph /opt/local/rrdtool/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=/opt/local/rrdtool/jicki.rrd:pv:AVERAGE DEF:myip=/opt/local/rrdtool/jicki.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軸