AwStatsのインストールとカスタマイズ

はじめに

知っている方は知っていると思いますが、AWStatsは元々日本語には対応していませんでした。しかし、美しいユーザーインターフェースなど、日本語化されていないからという理由で切り捨ててしまうには少々もったいない気がしたので、Ver.2.23の時に日本語に対応させたのが始まりです。

AWStatsはVer.4.0から正式に日本語に対応したことに「なって」います。しかし、対応といっても実情は非常にお粗末な状態で単語レベルで置き換えただけであるというのが実情でした。また、バージョンの更新にあわせてメッセージファイルがメンテナンスされている様子もなく、中途半端な対応であるといわざるを得ない状態です。

「完全日本語版」と謳っているココロはそこら辺にあります。実際にどのようなことを行ったかというと、

  • 単語の置き換えレベルだったユーザーインターフェースを、日本語として「自然」に見えるように修正を行った。
  • メンテナンスされていないと思われるメッセージファイルを、ちゃんと更新した。
  • なぜか"MS-Kanji"だった文字コードを、一般的な"EUC-JP"にした。
  • 英語のままだったTooltip Helpを日本語化した。
  • 日本の検索エンジン(goo, biglobe, nifty...)が検出されるようにした。
  • 日本語の検索語が正常に検出されない(文字化け)を修正した。
  • 付属ドキュメントまで完全に日本語化した。~

といったところです。

ここら辺を修正したのが完全日本語版ということになります。

必要なファイル

  1. AWStats-5.0-Release_Jpn.tar.gz - http://www.awstats.org/

インストール

Ver.5.0では、インストールやセットアップの手順については、/docディレクトリ配下の HTMLファイルにまとめられています。しかし、先にも書いたとおり、配布ファイルの中には含まれておりません。

日本語版AWStatsはtar.gz形式で配布されています。Linuxで解凍するには、ダウンロードしたファイルがあるディレクトリに移動してから

$tar -zxvf AWStats-5.0-Release_Jpn.tar.gz

と入力すると、カレントディレクトリにAWStats-5.0-Release_Jpnというディレクトリが作成され、そこに解凍されます。

