最近,Web サーバの統計情報が見づらくなってきた。変なリファラをつけたアクセスが多いのが原因。不要なリファラを無視するように Webalizer の設定を行う。
Webalizer は Web のログ解析ソフトである。月毎のアクセスの集計をしてくれて,分かりやすい図を出力してくれるので非常に便利。しかし,最近ログに異変が起きており,意味がなくなりつつある項目がある。
「どのサイトからリンクをたどって来てくれたか」ということは「リファラ」(Referrer, 参照元) としてログに記録される。Webalizer には「Top 30 of 1342 Total Referrers」のように,参照元のランキングを表示する機能がある。問題は,このリファラに起きている。リンクがないサイトのリファラをつけたアクセスが増えてしまったのである。これは,コメントスパムなどを目的としたアクセスに特に多い。ログに残るだけなので,一般のユーザには全く関係がない。なぜこのようなことをするのか意味が分からない。Web サーバの管理者に対する嫌がらせとしか思えず理解に苦しむ。
Webalizer には,リファラを集計結果に表示させないためのオプションが2種類用意されている。HideReferrer と IgnoreReferrer である。HideReferrer は「数をカウントするが表示はしない」というもの。IgnoreReferrer は「数のカウントもしないし,もちろん表示もしない」,つまり「何もなかったこと」にするディレクティブである。
不要なリファラのアクセスは,ほとんどがコメントスパム用のゴミアクセスなので,無視したい。すなわち IgnoreReferrer 指定することにする。IgnoreReferrer にはワイルドカード指定ができるが,ワイルドカード「*」は前か後ろかにしかつけられない。
本日2004年1月16日現在の指定は 116 件(IgnoreReferrer.20050116.txt)。これをコンフィグレーションファイル(例えば /etc/webalizer/webalizer.conf)に追加すればよい。
これで統計情報に反映されることがなくなるのではあるが,1つ注意がある。設定にもよるが,多くの場合「IgnoreReferrer を指定した以降」のアクセスに対して,この指定が有効になる。多くの場合,「Incremental yes」という指定によって,ログの増分だけを統計情報に追加することが行われている。この指定をしておくと,ログ(例えば /var/log/httpd/access_log)をローテートすることで容量を減らすことができるからである。ログをローテートしている状況で,「Incremental no」を指定してしまうと,IgnoreReferrer の設定は反映されるが,現在のログ分しか表示されなくなってしまう。つまり,それ以前の統計情報がすべて消えてしまうのである。昔のログを消してしまっている場合は,「Incremental no」にしてはいけない。
現在の統計情報に反映させたい場合,いくつかの方法が考えられる。
どれにするか…悩ましい問題である。ちなみに,このサイトでは最後の方法をとっている。しかし,ログの容量は増える一方で 400 MB になっていて,統計情報生成にも5分以上かかっている。
追記:
2005年1月30日現在: 173 件 (IgnoreReferrer.20050130.txt)
2005年4月9日現在: 245 件 (IgnoreReferrer.20050409.txt)
2005年4月30日現在: 272 件 (IgnoreReferrer.20050430.txt)
2005年4月9日追記:
Webalizer のインストール方法についての記事を書きました(nlog(n): Webalizer のインストール)。
Master Archive Index
Total Entry Count: 1957