サーバ移行時の AWStats の移行方法

サーバの64bit化に伴い、httpdログの統計・分析/解析・レポートツールの AWStats も移行する必要がありました。

ここでは、AWStats の移行方法を整理しておきます。ポイントは、旧環境における過去ログ分析データを移行することです。

移行に必要な作業は次の通りです。

1.AWStats のインストール

yumでインストール可能なパッケージが rpmforgeリポジトリにありますので、それをインストールします。

まずは、パッケージ情報を確認します。

[root ~]# yum info awstats
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.kddilabs.jp
 * extras: www.ftp.ne.jp
 * rpmforge: ftp-stud.fht-esslingen.de
 * updates: www.ftp.ne.jp
277 packages excluded due to repository priority protections
Available Packages
Name       : awstats
Arch       : noarch
Version    : 7.0
Release    : 2.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.

間違いはないので、これをインストールします。

[root ~]# yum install awstats
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.kddilabs.jp
 * extras: www.ftp.ne.jp
 * rpmforge: ftp-stud.fht-esslingen.de
 * updates: www.ftp.ne.jp
277 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
--> Running transaction check
---> Package awstats.noarch 0:7.0-2.el5.rf set to be updated
--> Processing Dependency: perl(LWP::UserAgent) for package: awstats
--> Processing Dependency: perl(Geo::IP) for package: awstats
--> Running transaction check
---> Package perl-Geo-IP.x86_64 0:1.31-1.el5.centos set to be updated
--> Processing Dependency: libGeoIP.so.1()(64bit) for package: perl-Geo-IP
---> 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 geoip.x86_64 0:1.4.6-1.el5.rf set to be updated
---> Package perl-Compress-Zlib.x86_64 0:1.42-1.fc6 set to be updated
---> Package perl-HTML-Parser.x86_64 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-2.el5.rf            rpmforge     1.2 M
Installing for dependencies:
 geoip                  x86_64     1.4.6-1.el5.rf          rpmforge     754 k
 perl-Compress-Zlib     x86_64     1.42-1.fc6              base          52 k
 perl-Geo-IP            x86_64     1.31-1.el5.centos       extras        46 k
 perl-HTML-Parser       x86_64     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       8 Package(s)
Upgrade       0 Package(s)

Total download size: 2.6 M
Is this ok [y/N]: y
Downloading Packages:
(1/8): perl-HTML-Tagset-3.10-2.1.1.noarch.rpm          |  15 kB     00:00
(2/8): perl-Geo-IP-1.31-1.el5.centos.x86_64.rpm        |  46 kB     00:00
(3/8): perl-Compress-Zlib-1.42-1.fc6.x86_64.rpm        |  52 kB     00:00
(4/8): perl-HTML-Parser-3.55-1.fc6.x86_64.rpm          |  92 kB     00:00
(5/8): perl-URI-1.35-3.noarch.rpm                      | 116 kB     00:00
(6/8): perl-libwww-perl-5.805-1.1.1.noarch.rpm         | 376 kB     00:00
(7/8): geoip-1.4.6-1.el5.rf.x86_64.rpm                 | 754 kB     00:02
(8/8): awstats-7.0-2.el5.rf.noarch.rpm                 | 1.2 MB     00:00
------------------------------------------------------------------------------
Total                                         554 kB/s | 2.6 MB     00:04
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : geoip                                                  1/8
  Installing     : perl-Geo-IP                                            2/8
  Installing     : perl-Compress-Zlib                                     3/8
  Installing     : perl-URI                                               4/8
  Installing     : perl-HTML-Tagset                                       5/8
  Installing     : perl-HTML-Parser                                       6/8
  Installing     : perl-libwww-perl                                       7/8
  Installing     : awstats                                                8/8

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

Dependency Installed:
  geoip.x86_64 0:1.4.6-1.el5.rf
  perl-Compress-Zlib.x86_64 0:1.42-1.fc6
  perl-Geo-IP.x86_64 0:1.31-1.el5.centos
  perl-HTML-Parser.x86_64 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 となっていることを前提としています。
※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.旧サーバの過去ログ分析データの移行

旧サーバの /var/www/awstats いかに存在する例えば下記のような名前のファイルをすべて、新サーバの /var/www/awstats 以下に配置します。

    awstats042011.www.goofoo.jp.txt
    awstats052011.www.goofoo.jp.txt

※ファイル名のフォーマットは、awstats[月][年].[Webサイトのフルドメイン].txt

4-5.過去ログ統計・分析/解析実行
[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 が作成されていますが、旧サーバの設定と同様に個々の環境に合わせて設定してします。

これで、AWStats の移行はすべて完了です。

最後に、レポートを下記のURLを参考に、個々に適切なURLでアクセスすると表示されますので、確認して下さい。

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

Comments are closed.