今回は,Apacheのアクセス・ログを取り上げます。Perlのスクリプトを用いて,Apacheのアクセス・ログを解析・集計し,さらにあなたが欲するレポートを作成していきます。

 Webサーバーを設置したら,どれくらいのアクセスがあるのか,どのページに人気があるのか気になることでしょう。そうした情報はアクセス・ログを解析することによって取得できます。

 ここで紹介する手法や用いたモジュールはアクセス・ログだけに限らず,ファイルの解析や文書の加工などに応用できます。

 なお,単にアクセス・ログを解析したいということであれば,AnalogやAWStatsなど既に多くの解析用のフリーソフトが作成され,利用されています。あなたが欲するログが取得できるのであれば,それらソフトウエアを使うべきでしょう。あえて車輪を再発明する必要はありませんから。

アクセス・ログのフォーマット

 Apacheのアクセス・ログはごく普通のテキスト・ファイルです。1回のアクセスに1行が追加されていきます。各行の出力フォーマットの定義や出力先ファイルは,httpd.confの設定ファイル内の「LogFormat」と「CustomLog」というディレクティブで指定できます。

 「CLF」(Common Log Format)とも呼ばれる「common」や,commonに参照元とエージェントが追加された「combined」などいくつかのフォーマットは,あらかじめ定義されています。これらフォーマットは空白で区切られた,複数の項目によって構成されています。httpd.confでの設定と構成する項目の内容,commonでのアクセス・ログの例をそれぞれ表1図1に示しました。

表1●Apacheのアクセス・ログのフォーマット
[画像のクリックで拡大表示]
表1●Apacheのアクセス・ログのフォーマット

図1●Apacheのアクセス・ログ
図1●Apacheのアクセス・ログ
[画像のクリックで拡大表示]

 表1に示したフォーマットをカスタマイズすることも可能です。ログ・ファイルの詳しい情報はApacheのオンライン・マニュアルにあるログ・ファイルに載っています。