解凍後、AWStats-5.0-Release_Jpnディレクトリに移動し、以下の作業を行います。パスは共通というわけで必要に応じて適時読み替えてください。

  1. Perlの場所 / バージョンの確認
    "which perl"と入力して返ってくるパスが、perlがある場所になります。バージョンは "perl -v"と入力するとわかります。

    当方の環境はPerl 5.6.1で、このバージョンならば間違いなく動作します。最新のPerl 5.8で動いたという方がいらっしゃったら、こちらまでご連絡頂ければ幸いです。

  2. Apacheのログファイルフォーマットを"Combined"に変更
    /etc/httpd/conf/httpd.confのログ形式を設定している部分を、以下のように修正します。
    修正後にはhttpdを再起動しないと有効になりません。
    自分で定義したログ形式でもAWStatsで処理することはできますが、細かな定義が必要になります。
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here. Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    #CustomLog /var/log/httpd/access_log common
    #
    # If you would like to have agent and referer logfiles, uncomment the
    # following directives.
    #
    #CustomLog /var/log/httpd/referer_log referer
    #CustomLog /var/log/httpd/agent_log agent
    #
    # If you prefer a single logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    CustomLog /var/log/httpd/access_log combined

  3. 配布ファイルをcgi-binディレクトリにコピーする
    解凍したディレクトリの/wwwroot/cgi-bin以下の内容を、サーバーのcgi-binディレクトリに コピーします。具体的には、awstas.pl, awstats.model.conf_jpの2ファイルと、 /lang, /lib, /pluginsの3ディレクトリになります。設定ファイルでパスを設定するので、 必ずしもcgi-bin直下でなければいけないというわけではありません。

  4. awstats.plファイルのperlの場所を設定
    ファイルの一番先頭の"#! /usr/bin/perl"を、1. で確認した実際にperlがある場所に変更します。

  5. Apacheから読めるディレクトリに全てのアイコンファイルディレクトリをコピー
    解凍したディレクトリのwwroot/icon配下にある6ディレクトリを、Apacheが読むことができる場所にコピーします。デフォルトでは/wwwroot/iconsディレクトリになるはずです(httpd.confのAliasの部分で指定されています)。ここでは、/var/www/icons)にコピーしたことにします。

  6. awstats.model.conf_jpをawstas.myvirtualhostname.confという名前でコピー
    先ほどコピーしたawstats.model.conf_jpを、awstats.(自分のホスト名).confという名前で コピーします。複数ホストを使い分けるのでなければ、単純にawstats.confという名前でも問題 はありません。awstats.myvirtualhostname.confというファイルが存在しなければ、awstats.conf が利用されます。ここでは、awstats.confでコピーしたことにします。

  7. awstats.confの"LogFile"を設定
    "LogFile"に、decode.plを通したログファイルのパスと名前を設定します。このファイル名は、 後述のawstats.cronで与えた名前になります。awstats.cronでのデフォルトはaccess_log.eucです。 相対パスで書いても大丈夫ですが、トラブルの種になるので極力絶対パスで書きましょう。

  8. awstats.confファイルの"LogFormat"を設定 "LogFormat"を、"1"に設定します。元々"1"になっているはずです。
    "1"は、combinedなログという意味になります。

  9. awstats.confファイルの"DirIcons"を設定
    "DirIcons"を、5.でコピーした場所に設定します。指定方法に若干の注意が必要なので、awstats.confの説明をよく読んで設定してください。

  10. awstats.confファイルの"SiteDomain"を設定
    "SiteDomain"に、解析対象のWebサーバーへのアクセスに利用されるドメイン名やサーバー名を 設定します。

  11. awstats.confファイルのその他のパラメーターを設定
    必要に応じて、その他のパラメーターをセットします。他にも重要なパラメーターはいくつも ありますので、必ず一度は全てに目を通して確認しておいてください。

日本語特有の設定

オリジナルのAWStatsですと、ここで設定のテストに入りますが、日本語版はもう少しテストの前に手順が必要です。続いて以下の作業を行います。以下の作業は日本語版オリジナルの作業なので、HTMLファイルには記載はありませんのでご注意ください。

  1. Jcode.pmのインストール
    URLをデコードするために必要となるJcode.pmをインストールします。
    インストール方法についてはここでは紹介しません。

  2. 必要なファイルのコピー
    配布ファイルを解凍したディレクトリの/wwwroot/cgi-bin/decode.plを/var/www/cgi-binディレクトリにコピーします。このスクリプトの場所はどこでも構いませんが、当方はawstats.plと同じディレクトリに置いています。

  3. decode.plの修正
    1行目のPerlの場所を、実際の環境に合わせて修正します。

  4. テスト用ログファイルの用意
    AWStats完全日本語版では、decode.plで変換したログファイルをawstats.plの入力ファイルとして利用します。このため、awstats.plを起動する前に、オリジナルのログファイルをdecode.plを通して変換する必要があります。本番運用ではcronでコピーを行いますが、ここでは手動でコピーをしてテスト用のログを用意します。以下をコマンドラインから入力して、テスト用のデコード 済みアクセスログを用意します。
    $/var/www/cgi-bin/decode.pl < /var/log/httpd/access_log > /var/www/cgi-bin/access_log.euc
    decode.plの場所とaccess_logの場所は、実際の環境に合わせて修正してください。デコード済みアクセスログのaccess_log.eucのファイル名とパスは、前項の7.の設定に合わせて下さい。

  5. awstats.confの設定の確認
    awstats.conf中の、"PurgeLogFile"が"0"(処理済ログを切り詰めない)であることを確認します。本番運用では切り詰める方が好ましいので"1"にしますが、テスト中は"0"にしておくと便利です。awstats.plの実行時にエラーが出てもログファイルは残るため、何度でもやり直しがきくからです。

AWStats完全日本語版のテスト

  1. awstats.plファイルを実行し、更新処理を行う
    "awstats.pl -config=myvirtualhostname -update"と入力して、AWStatsの更新処理を起動します。"myvirtualhostname"は、設定ファイルをコピーする際に利用した"awstats.myvertualhostname.conf"のことです。こうして起動すると、awstats.myvertualhostname.confの設定内容にしたがって処理が実行されます。

    この初回のアクセス解析は、固まっているんじゃないかと思うほど時間が掛かる場合があります。すぐに終わる場合もありますが、処理するログの量によっては数十分掛かることもあります。処理の長さは本当に千差万別で一概には言えませんが、ここはひとつ気長にお待ちください。

    正常に終了していれば、処理結果が以下のような形で表示されます。
    Lines in file: 225730
    Found 5 dropped records,
    Found 124 corrupted records,
    Found 0 old records,
    Found 225601 new records.
    上から、ファイルの行数、統計対象外の行数、不正な行数、過去に処理済みの行数、新たに処理した行数になります。この処理はログファイルの解析の実行と、その解析結果のデータベースファイルへの書き出しのみを行います。

  2. awstats.plファイルを実行し、レポート作成処理を行う
    1. で解析されたデータを視覚的にブラウザから閲覧することができるように、レポートの作成処理を行います。当方のサイトで見えているようなレポートを静的なHTMLとして出力する場合、以下の形でawstats.plを起動します。
    $perl awstats.pl -config=virtualhostname -output -staticlinks > awstats.virtualhostname.html
    他にも、いきなりPerlのCGIとしてブラウザに表示させたり、特定のレポートだけを出力したりもできます。

  3. 出力されたHTMLファイルをブラウザから閲覧してみる
    1.や2.でエラーが出ていなければ基本的に問題はないはずですが、一応ブラウザで正常に表示されることを確認します。

本格運用のための設定

ここまでAWStats完全日本語版を利用するための基本的な設定は終了しました。あとは本格運用の設定をするだけです。実際には、同梱のawstats.cronで定期的に実行するように設定することになります。awstats.cronの処理内容を簡単に紹介しますと、

  1. オリジナルのログファイルをdecode.plというフィルタに通してからテンポラリなファイルとしてコピーする。(デフォルトファイル名:access_log.euc)。この時点で検索エンジンの引数の日本語化は終了。

  2. awstats.plが切り詰めるファイルはaccess_log.eucになるので、オリジナルのログファイルを切り詰める処理を実行。

  3. 統計の更新処理 / 作成処理を走らせる。

  4. 念のため出力されたHTMLファイルの権限を、nobodyに変更しておく。

こんな感じになります。1.の部分はテスト用ログファイルを用意する際に行った処理と同じ内容です。

また、awstats.cronを実行すると、オリジナルのアクセスログファイルが切り詰められてしまいますので、正常な動作を確認するまではバックアップを取ったり、設定ファイルの"ArchiveLogRecords"を"1"に設定(処理済ログのアーカイブファイルを作成する)しておいてください。

このファイルを/etc/cron.hourlyなどに置けば、上記の処理が自動的に1時間おきに行われるようになります。私の場合は1時間に1度なのでcron.hourlyですが、例えば1日に1回でよければcron.dailyに置きます。しかし、可能であればその前に設定ファイルの"PurgeLogFile"を"1"に変更して下さい。この設定にすると、AWStatsが毎回処理終了後にデコード後のアクセスログファイルを切り詰めてくれるので、処理速度が向上します。

実際にcronとして実行させる前に、コマンドラインからawstats.cronを実行してみて、正常に動作しているのを確認するようにしてください。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Fri, 30 Apr 2004 16:32:04 JST (7306d)