httpdログの統計・分析/解析・レポート~AWStats のインストール・設定

httpdログの統計・分析/解析・レポートを行うために、AWStats を導入することにしました。

要件事項は次のようなものです。

    (1) 対象ログはhttpdログだけで充分
    (2) リアルタイムのログが対象にならなくてもかまわない
    (3) Webブラウザでレポートを参照したい
    (4) サーバリソースへの負荷を最小限にしたい
    (5) 開発プロジェクトが動いている

AWStats は、これらの要件事項をほぼ満たしていると判断できましたので、導入することにしました。

1.AWStats のインストール

yumでインストール可能なパッケージがあるはずだと考えられますので、検索してみます。

[root ~]# yum search awstats
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: rsync.atworks.co.jp
 * base: rsync.atworks.co.jp
 * epel: ftp.iij.ad.jp
 * extras: rsync.atworks.co.jp
 * rpmforge: ftp-stud.fht-esslingen.de
 * updates: rsync.atworks.co.jp
addons                                                   |  951 B     00:00
base                                                     | 2.1 kB     00:00
epel                                                     | 3.7 kB     00:00
Not using downloaded repomd.xml because it is older than what we have:
  Current   : Fri Mar 11 02:11:19 2011
  Downloaded: Wed Jan 19 16:09:22 2011
extras                                                   | 2.1 kB     00:00
rpmforge                                                 | 1.1 kB     00:00
updates                                                  | 1.9 kB     00:00
vz-base                                                  |  951 B     00:00
vz-updates                                               |  951 B     00:00
3762 packages excluded due to repository priority protections
=============================== Matched: awstats ===============================
awstats.noarch : Advanced Web Statistics
awstats-selinux.noarch : SELinux support for Awstats

確かにあります。パッケージの情報を参照してみます。

[root ~]# yum info awstats
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: rsync.atworks.co.jp
 * base: rsync.atworks.co.jp
 * epel: ftp.iij.ad.jp
 * extras: rsync.atworks.co.jp
 * rpmforge: ftp-stud.fht-esslingen.de
 * updates: rsync.atworks.co.jp
3762 packages excluded due to repository priority protections
Available Packages
Name       : awstats
Arch       : noarch
Version    : 6.95
Release    : 2.el5
Size       : 1.3 M
Repo       : epel
Summary    : Advanced Web Statistics
URL        : http://awstats.sourceforge.net
License    : GPLv2
Description: Advanced Web Statistics is a powerful and featureful tool that
           : generates advanced web server graphic statistics. This server log
           : analyzer works from command line or as a CGI and shows you all
           : information your log contains, in graphical web pages. It can
           : analyze a lot of web/wap/proxy servers like Apache, IIS, Weblogic,
           : Webstar, Squid, ... but also mail or ftp servers.
           :
           : This program can measure visits, unique vistors, authenticated
           : users, pages, domains/countries, OS busiest times, robot visits,
           : type of files, search engines/keywords used, visits duration, HTTP
           : errors and more... Statistics can be updated from a browser or your
           : scheduler. The program also supports virtual servers, plugins and a
           : lot of features.
           :
           : With the default configuration, the statistics are available:
           : http://localhost/awstats/awstats.pl

この時点のバージョン7.0より古いパッケージであることが確認できます。
そこで、このパッケージが登録されているepelリポジトリを外して、再検索、パッケージ情報の参照を行います。

[root ~]# yum info --disablerepo=epel awstats
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: rsync.atworks.co.jp
 * base: rsync.atworks.co.jp
 * extras: rsync.atworks.co.jp
 * rpmforge: ftp-stud.fht-esslingen.de
 * updates: rsync.atworks.co.jp
92 packages excluded due to repository priority protections
Available Packages
Name       : awstats
Arch       : noarch
Version    : 7.0
Release    : 1.el5.rf
Size       : 1.2 M
Repo       : rpmforge
Summary    : Powerful and fullfeatured server logfile analyzer
URL        : http://awstats.sourceforge.net/
License    : GPL
Description: Advanced Web Statistics is a powerful and featureful tool that
           : generates advanced web server graphic statistics. This server log
           : analyzer works from command line or as a CGI and shows you all
           : information your log contains, in graphical web pages. It can
           : analyze a lot of web/wap/proxy servers like Apache, IIS, Weblogic,
           : Webstar, Squid, ... but also mail or ftp servers.
           :
           : This program can measure visits, unique vistors, authenticated
           : users, pages, domains/countries, OS busiest times, robot visits,
           : type of files, search engines/keywords used, visits duration, HTTP
           : errors and more... Statistics can be updated from a browser or your
           : scheduler. The program also supports virtual servers, plugins and a
           : lot of features.

