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]です。