Linux Lovers
    Fedora Coreで始めるサーバ構築

Home > Webサーバ > Awstats

Awstatsでアクセスログの管理

Awstatsはアクセスログの解析ツールです。特徴としてはかなり見やすく、集計結果もかなり詳細に
表示してくれるので、アクセスログを管理するには、非常に便利なツールです。
ここでは、yumを利用して導入し、また文字化けへの対処方法なども紹介していきたいと思います。


Awstatsの導入と設定

Awstatsは、yumのエクストラパッケージで提供されているものになります。
標準のyumの設定では、導入することができませんので、エクストラパッケージを利用できる
ようにする記述をyum.confに追加する必要があります。

当サイトでは、FC3でエクストラパッケージを利用する方法を以下で紹介していますので、
良かったら参照してみてください。

エクストラパッケージが利用できるようになりましたら、yumでインストールします。

# yum install awstats


以上が済みましたら、Awstatsの設定ファイルの編集をします。
ただ、これは特に編集する部分もありませんので、そのままでも問題無く動きます。
一応編集する部分だけピックアップしたいと思います。

Awstatsの設定ファイルは、初期状態では、/etc/awstats/awstats.linux.confというような、
awstats.ホスト名.confという設定ファイルになっていると思います。これを先ず変更します。

cd /etc/awstats
mv awstats.linux.conf awstats.conf

これで、設定ファイル名をawstats.confに変更しました。続いて、このawstats.confの
編集に移ります。

# vi /etc/awstats/awstats.conf

SiteDomain="localhost.localdomain"        ←143行目

SiteDomain="chibi.name"       ←ドメイン名は置き換えてください。

DNSLookup=2

DNSLookup=1           ←1に変更

Lang="auto"

Lang="jp"            ←jpに変更

この3つの変更をしてください。DNSLookupは、ドメイン、国別などの統計情報を取得する場合の
DNSの逆引きに関する部分です。1をした場合は、逆引きする設定になります。デフォルトの2の場合は
DNSのキャッシュ内のIPアドレスのみ逆引きする設定になります。

以上で設定は完了ですので、一度httpdを再起動させてから、ログファイルからデータファイルの
作成をします。

# service httpd restart
# /usr/share/awstats/tools/awstats_updateall.pl now

これで閲覧可能な状態になりますので、以下のようなURLを指定してアクセスしてみてください。
http://ドメイン名/awstats/awstats.pl これでawstatsの画面が出ると思います。


>>このページのTOPへ

Awstatsへのアクセスを制限

次はAwstatsの閲覧ですが、これはLAN内のみの閲覧に制限しておきます。
制限をかけるには、/etc/httpd/conf.d/awstats.confの編集を行います。
以下のように変更します。

# vi /etc/httpd/conf.d/awstats.conf
<Directory "/usr/share/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

<Directory "/usr/share/awstats/wwwroot">
Options None
AllowOverride None
Order deny,allow           ←deny,allowに変更
Deny from all  ←追記
Allow from 192.168.1        ←allを192.168.1に変更(ここは自分の環境に置き換えて)
</Directory>

なお、deny,allowの記述ですが、このように記述した場合には、deny、allowの順に評価されます。
deny,allowと記述した場合は、デフォルトでアクセスが禁止されます。Denyにマッチしないか、
Allowにマッチするホストがアクセスできます。

逆に、allow,denyとした場合は先ほどとは逆で、allow、denyの順に評価され、デフォルトで
アクセスが許可され、Denyにマッチするホストが拒否されることになります。



>>このページのTOPへ

文字化けの対策とCronへの登録

このままでも閲覧は十分可能なんですが、ただ1つ問題点があります。
それは、検索語の部分です。文字化けを起こした単語が何個もあると思います。
Awstatsが出力するHTMLファイルの文字コードはデフォルトでUTF-8です。ですので、その他の文字コードで
検索された単語などは文字化けしてしまいます。

これの対応には、先ずaccess_logの検索文字列をUTF-8に変換してやる必要があります。
このUTF-8に変換してくれるスクリプトはこちらを利用させていただきました。

このスクリプトを/root以下に置きました。そして、次にこのスクリプトを使用して早速、
access_logを変換したいと思います。その前にこのスクリプトに実行権限を与えてあげます。
それから以下のように実行します。(/rootで)

# chmod +x conv_weblog_to_utf8.pl
# ./conv_weblog_to_utf8.pl < /var/log/httpd/access_log > /var/log/httpd/access_log.utf

この場合、新たにUTF-8に変換したaccess_log.utfというファイルが、/var/log/httpd/以下に
出来上がります。

次に重要なことがあります。またawstats.confを設定しなければなりません。
以下の設定を変更してください。

# vi /etc/awstats/awstats.conf

LogFile="/var/log/httpd/access_log"

LogFile="/var/log/httpd/access_log.utf"         ←変換したaccess_log.utfを指定する

以上で、今後UTF-8以外の文字コードで検索された文字列もawstatsの画面で文字化けしないように
することができます。

最後にこれらを自動で実行する為にcrontabに登録します。

# crontab -e

00 00 * * * /root/conv_weblog_to_utf8.pl < /var/log/httpd/access_log > /var/log/
httpd/access_log.utf ; /usr/share/awstats/tools/awstats_updateall
.pl now > /dev/null 2>&1
↑実際は1行で記述

この場合、0時0分にaccess_logの変換をして、そのあとでデータファイルの作成をするようにしています。
A ; B」という記述で、Aを実行した後にBを実行するという意味になります。またこの場合、Aのコマンドの
成功失敗に関わらずBを実行します。「A && B」と記述すると、Aが成功したらその後でBを実行するという
意味になります。また、「A || B」と記述するとAが失敗したらBを実行するという意味になります。

このログ変換とデータファイルの作成の時間帯は自分の目的に合うように変更してください。
1時間ごとに実行してもいいですし、1日に2回実行するとかでもいいです。


>>このページのTOPへ

最終更新 : 05/22/2005


Fedoraの設定    SSH    Web    Mail    FTP    DNS    ファイルサーバ    運用管理    システム管理    ネットワーク    セキュリティ対策
Copyright (C) 2004-2007 chibi ,All Rights Reserved