AWStatsのDebian etchでの利用方法

もうAnalogは使わないことにした。

Debian etchでの導入はとっても簡単。

とりあえず、VirtualHost?環境で利用することを踏まえて設定を書くことにするが、特に目新しいことを書くわけではなく、最低限必要なことだけを書くことにする。

サーバ1台をAWStats専用サーバにし、サイト内の全WEBサーバのログをNFSやrsync, scp等の方法でこのサーバに集めて、すべての統計情報をこのサーバで解析、表示する、といった使い方が良いかな、と今は思っている。というのも、WEBサーバのそれぞれの環境に合わせてAWStatsをインストールする必要もないし、Webサーバのログ形式は製品やバージョンに関わらず、比較的統一されているので。

前提条件

  • awstatsを導入するサーバはdebian etch
  • バーチャルドメイン www.example.com 用に設定
  • ログファイルは、rotatelogs により分割され、ファイル名が /var/log/apache2/www.example.com/access_log.123456789 のようになる。
  • ログフォーマットは、apacheでいう「combined」
  • ログは、http://www.example.com/cgi-bin/analysis/awstats.pl にアクセスして閲覧
  • http://www.example.comDocumentRoot?は /var/www/www.example.com/htdocs
  • http://www.example.com/cgi-bin のディレクトリ(ScriptAlias?)は、/var/www/www.example.com/cgi-bin

aptでババンと導入

aptでawstatsおよびawstatsのRecommended、suggestedになっているパッケージをごっそり導入する。(apt-cache show awstats等で見ればsuggested, recommendedのパッケージが判るし、単にaptでインストールする際にも表示される。IPアドレスの逆引きやwhois用のPerlライブラリが一緒にインストールされる。)

設定ファイルの編集

/etc/awstats/awstats.conf を編集しても良いが、バーチャルホスト設定をしていて、複数のログが存在する場合は、それぞれ別々の設定ファイル、統計計算を行わせることも可能である。

その場合のファイル名は、

/etc/awstats/awstats.abc.conf 

のように、「awstats.」 と 「.conf」の間に適当な識別子を入れてファイル名をつけると、ドメインごとに設定ファイル及び出力を分けることができる。

LogFile?の指定においては、単独のファイル名をLogFile?に指定することも可能。また、以下のように、

LogFile="cat /var/log/apache2/www1/access_log.*|"

とコマンドとパイプを利用すると、rotatelogs等により分割されたログファイルを纏めて解析してくれるようになる。 また、設定ファイルにサンプルが書いてあるが、awstatsパッケージと一緒にexampleとしてインストールされるlogresolvemerge.pl(/usr/share/doc/awstats/examples/logresolvemerge.pl)を利用すると、負荷分散等でログファイルが複数に分割された場合でも時系列で結合して標準出力に出力してくれる。(私は試していない)

次に、

LogFormat=1 (etchでは、デフォルトは4)

にしておくと、apacheでcombined形式の出力に対応し、Referer、User-agentの統計も解析してくれる。

解析するバーチャルホスト名のFQDNを

SiteDomain="www.example.com"

と設定する。これを設定しないと解析してくれない。

これが最低限(+α)の設定である。実のところ、パッケージインストール時にインストールされる /etc/awstats/awstats.conf 内のコメントがかなりしっかりしているので、これを参考にすれば、ほぼ普通の要件は満たせると思う。

Cronの設定

定期的に解析するためcronの設定をする。

/etc/cron.d/awstatsがインストールされているが、/etc/awstats/awstats.confファイルを利用する設定になっているので、

*/10 * * * * www-data /usr/lib/cgi-bin/awstats.pl -config=abc -update >/dev/null

と設定しておくと、設定ファイル /etc/awstats/awstats.abc.conf を使って統計情報をアップデートしてくれる。

ついでに一度動作チェック&最初の解析のために、

 su www-data -c '/usr/lib/cgi-bin/awstats.pl -config=abc -update

を実行して動作することを確認すると良い。

CGIの設置

VirtualHost?の設定(debian etchの場合は、sites-availableへの設定の追加, a2ensiteの実行)、CGIモジュールの有効化(debian etchの場合は「a2enmod cgi」の実行)はあらかじめ行ってあるものとする。

.plもCGIとして動作するよう設定しておく。(/etc/apache2/apache2.confに該当箇所があるので、コメントアウトを解除し、以下のように.plも追記しておく。apache2.confを編集したくない場合は、/etc/apache2/conf.d/cgi-handler と言ったファイルを書き、同じく以下の行を記述しておく。)

AddHandler cgi-script .cgi .pl

設定記述後は、/etc/init.d/apache2 reload 実行する。 (a2enmod cgiを実行した場合は、reloadではなくrestart)

データ解析スクリプトとCGIスクリプトは同じファイル。(/usr/lib/cgi-bin/awstats.pl)

apache等のWEBサーバでCGIが動作する領域(前提条件より、/var/www/www.example.com/cgi-bin/analysis/以下等)に、/usr/lib/cgi-bin/awstats.pl のsymlinkかコピーを置く。

/usr/share/awstats/icon のsymlinkもしくはコピーを /awstats-icon のURI(この位置は、設定ファイルでURIを指定可能) で外部から見れるように配置する(前提条件より、/var/www/www.example.com/htdocs/awstats-icon)。

表示

ブラウザから次のように設定ファイルの識別子(今回はabc)アクセスして結果が表示されれば成功。

http://www.example.com/cgi-bin/analysis/awstats.pl?config=abc

あとは、パスワード認証の設定などにより他人に見られないようにするだけ。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-04-19 (土) 15:58:03 (4226d)