AWStatsの導入

この記事は1年以上前に投稿されたものです。
内容が古い可能性がありますのでご注意ください。

Webサイトのログ解析ツールを導入します。
ここではApacheのログを解析するツールを検討します。
ログ解析ツールとしては「Webalizer」「AWStats」等がありますが、ここではAWStatsを導入します。
※AWstatsを実行するには、Webブラウザで見れる環境とPerlが必要です。

【2010.5.26追記】Apacheの設定を一部追加いたしました

AWStatsのインストール

ubuntu serverではパッケージとして準備されており、簡単にインストール出来ます。

[html]sudo aptitude update
sudo aptitude install awstats[/html]

AWStatsの設定

設定ファイルは/etc/awstats/配下にあります。
スクリプトの本体は/usr/lib/cgi-bin/awstats.plです。
また、グラフに必要な画像は/usr/share/awstats/icon/以下にあります。

AWStatsはWebブラウザから確認しますので、Apacheに追加で設定ファイルを作成する必要があります。

それでは、順を追って設定していきます。

1.confファイルの作成

[html]sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.conf.original
#バックアップを作成

sudo nano /etc/awstats/awstats.conf
※変更する箇所のみ記載します

LogFile=”/var/log/apache2/access.log”
#ログファイル名が異なる場合は書き換えます

LogType=W
#通常はWを設定

LogFormat=1
#Apache形式のログを指定する場合は「1」を設定

SiteDomain=”自宅サーバーのドメイン名”
#ドメイン名を設定します

DirData=”/var/lib/awstats/サイト名”
#解析結果のログファイルを保存する場所を指定します

DirCgi=”/hogehoge/awstats”
#CGIが動作するディレクトリを、URLのルート(ApacheのDocumentRoot)からの相対パスで指定します
※上記の指定だと、CGIが動作するディレクトリは
http://xxx.xxx.xxx/hogehoge/awstats/
となります。

DirIcons=”/hogehoge/awstats-icon”
#解析結果の画面に使う画像のディレクトリを、URLのルート(ApacheのDocumentRoot)からの相対パスで指定します
※上記の指定だと、画像のディレクトリは
http://xxx.xxx.xxx/hogehoge/awstats-icon/
となります。

AllowAccessFromWebToAuthenticatedUsersOnly=1
#アクセス制限をかける場合は1に変更します

AllowAccessFromWebToFollowingAuthenticatedUsers=”xxxxxxxxxx”
#アクセス制限をかける場合は認証するユーザー名をセットします

#上記アクセス制限を掛ける場合は、/hogehoge/awstats/ディレクトリに.htaccessを配置してDigest認証をかけて下さい。
※/hogehoge/が管理用ディレクトリなので、/hogehoge/に.htaccessを置いてもいいかと思います。

AllowAccessFromWebToFollowingIPAddresses=”127.0.0.1 192.168.xxx.xxx-192.168.xxx.xxx”
#ログ解析ページにアクセスできるユーザーをサーバー自身および自宅LAN内に限定します

Lang=”jp”
#日本語で表示するように変更

LoadPlugin=”geoipfree”
#アクセス元の地域を解析するプラグインを有効にします(コメントアウト解除)
#ubuntu serverの場合、デフォルトでプラグインファイルが入っています。

#編集後保存します[/html]

設定ファイル保存後、解析ファイルを保存するディレクトリを作成します。

[html]sudo mkdir /var/lib/awstats/サイト名[/html]

2.Apacheの設定

AWStats用の設定を行います。
Apacheの設定にて作成した設定ファイルを編集します。

[html]sudo nano /etc/apache2/sites-available/demo
#実際に作成されたファイル名に置き換えて下さい

<VirtualHost>ディレクティブの閉じタグの前に追加します

#/home/demo/www/ディレクトリ以下に管理専用のディレクトリ「hogehoge」を作成し、アクセス制限をかけます
<Directory “/home/demo/www/hogehoge”>
#SSLでのみアクセス可(SSL設定後有効にします)
#SSLRequireSSL

#アクセスをサーバー自身及び自宅LANからのみ許可します
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.xxx
Allow from 192.168.xxx
</Directory>

#管理専用のディレクトリの下にawstatsディレクトリを作成し、Aliasを設定します
Alias /hogehoge/awstats/ “/usr/lib/cgi-bin/”

#/usr/lib/cgi-bin以下の制限を設定します
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
#CGIの実行を許可し、オーナー一致の場合のみのシンボリックリンクを辿ることを許可
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

#アクセスをサーバー自身及び自宅LANからのみ許可します
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.xxx
Allow from 192.168.xxx
</Directory>

#アクセス解析用の画像のAliasを作成します
※相対パスの関係により、/hogehoge/awstats/以下ではなく、/hogehoge/ディレクトリ直下にAliasを作成します
AliasMatch ^/hogehoge/awstats-icon(.*) /usr/share/awstats/icon$1
<Directory “/usr/share/awstats/icon”>
#アクセスをサーバー自身及び自宅LANからのみ許可します
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.xxx
Allow from 192.168.xxx
</Directory>

#設定ファイルを保存後、Apacheに再読み込みさせます
sudo /etc/init.d/apache2 force-reload[/html]

次にディレクトリを作成します。

[html]cd /home/demo/www/
mkdir -p hogehoge/awstats[/html]

最後に実行ファイルのシンボリックリンクを作成します。

[html]sudo ln -s /usr/lib/cgi-bin/awstats.pl /home/demo/www/hogehoge/awstats/[/html]

(2010.5.26追記)もう一つ、アイコン画像用のシンボリックリンクを作成します。
この設定を行わないと画像が表示されないようですorz

[html]sudo ln -s /usr/share/awstats/icon /home/demo/www/hogehoge/awstats-icon[/html]

3.ログファイルの設定変更

Apacheのログファイルの設定を一部変更します。
Apacheのログファイル切替え時、AWStatsのデータベースに取り込んでから切替えを行うようにします。

[html]sudo nano /etc/logrotate.d/apache2

/var/log/apache2/*.log {
・・・
sharedscripts
#↓追加ここから
prerotate
/usr/bin/perl /usr/lib/cgi-bin/awstats.pl -config=awstats -update
endscript
#↑追加ここまで
postrotate
・・・
}[/html]

上記設定で、root権限にて毎日1回ログ解析ファイルが作成されます。

4.実際に確認してみます

ログ解析ファイルを作成します

[html]sudo perl /usr/lib/cgi-bin/awstats.pl -config=awstats -update[/html]

実行したら、Webブラウザにてアクセスしてみます。

[html]http://自宅サーバーのプライベートIPアドレス/hogehoge/awstats/awstats.pl[/html]

※アクセス制限をかけているので、ドメイン名ではなくプライベートIPアドレスでアクセスします。
画像付きでグラフ等が表示されればOKです。

5.cronの設定変更

パッケージからインストールすると/etc/cron.d/にawstatsのcron用スクリプトが作成されます。今回は3.の過程にて毎日1回解析ファイルを作成していますので、cronを実行しないよう設定を変更します。

[html]sudo chmod -x /etc/cron.d/awstats[/html]

参考サイト様

「AWStatsの導入」への2件のフィードバック

  1. ピンバック: このブログについて « SkyGarden出張所

  2. ピンバック: AWStatsの導入(Debian Lenny) | Rino Server Blog

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA