アクセスログ解析ツールWebalizerをインストールする

生のWebサーバーのログからデータを解析するのは至難の業です。
Webalizerは生のWebサーバのログを解析・視覚化してくれるので、アクセス情報の解析に役立ちます。

今回はWebalizerのインストール ~ 使用・設定方法までまとめてみます。

環境:CentOS 6.4

Webalizerインストール → 実行

yumでインストール
# yum install -y webalizer

設定ファイルを編集
# vi /etc/webalizer.conf
下記行を環境によって書き換える
LogFile        /var/log/httpd/access_log
OutputDir      /var/www/usage
LogFile・・・apacheのログファイルを指定する
OutputDir・・・解析結果のHTMLファイルを書き出すディレクトリを指定する。

webalizerコマンドで解析を実行
# webalizer

以上でインストールは完了です。webalizerコマンドを実行した際にOutputDirで指定したディレクトリに解析結果がhtmlファイルとして出力されます。

上記例ではOutputDirをドキュメントルート配下に設定しておりますので、「http://ホスト名/usage/」にアクセスすることで解析結果が表示されます。

Usage Statistics for www18412ue.sakura.ne.jp - Summary by Month 2013-05-08 10-59-08

Monthの各行のリンクをクリックすると月毎の詳細な情報が閲覧できます。

各項目の内容は以下のような意味になります。

項目 内容
Hits すべてのアクセスの数。エラーもカウントされる。
Files すべてのアクセスから、正常に出力を行った数。
Pages すべてのアクセスのうちのHTMLのページ数
Visits サイト訪問者数。30分以内の同一IPからのアクセスはカウントされない。
Sites サイト訪問者数。一年間での同一IPからのアクセスはカウントされない。
KBytes 出力したデータの総量

ログを更新する際は、都度「webalizer」コマンドを実行しなければいけないのですが、cronに登録と自動で更新されて便利です。
その際にはログファイルがlogrotateされる時間より前に、そしてなるべく時間が空かないように設定するといいと思います。

# vi /etc/crontab
下記行を追加
30 2 * * * root /usr/bin/webalizer

この例は午前03:00にlogrotateが実行されることを想定しています。
深夜帯の30分のログは、まあいいでしょうということで。

バーチャルホストで複数サイトを運用している場合の設定例

<VirtualHost *:80>
    ServerName first.sawara.me
    DocumentRoot /home/first.sawara.me/public_html
    ErrorLog /var/log/httpd/first.sawara.me_error_log
    CustomLog /var/log/httpd/first.sawara.me_access_log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName second.sawara.me
    DocumentRoot /home/second.sawara.me/public_html
    ErrorLog /var/log/httpd/second.sawara.me_error_log
    CustomLog /var/log/httpd/second.sawara.me_access_log combined
</VirtualHost>

上記の様にバーチャルホストを設定し、複数サイトを同一サーバー上で運用しているときは サイト毎にwebaliser用のコンフィグファイルを作成することで、サイト毎にwebaliserを実行することができます。

ログを作成したいホスト用にwebalizer.confをコピー
# cp -p /etc/webalizer.conf /etc/webalizer_first.sawara.me.conf
# cp -p /etc/webalizer.conf /etc/webalizer_first.sawara.me.conf

作成したコンフィグファイル毎に下記のように設定してください。

# vi /etc/webalizer_first.sawara.me.conf

ログファイルを指定します。
LogFile        /var/log/httpd/first.sawara.me_access_log
webalizerの解析結果を出力するディレクトリを指定します。
OutputDir      /home/first.sawara.me/public_html/usage
履歴ファイルのパスを指定します。
省略(コメントアウト)した場合はOutputDirで指定したディレクトリに「webalizer.hist」というファイル名で出力されます。
HistoryName    /home/first.sawara.me/public_html/usage/webalizer.hist
増分ファイルのパスを指定します。
省略(コメントアウト)した場合はOutputDirで指定したディレクトリに「webalizer.current」というファイル名で出力されます。
IncrementalName        /home/first.sawara.me/public_html/usage/webalizer.current

ポータル毎のコンフィグファイルが完成したら、-cオプションでコンフィグファイルを指定し、webalizerコマンドを実行します。

# webalizer -c /etc/webalizer_first.sawara.me.conf

こちらもcronに登録しておくと自動的に解析結果が更新されます。

# vi /etc/crontab
下記行を追加
35 2 * * * root /usr/bin/webalizer -c /etc/webalizer_first.sawara.me.conf

誤動作を起こさないように、一応cronの時間はずらしておくのが無難でしょう。

コメントを残す