かもめ日記

ログアナライザをawstatsへ乗り換え

Computer > ソフトウェアレビュー
投稿日:2005年1月25日 09:44
この記事のタグ一覧:awstats

<<戻るホーム進む >>

今までwebalizerを使ってたのですが、 検索エンジンキーワードの扱いが甘いのと、 グラフもHTMLで書けるのに、わざわざGDで画像にしてしまう(の割にダサい)のが気に入らないので、 awstatsへ乗り換えました。

本当は静的HTML生成でやりたいのですが、/usr/lib/cgi-binにスクリプトがインストールされてしまう ので、動的生成(統計は静的に取って、HTML生成のみ動的)で動かす事にしました。

インストール

apt-get install awstats libnet-xwhois-perl libnet-dns-perl libnet-ip-perl として、Suggestされるパッケージと一緒にインストール。

HTMLは動的生成なので、/var/wwwには手をつける必要なし。 統計データは/var/lib/awstatsにできるので、www-dataから読める(o+r)のを確認。 統計取る処理は取り合えず試験的にrootからやる(apacheのログも読めなくちゃいけないので) 事にします。

awstatsの設定

/etc/awstats/awstats.conf/etc/awstats.conf.local の2つが出来ている。awstats.conf.localにはマシンローカルの 設定を書くのだけど、特に必要無いので空のままにしておきます。

awstats.confはデフォルトの設定ですが、バーチャルドメインを使っている ので、awstats.ドメイン名.confにコピーしてドメイン毎に別の設定を 作ります。変更したオプションは以下の通り。

LogFile="/var/log/apache/www.mitsuki.no-ip.com.access.log"
apacheの方でドメイン毎にログを別けているので、そのパスを指定する。 ローテートした時に情報が失われる事になるけど、微量なので気にしない。
LogFormat=1
デフォルトではapache/squid共通フォーマットになっていますが、そのままだと 取得できない情報が出てくるので、apacheのcombined形式を使うように指定。 どのみち、squidのログとひとまとめに統計取りたい場合にはちょっと考えなくては いけませんね。
カスタムログ使ってる場合には、ここに数字ではなくて書式文字列を指定すると、 その形式で解析してくれます。私のところではmod_gzip使ってるので、access.logにまとめて mod_gzipのログを重ねるようにすれば一緒に解析できるようですが、これはちょっと置いておく事にします。
SiteDomain="www.mitsuki.no-ip.com"
ドメイン名。設定ファイルに使ったのと同じものを指定しておきます。
SkipHosts="127.0.0.1 localhost REGEX[^192\.168\.0\.] REGEX[~*\.localnet$] REGEX[^*\.mitsuki\.no-ip\.com$]"
LAN側とローカルからのアクセスを無視するように指定する。 apacheの方でログを取らないようにしていれば問題ありませんが、 私のところでは一応全て取るようにしているので、ローカルからのアクセスが 順位の一番上に出てしまい嬉しくないので無視させます。
BuildReportFormat=xhtml
お好みで
MaxNbOfPageShown=10
MaxNbOfKeyphraseShown=20
MaxNbOfKeywordsShown=20
サマリページに表示するページ毎の統計と、検索エンジンキーワードの件数を変更しました。 これの辺はおこみでどうぞ。
LoadPlugins="tooptip"
HTMLページにツールチップを表示する為のプラグイン
LoadPlugins="decodeutfkeys"e;
UTFの検索文字列をデコードするプラグイン
LoadPlugins="useinfo"
ログインユーザのトラッキングを行うプラグイン

テストしてみる

ここまでで一通り動くはずなのでテストしてみる。 /usr/lib/cgi-bin/awstats.pl -config=www.mitsuki.no-ip.com とやってみて、/var/lib/awstats/に統計情報が作られれば成功。 デバッグログが表示されるので、設定ファイルと最新のログファイルを正しく参照しているか確認してください。

テストで作ったログは、古いログのインポートをする時に邪魔なので一旦消しておきます。

ロボット/SPAMMERの追加

(2005-01-25追記)

デフォルトでは、ローカルなロボットの類を認識してくれないので、/usr/share/awstats/lib/robots.pm にパッチします。とりあえず目に付くやつだけ登録しましたが、 どんどん登録した方がいいかと思います。

--- robots.pm.orig      2005-01-25 09:37:10.000000000 +0900
+++ robots.pm   2005-01-25 09:35:24.000000000 +0900
@@ -366,7 +366,18 @@
 'yahoo\-verticalcrawler',
 'yandex',
 'zealbot',
