6.3 FreeBSD 10.4 RELEASE - apache24 - ログ解析ツール - awstats

 
6.3.1 ports
6.3.2 apache 定義ファイルの編集
6.3.3 awstats.conf の編集
6.3.4 ログファイルの連結
6.3.5 解析ファイルの作成
6.3.6 ドメイン名日本語ファイル
6.3.7 バージョン 7.5.1 一次対応

6.3.1 ports

/usr/ports/www/awstats/

6.3.2 apache 定義ファイルの編集

 正常にインストールできていれば、仮にWEBサーバのドキュメントルートが /usr/local/www とすれば
/usr/local/www/awstats
というディレクトリが作成されているはずです。  apache の定義ファイルを作成してアクセスできるようにします。  定義ファイルを仮に /usr/local/etc/apache22/Includes/awstats.conf として以下のように編集します。

Alias /awstatsclasses  "/usr/local/www/awstats/classes/"
Alias /awstatscss      "/usr/local/www/awstats/css/"
Alias /awstatsicons    "/usr/local/www/awstats/icons/"
Alias /awstats         "/usr/local/www/awstats/cgi-bin/"

<Directory "/usr/local/www/awstats/">
    DirectoryIndex  awstats.pl
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all     ← all でなく IPアドレスは絞るべきです
</Directory>

6.3.3 awstats.conf の編集

 /usr/local/www/awstats/cgi-bin/awstats.model.conf というコンフィグレーションファイルのサンプルがあります。これを awstats.ドメイン名.conf にコピーして編集します。

> cd /usr/local/www/awstats/cgi-bin/
> cp -p awstats.model.conf awstats.ドメイン名.conf
 編集する箇所は、環境、好みによって異なりますが、わたしがおすすめ、および実際に手を入れたのは以下の通りです。

LogFile="..."                     ← ログのファイル名を絶対パスで記述します
SiteDomain="..."                  ← ドメイン名を記述します
HostAliases="localhost 127.0.0.1" ← ウェブサーバの別名を記述します
/awstats
↑ awstats の cgi-bin を配置するディレクトリ名を記述します(相対も可)
AllowFullYearView=2               ← 後でログを見る際に年間で見たい場合は 3 にします
SkipHosts="..."
↑ localhost をはじめ 自分のクライアントのドメイン名等を記述します(解析にリストしない)
SkipFiles="..."                   ← 特にアクセス解析に必要ない画像ファイル等を定義します
 SkipHostsSkipFiles 等は REGEX 準拠の正規表現を使用することでワイルドカード表記が可能です。

6.3.4 ログファイルの連結

 awstats.ドメイン名.conf にログファイル名を記述しますが、awstats は analog と違ってログファイル名をワイルドカード表記して複数のログファイルを一度に読み込ませることはできません。  newsyslog 等で月間、週間等でログファイルをローテーションしている場合は、複数ファイルになっていますが、これをすべて解析したい場合は、ログファイルを連結します。連結したログファイルの出力先は、デフォルトで awstats のワークフォルダが /var/lib/awstats となっているのでそこに出力します。  前節のコンフィグレーションファイルの設定で、アクセス解析に不要なホスト名を設定できると記述していますが、これは、アクセスホストのリストからはずすのみで、そのホストからアクセスしたページへのカウント等はそのままカウントされてしまいます。  これを解消するには、ログファイルからそのホストの履歴を消してしまう必要があります。  面倒になったので、ログファイルのマージとスキップホストの行を消す Perl Script を書きました。

 上記をダウンロードして使用する際は、拡張子が txt になっていますので、pl 等に書き換えて、実行権限をつけてください。それと先頭の方にログファイルのディレクトリやファイル名、スキップホストの文字列を定義する箇所がありますので、それを適切に書き換えれば、awstats 用のログファイルを作成することができるはずです。
 文字コードが EUC になっていますので、適切なコードに変えてください。
 尚、タブストップは4カラムで書いておりますので、8タブが好きな方は、そこも変換してください。

6.3.5 解析ファイルの作成

 ログファイル連結して準備が整ったので、解析ファイルを出力します。

> /usr/local/bin/perl /usr/local/www/awstats/cgi-bin/awstats.pl ¥
     -update -config=ドメイン名.conf
     					↑	前々項で作成したファイルの awstats. の部分を省いた名称です
 と1行で記述して出力します。  結果がうまく作成されれば http://ドメイン名/awstats/awstats.pl?config=awstats.ドメイン名.conf にアクセスすることでログの解析結果を見ることができるようになります。  あとはこれらの一連の作業をスクリプト化して crontab に記述することで、定期的にログ解析することができるようになります。

6.3.6 ドメイン名日本語ファイル

 awstats の日本語紹介サイトだかどこかに、国別ドメインの日本語ファイルがあったような気がするのですが、どこに書いてあったのか、忘れてしまいました。  探すのもめんどくさくなってきたので、作りました。あちこちからコピペしてきたので、誤りがあるかもしれませんがよろしければ使ってみてください。

 ダウンロードして、awstats 配下のディレクトリの ./cgi-bin/lib にあるファイルを本ファイルと置き換えれば、「訪問者・ドメイン/国名」の表示が日本語になります。
 これは、文字コードが UTF-8 ですのでご注意ください。

6.3.7 バージョン 7.5.1 一次対応

 2016年7月18日にバージョン 7.5.1 に更新されましたが、これに微妙な不具合があります。  2018年1月17日現在、バージョンは 7.7 になっていますが、未だに解消していません。  ports に「Log of /head/www/awstats」で記述してあるんですが。  バージョン 7.5.1 ではアイコンの配置ディレクトリが icon から icons に変わってますよ・・・。だけど、ports でインストールすると icon のディレクトリになってますよ・・・。  てな風に読み解いたのですが。なんせ英語文盲なもので・・・。  とにかくそのまんまだと下の画像の赤枠の中がヘンな表示なのです。

 これを解消するには、以下の要領で


> cd /usr/local/www/awstats
> mv icon icons
 icon から icons へ持っていってやれば、正常に表示されるようになります。