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

クラウディア 
 バージョン 7.5.1 になって、表示がヘンになっちゃってます。修正版が出るまでの対応を「バージョン 7.5.1 一次対応」として掲載しています。
1. ports
2. apache 定義ファイルの編集
3. awstats.conf の編集
4. ログファイルの連結
5. 解析ファイルの作成
6. ドメイン名日本語ファイル
7. バージョン 7.5.1 一次対応

1. ports


/usr/ports/www/awstats/

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>

3. awstats.conf の編集

 /usr/local/www/awstats/cgi-bin/awstats.model.conf というコンフィグレーションファイルのサンプルがあります。これを awstats.ドメイン名.conf にコピーして編集します。  編集する箇所は、環境、好みによって異なりますが、わたしがおすすめ、および実際に手を入れたのは以下の通りです。

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

4. ログファイルの連結

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

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

5. 解析ファイルの作成

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

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

6. ドメイン名日本語ファイル

 awstats の日本語紹介サイトだかどこかに、国別ドメインの日本語ファイルがあったような気がするのですが、どこに書いてあったのか、忘れてしまいました。  探すのもめんどくさくなってきたので、作りました。あちこちからコピペしてきたので、誤りがあるかもしれませんがよろしければ使ってみてください。
domains.pm
 ダウンロードして、awstats 配下のディレクトリの ./cgi-bin/lib にあるファイルを本ファイルと置き換えれば、「訪問者・ドメイン/国名」の表示が日本語になります。  これは、文字コードが「UTF-8」ですのでご注意ください。

7. バージョン 7.5.1 一次対応

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

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


cd /usr/local/www/awstats
make
mv /usr/ports/www/awstats/work/awstats-7.5/wwwroot/icon "awstats 用のディレクトリ"/icons
 「icon」から「icons」へ持っていってやれば、正常に表示されるようになります。
「FreeBSD 10.3 RELEASE」-「アイコン表示不具合解消」

ハイスピードプラン