-'zyborg'
+'zyborg',
+#
+'NATSU-MICAN',
+'Hatena_Antenna',
+'Bloglines\/',
+'blogdb\/',
+'NaverBot-',
+'BlogRanking\/RSS_checker',
+'BlogPeople_Java',
+'Technoratibot',
+'ping.blogger.jp\/RSSdiscovery_v'
+#
 );
 @RobotsSearchIDOrder_listgen = (
 # Generic robot
@@ -717,6 +728,18 @@
 'zealbot','ZealBot',
 'zyborg','Zyborg',

+#
+'NATSU-MICAN','なつみかん',
+'Hatena_Antenna', 'はてなアンテナ',
+'Bloglines\/', 'bloglines',
+'blogdb\/', 'blogdb',
+'NaverBot-', 'Naver',
+'BlogRanking\/RSS_checker', 'Blogランキング',
+'BlogPeople_Java', 'Blogピープル',
+'Technoratibot', 'Techorati',
+'ping.blogger.jp\/RSSdiscovery_v', 'blogger.jp',
+#
+
 # Generic root ID
 'robot', 'Unknown robot (identified by \'robot\')',
 'crawl', 'Unknown robot (identified by \'crawl\')',

--- referer_spam.pm.orig        2005-01-25 09:48:13.000000000 +0900
+++ referer_spam.pm     2005-01-25 09:55:09.000000000 +0900
@@ -26,6 +26,7 @@
 'free'=>1,
 'porn'=>2,
 'sex'=>2,
+'viagra' => 1,

 'full-list.net'=>4,
 'voodoomachine.com'=>4,
@@ -43,6 +44,12 @@
 'chicagodrugclub.com'=>4,
 'massivecocks.com'=>4,

+'casino-gambling.rulo.biz' => 2,
+'play-poker.fidelity.funding.net' => 2,
+'www.condodream.com' => 2,
+'online-deals-4u.info' => 2,
+'best-buy-site-4u.info' => 2,
+'star-poker.tecrep-inc.net' => 2,
 );

過去のログのインポート

最新のログファイルからだけだと、ここ1週間ほどの情報しか乗ってこなくて寂しいので、 ローテート済みのログからインポートしておきます。(DVDにバックアップした分は量が多い ので諦めました)

統計解析する時に、ログの時刻が逆行しているものは無視されるので、必ず古いログから 順番にインポートする必要があります。 下のスクリプトでできるけど、圧縮ログ突っ込むときにファイルグロヴ 使うと順番がおかしくなるから明示しています。

# for i in 8 7 6 5 4 3 2; do
> /usr/lib/cgi-bin/awstats.pl -config=www.mitsuki.no-ip.com -LogFile="zcat /var/log/apache/www.mitsuki.no-ip.com.access.log.$i.gz|";
> done
# /usr/lib/cgi-bin/awstats.pl -config=www.mitsuki.no-ip.com -LogFile=/var/log/apache/www.mitsuki.no-ip.com.access.log.1
# /usr/lib/cgi-bin/awstats.pl -config=www.mitsuki.no-ip.com

-LogFileオプションを指定すると、設定ファイルで指定したLogFileディレクティブをオーバーライド できる。 LogFileディレクティブはperlのopenに渡して居るだけらしくパイプが使える。便利。

apacheの設定

/usr/share/doc/awstats/examples/apache.confにサンプルが有るので、 /etc/apache/conf.d/awstats.confへコピーして、末尾にある余計なScriptAliasを 削除。

/etc/init.d/apache relaodでリロードしてから、 http://localhost/cgi-bin/awstats.plを叩いて見てページが表示されればOK。

cronへの登録


#! /bin/sh
/usr/lib/cg-bin/awstats.pl -config=www.mitsuki.no-ip.com

ってな感じで全てのドメインの統計取るスクリプトを用意して、/etc/cron.hourly へ放り込んでお終い。念のためにメールで飛んできたログを見て動作しているのを確認しておきます。

評価

HTMLページ綺麗ですねぇ。

Gkrelm見ていると、HTMLの動的生成に結構負荷掛かってますね。 静的生成した方が、/var/www のバックアップ量減っていいな。バックアップといや、 /var/lib/awstatsのバックアップも取らないと、クラッシュした時に統計が消えるから、 ログもバックアップから戻してインポートするハメになります。

(有) いなかどっとコム
Rating:4.0
¥ 2,310 (Used:¥ 1,350)
入門編
石井 研二
Rating:4.5
¥ 1,680 (Used:¥ 1,100)
SEO、ユーザービリティ、アクセシビリティ
松木 孝幸
Rating:5.0
¥ 3,675 (Used:¥ 2,008)
数少ないAnalogの解説本
一条 博
¥ 2,625 (Used:¥ 1,224)
水野 貴明
¥ 3,990 (Used:¥ 1,353)
Powered by Amazcache

関連リンク


トラックバック一覧

Trackback URL: http://www.mitsuki.no-ip.com/mt4/mt-tb.cgi/201

0個のコメント

コメントを投稿

スパム対策の為に全てコメントは確認後に公開します、投稿したコメントはすぐには表示されませんので、しばらくお待ちください。



seagull(かもめ)
体はおっさん、頭脳は子供のサラリーマンエンジニア。
Atom feed / Twitter / タスクリスト / GIT リポジトリ / ギャラリ

follow seagull_kamome at http://twitter.com
タグ クラウド
トピック
最近の記事
RSS feed meter for http://www.mitsuki.no-ip.com/~seagull/diary/
あわせて読みたい