rpmforgeリポジトリに最新バージョンのパッケージがあるようです。
これをインストールします。

[root ~]# yum install --disablerepo=epel awstats
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: rsync.atworks.co.jp
 * base: rsync.atworks.co.jp
 * extras: rsync.atworks.co.jp
 * remi-test: remi-mirror.dedipower.com
 * rpmforge: ftp-stud.fht-esslingen.de
 * updates: rsync.atworks.co.jp
addons                                                   |  951 B     00:00
base                                                     | 2.1 kB     00:00
extras                                                   | 2.1 kB     00:00
rpmforge                                                 | 1.1 kB     00:00
updates                                                  | 1.9 kB     00:00
vz-base                                                  |  951 B     00:00
vz-updates                                               |  951 B     00:00
92 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package awstats.noarch 0:7.0-1.el5.rf set to be updated
--> Processing Dependency: perl(LWP::UserAgent) for package: awstats
--> Running transaction check
---> Package perl-libwww-perl.noarch 0:5.805-1.1.1 set to be updated
--> Processing Dependency: perl-HTML-Parser >= 3.33 for package: perl-libwww-perl
--> Processing Dependency: perl(URI::URL) for package: perl-libwww-perl
--> Processing Dependency: perl(URI) for package: perl-libwww-perl
--> Processing Dependency: perl(HTML::Entities) for package: perl-libwww-perl
--> Processing Dependency: perl(Compress::Zlib) for package: perl-libwww-perl
--> Processing Dependency: perl(URI::Heuristic) for package: perl-libwww-perl
--> Processing Dependency: perl(URI::Escape) for package: perl-libwww-perl
--> Running transaction check
---> Package perl-Compress-Zlib.i386 0:1.42-1.fc6 set to be updated
---> Package perl-HTML-Parser.i386 0:3.55-1.fc6 set to be updated
--> Processing Dependency: perl-HTML-Tagset >= 3.03 for package: perl-HTML-Parser
--> Processing Dependency: perl(HTML::Tagset) for package: perl-HTML-Parser
---> Package perl-URI.noarch 0:1.35-3 set to be updated
--> Running transaction check
---> Package perl-HTML-Tagset.noarch 0:3.10-2.1.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                  Arch         Version             Repository      Size
================================================================================
Installing:
 awstats                  noarch       7.0-1.el5.rf        rpmforge       1.2 M
Installing for dependencies:
 perl-Compress-Zlib       i386         1.42-1.fc6          base            52 k
 perl-HTML-Parser         i386         3.55-1.fc6          base            92 k
 perl-HTML-Tagset         noarch       3.10-2.1.1          base            15 k
 perl-URI                 noarch       1.35-3              base           116 k
 perl-libwww-perl         noarch       5.805-1.1.1         base           376 k

Transaction Summary
================================================================================
Install       6 Package(s)
Upgrade       0 Package(s)

Total size: 1.9 M
Total download size: 1.2 M
Is this ok [y/N]: y
Downloading Packages:
awstats-7.0-1.el5.rf.noarch.rpm                          | 1.2 MB     00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : perl-Compress-Zlib                                       1/6
  Installing     : perl-URI                                                 2/6
  Installing     : perl-HTML-Tagset                                         3/6
  Installing     : perl-HTML-Parser                                         4/6
  Installing     : perl-libwww-perl                                         5/6
  Installing     : awstats                                                  6/6

Installed:
  awstats.noarch 0:7.0-1.el5.rf

Dependency Installed:
  perl-Compress-Zlib.i386 0:1.42-1.fc6     perl-HTML-Parser.i386 0:3.55-1.fc6
  perl-HTML-Tagset.noarch 0:3.10-2.1.1     perl-URI.noarch 0:1.35-3
  perl-libwww-perl.noarch 0:5.805-1.1.1

