RRD TOOLでアクセスカウンタをグラフに

computer — Hidekichi @ 2004/10/30 土曜日

ある程度、自由にグラフを書く方法が身についた。

そうすると、いろいろとグラフにしてみたくなるのが人情。そういやこんな感覚、今までにもあったな。バイクに乗れるようになっていろんなところに行きたくなったとか、スキーである程度滑れるようになって急斜面に挑戦したり。

MRTGの時も、ちょっとマイブームになったのだけど、RRDTOOLをきっかけにもう一度挑戦してみることにする。

グラフに出来そうな数値でサーバで取得できるもの・・・。サーバ内をうろうろと捜し歩くと、アクセスカウンタを見つける。BigScooter.com と マジェスティオーナーズクラブ、オーナーズクラブの掲示板と画像掲示板のアクセスカウンタがあったので、それをグラフにしてみた。

20041030.png

1分平均のアクセス数を5分単位で取得、各アクセス数をSTACKで表示。このグラフで言えば、夜9時くらいに全サイトのトップページへのアクセスの累計が7カウント/分くらいになったということ。

設定の方法は以下のとおり

ラウンドロビンのデータベースを作成するディレクトリに移動。

・データベースの作成
rrdtool create maje.image.rrd –step 300 \
DS:count:COUNTER:600:0:U \
RRA:AVERAGE:0.5:1:720 \
RRA:AVERAGE:0.5:6:2880 \
RRA:AVERAGE:0.5:60:2016 \
RRA:AVERAGE:0.5:360:1488 \
RRA:AVERAGE:0.5:4320:1460 \
RRA:MIN:0.5:6:2880 \
RRA:MIN:0.5:60:2016 \
RRA:MIN:0.5:360:1488 \
RRA:MIN:0.5:4320:1460 \
RRA:MAX:0.5:6:2880 \
RRA:MAX:0.5:60:2016 \
RRA:MAX:0.5:360:1488 \
RRA:MAX:0.5:4320:1460

・カウンタのデータファイルを直接読んで、データベースに追記
#!/usr/bin/perl
$data = time();
$data .= “:”;
open(IN, “cat カウンタのデータファイル |”);
while () {
if (/([0-9]+)/){
$data .= $1
}
}
close(IN);
$data .= “\n”;
system(”/usr/bin/rrdtool update カウンタの.rrd $data”);

こんな感じのをカウンタの数だけ作成。一つのデータベースにまとめてもよかったけど、後々のメンテ性を考えると分けていた方がよいかなと。これをcronで5分に1度動かす。

・グラフ作成コマンド
/usr/bin/rrdtool graph daily.png \
–start -25hour –imgformat PNG \
–width 400 –height 100 \
–title “トップページへのアクセス” \
–vertical-label “counts/minute” \
DEF:count1=maje.jp.rrd:count:AVERAGE \
DEF:count2=bsc.rrd:count:AVERAGE \
DEF:count3=maje.bbs.rrd:count:AVERAGE \
DEF:count4=maje.image.rrd:count:AVERAGE \
CDEF:count1perminutes=count1,60,* \
CDEF:count2perminutes=count2,60,* \
CDEF:count3perminutes=count3,60,* \
CDEF:count4perminutes=count4,60,* \
AREA:count4perminutes#f0f080: \
STACK:count3perminutes#c0c0f0: \
STACK:count1perminutes#c0f0c0:”MOC Majesty Owners Club ” \
STACK:count2perminutes#FFc0c0:”BSC BigScooter.com\n” \
LINE2:count4perminutes#808000:”MOC BBS” \
STACK:count3perminutes#0000C0:”MOC IMAGE BBS \n” \
STACK:count1perminutes#00C000: \
STACK:count2perminutes#FF0000: >/dev/null

こんなのを数時間、1日、1週間、1ヶ月、1年でグラフに作成。シェルスクリプトにして、cronで1時間に一度更新とした。それがこれ、トップページへのアクセス数グラフ

次は気温あたりをやってみたい。

コメント (1) »

  1. No.1

    無料アクセスカウンター

     はじめまして。blogを始めました。どうぞよろしくお願い致します。  当サイトの母体は無料アクセスカウンターレンタルサイトです。これからブログを通じて、当サイトのアクセスカウンターをレンタルいただいて……

    トラックバック by アクセスカウンター.com — 2004/12/10 金曜日 @ 14:29:44

コメント RSS

コメントをどうぞ

段落や改行は自動挿入です。メールアドレスはサイト上では非表示です。
使用できる HTML タグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

HTML convert time: 2.971 sec. Powered by WordPress ME