金曜日, 9月 07, 2012

久々にawstatsを利用、わずか5手順ででき変わらずいいオープンソース


最近はanalyticsとか無料で高機能な解析サービスがあるので使う機会が少なくなってきているaccess_log解析型のオープンソース
最近はnewrelicとかもあるし今後ますますきびしいかも

それらが現れるまでは私は、awstatsを好んでよく使っていました
シンプルだしね;)


1.
まず商用環境で解析したくないのでlogをもってきて
cd /somewhere
wget http://somewhere.on.net/access_log-201208{01..31}.gz


2.
installして
yum install awstats

3.
設定する
/etc/awstats/awstats.model.conf
をひな形として、任意の名前で
/etc/awstats/awstats.service.conf
を作成
・LogFileはコマンドラインで指定するけれども一応
LogFile=/somewhere/access_log
・LogFormatはむしろきっちり設定したほうがとりこぼしがあるという世界..
でも、元のapacheのhttpd.confなどのLogFormat設定を見て、
http://www.adminweb.jp/apache/log/index2.html
ここなども確認しながら設定をがんばる
LogFormat = "%host %other %other %other %other %time1 %methodurl %code %bytesd %refererquot %uaquot %other"
・DNSLookupは時間がかかかるのでお好みで1などに

4.
access_logの読込を実行する
久しぶりにさわったら便利になってたんでプチ感動しました
月別
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -update -config=service -LogFile=/somewhere/access_log-20120801
日別
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -update -config=service -LogFile=/somewhere/access_log-20120801 -databasebreak=day -update
時間別
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -update -config=service -LogFile=/somewhere/access_log-20120801 -databasebreak=hour -update
で解析できます
これを集計したい全部shellでがつっと走らせれば一巻の終わりです

注意点としては
・古いlog->新しいlogの順に読んで行かないとダメ。逆だと読んでくれません。
もし古いのを読み込ませたい場合は、いろいろごちゃごちゃやるよりも素直に
/var/lib/awstats/
以下にできる該当のファイルを消したほうが早い
・そこそこ容量が増えるので少ない容量の時は注意が必要です、私はAWSでやって容量少なかったので溢れました

5.
アクセスする
http://YourURI/awstats/awstats.pl?config=app1
http://YourURI/awstats/awstats.pl?config=app1&databasebreak=day&year=2012&month=08&day=24
http://YourURI/awstats/awstats.pl?config=app1&databasebreak=hour&year=2012&month=08&day=24&hour=17

で、終わりです!
以前と変わらずいいツールですね
選択肢が増えているため使われる機会は私自身も減っていますが、、愛着もありますしいいオープンソースには末永くがんばって欲しいです:)