Complete!

これで、インストール完了です。
インストールされたディレクトリやファイルには次のようなものがあります。

/var/www/awstats
/etc/awstats/awstats.model.conf
/etc/awstats/awstats.local.localdomain.conf
/etc/cron.hourly/00awstats
/etc/httpd/conf.d/awstats.conf
/usr/libexec/webmin/awstats
2.cronスクリプトの一時移動

インストール直後は /etc/cron.hourly/00awstats が1時間ごとに実行されるようになりますので、設定等が完了するまで、実行されないようにしておく方がいいでしょう。

[root ~]# mv /etc/cron.hourly/00awstats /root/.
3.過去ログの用意

統計・分析/解析・レポートに必要なhttpdログの過去ログを用意します。
例えば、通常ログローテーションを行っていると思いますので、過去全世代分をマージして一つのファイルにする場合には次のように logresolvemerge.pl を実行します。
ログローテーションされた過去ログファイル名が access_log.1~n となっていることを前提としています。

[root ~]# logresolvemerge.pl /var/log/httpd/access_log.* > /root/access_log_all
4.過去ログの統計・分析/解析の実行

設定ファイルは、/etc/awstats/awstats.localhost.localdomain.conf です。

4-1.設定ファイル名の変更
[root ~]# mv /etc/awstats/awstats.localhost.localdomain.conf /etc/awstats/awstats.www.goofoo.jp.conf
4-2.設定変更(過去ログ統計・分析/解析のための設定)
[root ~]# vim /etc/awstats/awstats.www.goofoo.jp.conf

(設定変更箇所)

LogFile="/var/log/httpd/access_log"
↓
LogFile="/root/access_log_all" ・・・対象過去ログファイル

SiteDomain="localhost.localdomain"
↓
SiteDomain="www.goofoo.jp" ・・・自サイトのフルドメインを指定する

AllowFullYearView=2
↓
AllowFullYearView=3 ・・・CGIでも月次ベースのレポートを利用できるようにする

FirstDayOfWeek=0
↓
FirstDayOfWeek=1 ・・・週の始まりを月曜日とする
4-3.存在する設定ファイルの確認

/etc/awstatsディレクトリに下記ファイル以外が存在しないことを確認します。というのも、次のステップで使用する awstats_updateall.pl が awstats.model.conf 以外の設定ファイルを読み込んでしまう仕様になっているため、不要な設定ファイルがあると必要のない処理を実行してしまうからです。

    awstats.www.goofoo.jp.conf
    awstats.model.conf
4-4.過去ログ統計・分析/解析実行
[root ~]# awstats_updateall.pl now -awstatsprog=/var/www/awstats/awstats.pl -configdir=/etc/awstats
5.通常運用用の設定

過去ログの処理が終わりましたので、通常運用の設定を行います。

5-1.設定変更(通常運用のための設定)
[root ~]# vim /etc/awstats/awstats.www.goofoo.jp.conf

(設定変更箇所)

LogFile="/root/access_log_all"
↓
LogFile="/var/log/httpd/access_log" ・・・対象ログファイル
5-2.cronスクリプトの再配置

一時退避しておいた /etc/cron.hourly/00awstats を復活させます。

[root ~]# mv /root/00awstats /etc/cron.hourly/.
6.httpd の設定

インストールによって、/etc/httpd/conf.d/awstats.conf が作成されています。もちろん、Apache Webサーバがインストールされていることが前提となりますが。
/etc/httpd/conf/httpd.conf で /etc/httpd/conf.d 以下のすべての confファイルを読み込むように設定していれば(Include conf.d/*.conf)、そのままで設定は完了になります。
個々に設定を変更する場合には、/var/www/awstats で CGI が動作するように設定してください。

これで、インストール・設定はすべて完了です。

さて、レポートの参照方法ですが、URLは下記のようになりますので参考にしてください。

    http://www.goofoo.jp/awstats/awstats.pl?config=www.goofoo.jp&configdir=/etc/awstats
    ※ config に指定する文字列は、[/etc/awstats/awstats.ここの文字列.conf]です。

Comments are closed.