アクセス解析ツール AWStats導入及び設定

オープンソースのアクセス解析ツールAWStatsを導入することに決定しました。
非常に細かい分析が可能で、無料でこれ以上のツールはないのではないかと思います。


AWStatsの設定は比較的簡単ですよ。
0. 最新版のAWStatsのダウンロード
ダウンロードURLは、http://awstats.sourceforge.net/のページの下の方に[Downlod]へのリンクがあります。
2005.3.9時点では、安定したバージョンが6.4です。セキュリティの問題もあり、必ず、バージョン6.3以降のバージョンを使うようにしましょう。
このバージョンは、はじめから日本語対応されています。(検索のキーワード/フレーズだけは対処が必要)

セキュリティの記事は、Slashdotにあります。
Slashdot : アクセス解析ツールのバグで、人気Blogが改竄される

1. apacheの設定変更
apacheの設定ファイルであるhttpd.confの変更をします。 MacOSXの場合、/etc/httpd/httpd.confです。
取得できる情報はすべてログとして残す設定に変更します。
通常、apacheのログファイルの設定は、デフォルトでは、

  CustomLog "/var/log/httpd/access_log" common

commonとなっていると思いますが、これをコメントアウト(#をつける)して

  CustomLog "/var/log/httpd/access_log" combined

のコメントアウトを取り、これを生かします。

VirtualHostの設定をしている場合は、そちらのCustomLogの設定を変更します。
combinedは、OS , ブラウザ、検索キーワード、ホスト名、検索エンジン等のログを残す設定です。 但し、この設定により、ログファイルは倍以上のサイズになるので、注意が必要です。

続きはまた明日書きます。
2. ダウンロードしたファイルの確認
ダウンロードしたファイルは下記の通りのディレクトリ構成になっています。
・docs/
・tools/
・wwwroot/
・README.TXT

wwwrootには、
 ・cgi-bin/
 ・classes/
 ・css/
 ・icon/
 ・js/
が含まれています。

3. CGIファイルのコピー
まず、wwwroot/cgi-bin/以下を、cgiのディレクトリの配下にコピーします。
 ・awredir.pl
 ・awstats.model.conf
 ・awstats.pl
 ・lang/
 ・lib/
 ・plugins/

MacOS Xであれば、
/Library/WebServer/CGI-Executables/
の下です。私は、整理のために、下記の通りディレクトリを作り、コピーしました。

/Library/WebServer/CGI-Executables/awstats/

4. perlのディレクトリの確認及び変更
コピーしたcgiファイルは、perlが必要で、そのディレクトリが、awstats.plファイルに記述されています。
perlのディレクトリを確認してください。
/usr/bin/perl
であれば変更の必要はありません。
別のディレクトリであれば、
awstats.plの先頭にある#!/usr/bin/perlを正しいディレクトリに書き換えてください。

5. iconファイルのコピー
次に、アイコンファイルのコピーです。
コピーはディレクトリごとで、ダウンロードしたファイルの
 ・wwwroot/icon
です。

ブラウザーや国旗やOSなどのアイコンが含まれており、分析結果の中で使われる大事なファイルです。
MacOS Xであれば、
/Library/WebServer/Documents/
の下です。私は、整理のために、下記の通りディレクトリを作り、コピーしました。

/Library/WebServer/Documents/awstats/icon/


6. コンフィグレーションファイル名の変更
次に、先ほどコピーしたcgiファイルの中に含まれるコンフィグレーションファイルの変更をします。
awstats.model.confというファイルがありますが、 model部分を自分のサーバ名に変更します。
例えば、私の自宅のサーバ名は、 blog.kitamura.fmですが、その場合、下記の通り、ファイル名を変更します。
awstats.blog.kitamura.fm.conf

model部分は、サーバ名で検索するようになっています。

7. 設定ファイルのパラメータ設定
awstats.blog.kitamura.fm.confのパラメータ設定を行います。
最低限の設定は、LogFile , DirIcons , SiteDomain ,DirDataの3つです。
エディタで、awstats.blog.kitamura.fm.confを開き

LogFileは、ログファイルのフルパスを記述します。
MacOS Xの場合、/var/log/httpd/access_logです。

LogFile="/var/log/httpd/access_log"

DirIconsは、5. iconファイルのコピーで設定したディレクトリです。
絶対パスではなく、公開されたディレクトリからのパスです。よって、下記の通りになります。

DirIcons="/awstats/icon"

最後に、SiteDomainの設定ですが、これは、ドメイン名です。

私の場合、SiteDomain="blog.kitamura.fm"

DirDataは分析結果を書き出すディレクトリです。何も書かなければ、cgi-binファイルと同じディレクトリに書き込まれます。

以上で基本設定は終わりです。


8. 検索キーワード/フレーズの文字化け解消
どのようなキーワード/フレーズで検索されたかログがとれていますがEUCとか混在し、表示はUTF8なので、ほぼ確実に、検索キーワード/フレーズについては、文字化けをします。
これを解消するのが、Jcode.pmです。これは、CPANに正式登録されていて非常に便利なライブラリです。
URLは下記の通りで、まず、これをダウンロードしてください。

CPAN Jcode.pm

ダウンロードした後に、下記の通り、スーパーユーザ権限でコマンドを実行します。

# perl Makefile.PL
# make
# make install

これで、Jcode.pmのインストールは完了です。

次に、cgiとしてコピーしたawstats.plの編集です。まず、


use Jcode ;

を先頭の行に追加します。(#!/usr/bin/perlより後)

次は、sub DecodeEncodedString を検索してください。
初期は次のようになっています。


sub DecodeEncodedString {
my $stringtodecode=shift;
$stringtodecode =~ tr/¥+/ /s;
$stringtodecode =~ s/%([A-F0-9][A-F0-9])/pack("C", hex($1))/ieg;
return $stringtodecode;
}

これを

sub DecodeEncodedString {
my $stringtodecode=shift;
$stringtodecode =~ tr/¥+/ /s;
$stringtodecode =~ s/%([A-F0-9][A-F0-9])/pack("C", hex($1))/ieg;

+ Jcode::convert(¥$stringtodecode, "utf8");
return $stringtodecode;
}

Jcodeで変換する部分を追加します。

これで文字化けは解消されます。


9. 統計情報の初期作成
初期処理は時間がかかるので、cgiではなくコマンドで実行します。

./awstats.pl -config=HOSTNAME -update

私の場合、./awstats.pl -config=blog.kitamura.fm -update

しばらくすると、DirDataのディレクトリに分析結果が書き込まれます。

10. アクセス制限設定
セキュリティの設定には、いくつかの方法があり、ここではIPアドレスでの設定制限をご紹介します。
私の場合、家の中の、Macからしかアクセスしないので、ローカルIPアドレスのみ許可することにしました。
設定ファイルは、先ほどと同様、awstats.blog.kitamura.fm.confです。
パラメータは、AllowAccessFromWebToFollowingIPAddressesです。

AllowAccessFromWebToFollowingIPAddresses="127.0.0.1 192.168.1.1-192.168.1.255"

11. crontabの設定
分析ファイルを定期的に更新することが必要になりますが、これは、crontabで行うことにします。

crontab -e

これは、viエディタですが、viエディタの使い方は事前に勉強してくださいね。
例えば、10分ごとに分析ファイルを更新する場合は、

*/10 * * * * /Library/WebServer/CGI-Executables/awstats/awstats.pl -config=blog.kitamura.fm -update > /dev/null 2>&1

を追加してください。

> /dev/null 2>&1を除くと、結果をメールですべて通知してくれます。
10分単位で、メールが来ると大変なので、しばらく正常動作するまで様子を見て、うまく行っていることがわかってから追加してもいいかもしれませんね。

12. 分析結果の確認
分析結果の確認は、ブラウザから行います。

http://HOSTNAME/cgi-bin/awstats.pl

これで、無事見ることができます!


-----
Webサイト人気blogこちら

Posted by chocolat at 2005年03月15日 23:59
Apple Storeへようこそ
トラックバック

このエントリーのトラックバックURL:
http://blog.kitamura.fm/cgi-bin/mt/mt-tb.cgi/565

このリストは、次のエントリーを参照しています: アクセス解析ツール AWStats導入及び設定:

» アクセス解析にチャレンジ! from Medical Entertainer
Movable Typeで自宅ブログを開始したばかりの初心者が、アクセス解析ツール導入に挑戦! [続きを読む]

トラックバック時刻: 2005年05月21日 08:29

» アクセス解析にチャレンジ! from Medical Entertainer
Movable Typeで自宅ブログを開始したばかりの初心者が、アクセス解析ツール導入に挑戦! [続きを読む]

トラックバック時刻: 2005年05月22日 05:54

» AWStats設定完了! from Medical Entertainer
 無料にして最強のアクセス解析ツール、AWStatsの設定がようやく一段落つきま... [続きを読む]

トラックバック時刻: 2005年05月26日 04:24

» ログ解析への道<ゴール> from 明日も天気にな~れ
AWStatsを使うって決めたのに、OSXへの設定方法が解らない。 OSXでサー... [続きを読む]

トラックバック時刻: 2006年01月23日 02:39

» アクセス解析にチャレンジ! from Medical Entertainer
Movable Typeで自宅ブログを開始したばかりの初心者が、アクセス解析ツール導入に挑戦! [続きを読む]

トラックバック時刻: 2006年05月27日 05:27

» AWStats設定完了! from Medical Entertainer
 無料にして最強のアクセス解析ツール、AWStatsの設定がようやく一段落つきま... [続きを読む]

トラックバック時刻: 2006年05月27日 05:31

コメント

はじめまして。sashuと申します。
最近、自宅サーバー(Mac mini)でMovable Typeを使い始めた初心者です。Unixのこともよく(というか、ほとんど)わかっていませんが……。
アクセス解析ツールを導入したくて検索しているうちに、こちらの記事に辿り着きました。
正直なところ、後半ついていけなくなったところもありましたが、何とか無事(かどうかまだわかりませんが)にAwstatsを導入することができました。
ありがとうございました。TB張らせていただきました。
とても勉強になる記事がたくさんあるようなので、これからもたびたび拝見したいと思います。

Posted by: sashu at 2005年05月21日 08:27

sashuさま
コメントありがとうございます。
Mac miniいいですね。私も欲しいのです。
こページが、少しでもお役に立ててよかったです。
ただ、記述が不十分で、申し訳ございませんでした。
もし、わからないことがございましたら、私のわかる範囲でお答え致しますので、どんどん、コメントください!
今後ともよろしくお願い致します。

Posted by: chocolat at 2005年05月21日 21:34

 すみません、お言葉に甘えて……。8章「検索キーワード/フレーズの文字化け解消」で、Jcode.pmをダウンロードするまでは成功しましたが、その後、スーパーユーザー権限でコマンド実行、というのは、ダーウィンを立ち上げて、su→(パスワード入力)→root #になってから、perl Makefile.PL以下を実行せよ、ということでしょうか?
今、Jcode.pmの入った「Jcode-2.00」というフォルダがデスクトップ上にあります。このままの状態で、ダーウィンを起動させるのでしょうか? それとも、しかるべきところへJcode-2.00フォルダを移してから行うべきなのでしょうか……?

たいへん初歩的(なのかどうかもわからない)な質問で恐縮ですが、急ぎませんので、どうかお教えください。よろしくお願いしまーすm(_ _)m

Posted by: sashu at 2005年05月21日 23:48

続けてすみません。何とか8章はクリアできたみたいです。デスクトップに置いたままで、cdコマンドを使ってディレクトリを指定したら、何とかなったようです。
10章はとりあえず飛ばして進みましたが、11章「crontabの設定」で立ち往生してしまいました。vi エディタを調べてみましたが、Unix内で使用するエディタです……よね? えーと、何かのファイルを開いて、crontab -eというコマンドを実行する、という意味ですか? crontabとは何か? そして、何を開いて、
*/10 * * * * /Library/WebServer/CGI-Executables/awstats/awstats.pl -config=blog.kitamura.fm -update > dev/null 2>&1
を記載すればいいのか……? そうそう、「*/10 * * * *」の「*」は、何かの略ですか? それとも、そのままコピぺしてもいいのでしょうか……?
 そんなことも知らないの?……って怒られそうですが、あともう少しでうまくいきそうなので、どうか、お教えくださいm(_ _)m

Posted by: sashu at 2005年05月22日 00:33

chocolatさん、すみません。
記事の修正・保存をしていたら、なぜか、こちらに同じトラックバックを貼ってしまっていました。お手数ですが、このコメントと、トラックバックの一つを削除していただけませんか?
たいへん申し訳ございません(でも何故だろう??)。

Posted by: sashu at 2005年05月22日 07:48

sashuさま
8章は、分かりづらい表現で、申し訳ございませんでした。

まず、ダウンロードしたJcode-2.00フォルダーの位置についてですが、ダウンロード時にディスクトップ上に、フォルダーができると思いますが、そのままで結構です。

UNIXのディレクトリでは、下記の通りになっています。
/Users/USER-ACCOUNT/Desktop
USER-ACCOUNTは、現在、ログインしているユーザアカウントです。

次に、分かりづらい表現でした「スーパーユーザ権限でコマンド実行」の部分ですが、正確には、下記の手順になります。

1)Finder(一番左にあるアイコン)を立ち上げ、[アプリケーションフォルダー]の下にある[ユーティリティホルダー]に移動します。

2)次に、「ターミナル」というソフトがありますので、これを起動します。 これで、UNIXのコマンドが打てるようになります。
Terminal - tcsh - 80x24というタイトルのターミナルが立ち上がると思います。
表示は、
[マシン名:現在のディレクトリ]USER-ACCOUNT%
と表示されていると思います。
~ はUNIXでUSER-ACCOUNTのホームディレクトリを示す特有の表現です。

まず、下記の通り、コマンドを入れてみてください。
USER-ACCOUNT% pwd

そうすると立ち上げたときには、
/Users/USER-ACCOUNT
と出るはずです。

次に、先ほど、ダウンロードしたフォルダーに移動します。
つぎのように続けてコマンドを入力してみてください。
USER-ACCOUNT% cd Desktop

USER-ACCOUNT% cd J-code-2.00

これで、ディレクトリの移動は完了しました。
ここで、suで root#になり、perl Makefile.PLを入力してください。
下記のメッセージが出ると思います。

Checking if your kit is complete...
Looks good
Writing Makefile for Jcode

後は、続けて、
root# make
root# make install
を実行します。

これで、Jcodeのインストールは完了です。
ターミナルを終了し、ディスクトップにあるフォルダー「Jcode-2.00」は削除していただいて大丈夫です。

ただ、ソースファイルは、今後、再インストールのために、どこかに保存しておいた方がいいと思います。


Posted by: chocolat at 2005年05月22日 08:49

続きまして、crontabについてですが、こちらも、分かりづらい表現でした。
これもUNIXのコマンドです。
まず、先ほどと同じで、アプリケーションのユーティリティの下にある「ターミナル」を起動します。
ここで、
USER-ACCOUNT% crontab -e
と入力するという意味でした。

頂いたご質問は重要なものばかりなので、できる限りはやくページも更新させていただきたいと思います。

また、何かございましたら、遠慮なくご質問ください!

Posted by: chocolat at 2005年05月22日 08:56

とても丁寧なご説明ありがとうございました!
おかげさまで何とか日本語化に成功し、アクセス解析ページを見ることができるようになりました……が、なぜか、訪問者数が0のままなんです。あちこちにping飛ばしているので、開設からずっと訪問者0というのは、さすがにありえないと思うのですが……。
私のブログのURLは、www.medicalcomic.com/blog/です。固定IPアドレスはmedicalcomic.comと対応しています。ブログだけでなく、将来的にはwebsiteも開設しようと思っているので、このようなディレクトリを設けました。
さて、訪問者0の問題は、アクセス解析がmedicalcomic.comの階層にとどまっていて、その下の階層である/blog内には及んでいない、という可能性はないでしょうか? シロウト判断でそのように解釈し、9章(統計処理の初期作成)の部分を、
./awstats.pl -config=www.medicalcomic.com/blog -update
にしてみました。すると、何やらずらずらと表示されて、ちょっといい感じだったので、うまくいったかな、と思ったら、やっぱり同じでした。
その後、6章(コンフィグレーションファイル名の変更)でも、awstats.www.medicalcomic.com/blog.confとしてみましたが、エラーになるようでした。
……と、私なりに努力してみましたが、あえなく敗れ去りました。

何が原因なのでしょうか……。教えていただけると嬉しいです。

それと、さきほどのcrontab -eの入力後も教えていただけると……、すみません。お暇なときで結構ですのでよろしくお願いいたします。

Posted by: sashu at 2005年05月22日 10:38

sashuさま
訪問者が0というのはおかしいですねぇ。

私も何度かアクセスさせていただいているので、0ということはないですよ。

1つ1つ確認をしていきたいと思います。crontab -eについては、この次のコメントで書きたいと思います。

まず、ディレクトリについてですが、ディレクトリがどのような階層になっていても、全く問題ありません。ご心配なく。大丈夫です。

Macにインストールされているwwwサーバソフトは、Apacheというソフトですが、このApacheのログを見て、AWStatsは、解析を行います。

まず、ログの確認をしたいと思います。
まず、「ターミナル」ソフトを起動し下記のコマンドで、ディレクトリを移動して見てください。

% cd /var/log/httpd
% ls

そうすると、「access_log」と「error_log」というファイルがあると思います。

次に、下記のコマンドを入力し、正しいフォーマットでログが取られているか確認しましょう。
% tail access_log

そうすると、例えば、
p10133-ipad02okidate.aomori.ocn.ne.jp - - [21/May/2005:04:52:31 +0900] "GET /ima
ge/downloadspeed.jpg HTTP/1.1" 200 29092 "http://blog.kitamura.fm/mt/ipod/" "Moz
illa/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
の形で、アクセスしてきた端末のOSやブラウザーの種類が入っていると思います。

もし、これらの項目が入っていなければ、うまくログがとれていないと思います。その場合、1章の「apacheの設定変更」をもう一度行う必要がございます。

これらができている場合は、一度、Apacheを念のためスーパーユーザ権限で、リスタートしてみてください。

root# /usr/sbin/apachectl stop
root# /usr/sbin/apachectl start

念のために、1章がうまく言っている場合は、Apacheのログは、commonのときの以前のログと、combineの新しいログが混在しているので、ログのファイル名をいったん変更し、再度Apacheをリスタートして、見てください。

Posted by: chocolat at 2005年05月22日 21:36

Mac miniを購入した際、ディーラーさんがPHPでプログラミングされている方だったので、設定もいろいろとお願いしました。
実は、medicalcomic.com以外にcomictext.com、cartoon.jpというドメインを取得しています。WebServer/Documents/の中にMedicalcomic、Comictext、Cartoonjpという三つのフォルダを作り、その各々の中にindex.htmlを入れて、http://www.medicalcomic.com/、http://www.comictext.com/、http://www.cartoon.jp/で各indexページが開くようにhttpdなどを設定してもらいました。詳細はよくわからないのですが……。

そのせいか、ご指導いただいた% cd /var/log/httpd、% lsを実行すると、access_log, error_logの他にmedicalcomic_access_log, comictext_access_log……なども表示されました。
tail access_logを実行してみましたが何も変化ありません。
試みにtail medicalcomic_access_logを実行してみると、なにやら出てきました。私の固定IPアドレスに混じって、見覚えのないIPもあります。これがアクセスログでしょうか?

そこで、httpdの
CustomLog "var/log/httpd/access_log" combinedを
CustomLog "var/log/httpd/medicalcomic_access_log" combined
に変更してみました。その後、ご指示のとおり

root# /usr/sbin/apachectl stop
root# /usr/sbin/apachectl start
で、Apacheをリスタートさせましたが、結果は同じ、訪問者0のままでした。

(今、気づいたのですが、正確には
CustomLog "/private/var/log/httpd/medicalcomic_access_log" combined
となっていました。/privateというのが何か問題あるでしょうか?)

ディーラーに頼んで、へんにhttpdをいじっていたせいでしょうかねえ……? ためしに/privateをとってみましょうか……?
……その後、./awstats.pl -config=www.medicalcomic.com -update
をしてみましたが、やはり相変わらずの訪問者0です。

そうそう、解析画面の一番上にある「最終の更新:」は、赤い文字で「更新なし」になっています。まだ更新されていないことになっているのでしょうか……?!

 長々とすみませんでした。きっとどこかがちがうのでしょうが、それがどこなのか……。またご指示ください。お待ちしています(お暇なときで結構ですので)m (_ _)m

Posted by: sashu at 2005年05月23日 05:05

chocolat様
ディーラーが修正してくれたhttpd.confの箇所がわかりました。複数のドメインが各々WebServer/Documents/内の該当フォルダに直接アクセスできるようにするため、VirtualHostを作っていました。以下のような記述です。


ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /Library/WebServer/Documents/Medicalcomic/
ServerName www.medicalcomic.com
CustomLog "/private/var/log/httpd/medicalcomic_access_log" common
ErrorLog "/private/var/log/httpd/medicalcomic_error_log"

このバーチャルホスト内のCustomLogを読みにきてくれると、うまくいくような気がするのですが……。
まず、CustomLog の記述の最後「common」を「combined」に修正し、Apacheをリスタートさせてみましたが、やはり結果は同じでした。

おおもとの(VirtualHostではない、本物の方の)CustomLogが優先されてしまうのかな、と思って、本物の方のCustomLogに#をつけてみましたが、やはり事態は動きませんでした。

何か打開策はありませんでしょうか? アドバイスいただけると幸いです。(いっそ、忍者にしようかなーなんて、ちょっと弱気になってきました ^_^;;)

Posted by: sashu at 2005年05月24日 06:38

sashuさま
なるほど。ディーラーの方が、気を利かせて、アクセスログをドメイン単位で分けてくれていますね。

Apacheのアクセスログファイル名が、別になっているようなので、AWStatsの設定で、/var/log/httpd/access_logとなっているところを、/private/var/log/httpd/medicalcomic_access_logに変更すれば大丈夫だと思います。

Posted by: chocolat at 2005年05月24日 07:47

私も複数のVirtualHostの設定をしていますが、問題ありません。
大丈夫です。VirtualHostの設定で、combinedになっているのが正しい設定です。
tail /private/var/log/httpd/medicalcomic_access_logでログの内容を確認してみてください。
正しくログがとれていると思います。

忍者だけはやめましょうね。相手のPageRankをあげるだけで、意味がありません。
いっしょにがんばりましょう。

Posted by: chocolat at 2005年05月24日 07:56

chocolatさま
勇気が湧いてきました。ありがとうございます! そうですね。ここまで来たからには、忍者に逃げるのはやめにします(照)。

ただ、/private/var/log/httpd/medicalcomic_access_logにしてみて、結局ダメだったような気が……。今、職場なので、確認できませんが……。今日帰ったら、さっそく確認してみます。
ホント、とても感謝しています。ありがとう。m(_ _)m

Posted by: sashu at 2005年05月24日 08:47

やはりうまくいきません。
もう一度、全部再インストールしなおして、再度トライしてみましたが……。
設定に間違いはありませんでしょうか? またもや長文になってしまいますが、どうかご容赦を……m(_ _)m

1.apacheの設定変更
 httpdファイルを開いて、以下の2カ所を修正しました。
【1カ所目】
CustomLog "/private/var/log/httpd/medicalcomic_access_log" combined
【2カ所目】Virtual Host内

ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /Library/WebServer/Documents/Medicalcomic/
ServerName www.medicalcomic.com
CustomLog "/private/var/log/httpd/medicalcomic_access_log" combined
ErrorLog "/private/var/log/httpd/medicalcomic_error_log"

6.コンフィグレーションファイル名の変更
 awstats.www.medicalcomic.com.conf

7.設定ファイルのパラメータ設定
 LogFIle="/private/var/log/httpd/medicalcomic_access_log"
DirIcons="/awstats/icon"
SiteDomain="www.medicalcomic.com/blog"

9.統計情報の初期作成
 ./awstats.pl -config=www.medicalcomic.com -update

このアップデートの結果は、以下のとおりでした。

Update for config "./awstats.www.medicalcomic.com.conf"
With data in log file "/private/var/log/httpd/medicalcomic_access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
AWStats did not find any valid log lines that match your LogFormat parameter, in the 50th first non commented lines read of your log.
Your log file /private/var/log/httpd/medicalcomic_access_log must have a bad format or LogFormat parameter setup does not match this format.
Your AWStats LogFormat parameter is:
1
This means each line in your web server log file need to have "combined log format" like this:
111.22.33.44 - - [10/Jan/2001:02:14:14 +0200] "GET / HTTP/1.1" 200 1234 "http://www.fromserver.com/from.htm" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"
And this is an example of records AWStats found in your log file (the record number 50 in your log):
43.244.201.108 - - [13/Apr/2005:17:52:52 +0900] "GET /Images/top_title.gif HTTP/1.1" 304 -
Setup ('./awstats.www.medicalcomic.com.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).

awstats.www.medicalcomic.com.confか、サーバーか、パーミッションがワルい……。サーバーはいいのかワルいのかわかりませんが、パーミッションはどうなのでしょう? 調べてみたら、このファイルのパーミッションは755でした。
実際に解析を見てみたら、やはり訪問者は0……。うーん、私はもう、ほとんど降伏状態です……。何がワルいのでしょう???

Posted by: sashu at 2005年05月24日 21:45

sashuさま
まず、ログファイルprivate/var/log/httpd/medicalcomic_access_logのフォーマットが悪いとメッセージが出ていますね。過去のcommonのログが混在しているので、いったん、/private/var/log/httpd/medicalcomic_access_logをリネームして、Apacheを再起動して、新しいログファイルを作ってみてもらえますか。

Posted by: chocolat at 2005年05月24日 23:11

また、長文失礼します(いつもすみません)。リネーム作業……やりましたが、うまくいきませんでした。きっと、何か思い違いをしているのでしょうね。でも、それがわからない……。
昨夜から今朝にかけて行った作業を再現してみます。

【リネーム作業1】
まず、httpd.confファイル中のVirtualHost設定で、
CustomLog "/private/var/log/httpd/medicalcomic_access_log" conbined を
CustomLog "/private/var/log/httpd/medicomi_access_log" conbined に変更しました。(medicalcomic→medicomiに変更)
パーソナルウェブ共有をいったん切り、再度入れました。(Apache再起動)
awstats.www.medicalcomic.com.confファイルを開き、LogFileの設定を以下のように変更しました。
LogFile = "/private/var/log/httpd/medicomi_access_log"
それから、
./awstats.pl -config=www.medicalcomic.com -updateを実行しました。
medicomi_access_logが開けなかった、というエラーメッセージが出ました。
httpdで指定しただけでは、新しいアクセスログファイルは自動生成しないんですね(あたりまえか……)。

【リネーム作業2】
アップルメニュー→「移動」→「フォルダへ移動」を選び、フィールド内に
/private/var/log/httpd
を入力して、httpdへ移動。medicalcomic_access_logを発見。
ダブルクリックしてみると、たくさんのアクセスログが……!
(これをAWStastsに読み込ませたいのですね!)
このままでは入力修正作業ができないので、同ファイルをいったん、「書類」へコピーして、そのコピーを「medicomi_access_log」とリネームしました。
リネームしたファイルをhttpdフォルダに戻します。いったん拒否されますが、認証ボタンをクリックしてパスワードを入れれば完了。
ついでに、エラーログの方も同じようにリネームしておきました。medicalcomic_error_log → medicomi_error_logへ。
Apacheを再起動させました。
アップデートを実行しました。
やはり、エラーが……!
Your log file /private/var/log/httpd/medicomi_access_log must have a bad format or LogFormat parameter setup does not match this format.
……ということはつまり、まだcommonのログが混在した状態が続いている、ということでしょうかね……?
Setup ('./awstats.www.medicalcomic.com.conf' file, web server or permissions) may be wrong.
ちゃんと、LogFileの設定をmecicomi_access_logにしたのですが……。??
AWStatsは、ログファイルのどの行にも、"conbined log format"を持つことが必要で、そのconbined log formatというのは、例えば
111.22.33.44 - - [10/Jan/2001:02:14:14 +0200] "GET / HTTP/1.1" 200 1234 "http://www.fromserver.com/from.htm" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"
のような形である……と書いてあります。
しかるに私のログファイルには(50行目?)
4*.2**.***.***(IPアドレス) - - [13/Apr/2005:17:52:52 +0900] "GET /Images/top_title.gif HTTP/1.1" 304 -
となっている……と。
GET以下が中途半端に終わっているのがいけないのでしょうか……??!
過去ログには未練があるものの、とりあえず、ばっさり全部消してみました。
そして、同じような作業の後、アップデートしてみたら……やはり訪問者0。あたりまえか……。
しばらく、ログがたまるのを待つことにしました。黙っていても来てくれないので、新たに記事を書いてアップ。
でも30分たってもいっこうに訪問者数が訪れません。0のまま。……うーん、やっぱり記述内容を全部消去したのがいけなかったのか……!

【リネーム作業3】
アクセスログ内の、不良ログを手作業で削除してみることにしました。
httpd内のmedicomi_access_logを書類にコピーして作業開始。
でも、どのログを残せばいいのか……、迷いながらも、かなりの時間をかけてなんとか作業終了。
さっそく修正済みのコピーファイルをオリジナルと置き換え……ようと思ったのですが、何故か今回はアクセス権が不十分とのことで拒否されてしまいます。
RBrowserで777にしてみましたが、それでもアクセス権不十分……???
結局、ログの修正(commonのログを取り除く)ができませんでした。

どのようにしたら、common を取り除くことができるのでしょうか? あるいは、過去ログにはもう見切りをつけて、新たにログファイルを作りたいのですが、単純にまっさらにしただけではダメなようで……。
新たなaccess_logを作るにはどうしたらいいのでしょう……? もしご存知でしたら教えてくださいm(_ _)m
うーん、それにしても難しい。後もう少し……という感触はあるんですがねえ。最後のツメが……。

Posted by: sashu at 2005年05月25日 08:14

今は時間がないので、夜にまたコメントを書きますが、若干気になったことがあります。
ログを見ると、combinedでとれていませんね。

>CustomLog "/private/var/log/httpd/medicomi_access_log" conbined に変更しました。
とございますが、combinedの綴りが間違っていますが、これは転記ミスですか?

Posted by: chocolat at 2005年05月25日 08:27

スミマセンでした。
こちらのコメント欄への転記ミスでした。今、httpd.confを確認しましたが、combinedになっていました。(^_^);;

Posted by: sashu at 2005年05月25日 15:29

sashuさま
了解です。

まず、Apacheのログがうまくとれていませんが、ひとまず、おいておいて、AWStatsの設定でいくつかあやまりがあるので、そちらを先に修正しましょう。
まず、

7.設定ファイルのパラメータ設定
 LogFIle="/private/var/log/httpd/medicalcomic_access_log"
で、正しくは、LogFileです。(転記ミスであれば気にしないでください)
また、
SiteDomain="www.medicalcomic.com/blog"
ですが、正しくは、
SiteDomain="www.mediacalcomic.com"です。
ドメイン名にディレクトリを含まなくても大丈夫です。

Apacheのログのリネームの意図は、Apacheのログファイルを削除することにあります。過去のログを削除すると残念だと思いリネームをお勧めしました。
ターミナルソフトを起動し、下記のコマンドを実行してもらえますか。
%cd /private/var/log/httpd/
%mv medicomi_access_log medicomi_access_log.bak
%mv medicomi_error_log medicomi_error_log.bak
次にsuでスーパーユーザになって、Apacheを再起動してください。
root# /usr/sbin/apachectl stop
root# /usr/sbin/apachectl start

これで、完全にログが0スタートになります。

下記のコマンドを実行してください。そうすると、アクセスがあるたびに、ログがどのように更新されるか見ることができます。

tail -f /private/var/log/httpd/medicomi_access_log

自分でホームページにアクセスしてみいいですし、しばらくログが更新されるのを見て、combinedでとれているか確認してもらえますか。

Posted by: chocolat at 2005年05月25日 20:52

chocolatさま
できました! 新しいコメントを読ませていただく前に、medicomi_access_logから、commonの頃のものと思われるlogを削除し、もう一度httpdディレクトリに入れてみました。(前出の【リネーム作業3】の再チャレンジです)

今回も、アクセス権不完全とかでハネられてしまったので、ファイル名をmeditainer_access_logに変更して、もう一度httpd/に入れてみたら、入りました。そこで、アクセスログをmedicomi_access_logからmeditainer_access_logに変更する意図で、httpd.confファイルのVirtualHostのCustomLogの記述を
CustomLog "/private/var/log/httpd/meditainer_access_log" combined
に変更し、
awstats.www.medicalcomic.com.confも
LogFile="/private/var/log/httpd/meditainer_access_log"
に変更して、アップデートしてみたら……
ついに、うまくいきました!! 感涙!

さっそく、そのご報告にあがった次第です。
確かに過去ログを削除するのは、できれば避けたいところだったので、とりあえず、このままでいきたいなと思います。せっかくの新たなご指導ですが……。

それにしても、本当にお世話になりました。感謝の言葉も見つからないくらい。Unixの「ゆ」の字も知らないドシロウトの私を、よくここまで導いてくださいました。おかげさまで、Unixがほんの少し、わかったような気がしてきました。

まだこれからも前途多難につき、この件以外でもご相談させていただくかもしれませんが、その節はなにとぞよろしくお願いします。
(あ、定期更新の件も……またご指導くださいね)。

これからは師匠と呼ばせてください。(^_^)v
心から、ありがとう!!!

Posted by: sashu at 2005年05月25日 22:03

sashuさま
そうですか。できましたか!
本当によかったですね(^_^)/

これからもなにかあったらいつでも気軽に質問してください。
Macをお互い楽しみましょう!

Posted by: chocolat at 2005年05月26日 03:11

chocola師匠さま
さっそくなんですが……(不肖の弟子でスミマセン)
crontab -e ですけど、これはvi エディタを立ち上げてから実行するのでしょうか? vi エディタの使い方については、昨日Unixの参考書を購入して読んでいるんですけど、今ひとつ理解できていないようで……。
手作業でupdateすると、ちゃんとアクセス解析が進んでいるんですけど、結構めんどうなので、例の10分おきに自動アップデートしてくれる構文を決めたいのです。もう全然急ぎませんので、余裕のあるときに教えていただけると幸いです。

あと、もう一つ……。いい気になって、別のブログも作りたくなってきました。要するに、新たに別のバーチャルホスト用にもAWStatsを利用したいのですが、どのようにしたらいいのでしょうか?
思うに、新VirtualHost用のaustats.www.newdomain.confを作って、あとは同様の操作で行けるのかなーという気がしますが……。
これも急いでませんので、気が向いたときにでも教えてください。

それにしても、今まで遠巻きにして近寄れなかったダーウィンを、(まだ全然わかっていないにしても)これほど使えるようになるとは……。今まで来たこともなかった全く別のステージにいる気分です。これからも、よろしくお導きくださいm(_ _)m

Posted by: sashu at 2005年05月26日 06:27

sashuさま
家を離れていて返事が遅れました。
viエディタですね。

それでは、viエディタの基本コマンドだけ覚えてください。
これだけできっと大丈夫です。

viエディタには、「入力モード」と「コマンドモード」があります。
crontab -eの場合、このモードが見えないと思いますが、はじめは、コマンド受付モードです。
切り替え方法はいろいろありますが、まず、「入力モード」にするときは、「i」を入力します。「コマンドモード」に切り替える場合は、「esc」キーを入力します。基本的には、この2つで大丈夫です。
慎重に、「入力モード」で実行したい内容を入力します。
終わると、次に、ファイルの書き込みですが、これは、「コマンドモード」に切り替える必要があります。「esc」キーを入力し、「コマンドモード」に切り替え、「:」(コロン)を入力すると、最下段にカーソルが移りますので、「w!」を入力します。
これで書き込みが完了しました。
viエディタを終了するには、「コマンドモード」で「q!」を入力します。
万が一、内容がおかしくなった場合は、書き込みを行わず、「q!」で強制的に終了して、はじめからやり直してください。

「i」・・・「入力モード切り替え」
「esc」・・・「コマンドモード切り替え」
「:」+「w!」・・・「強制書き込み」
「:」+「q!」・・・「強制終了」

これだけあれば、その他のコマンドを覚えなくても何とかなります。

Posted by: chocolat at 2005年05月29日 08:50

お待ちしてました! \(^o^)/
この間、とりあえすviエディタについて、ちょっとだけ勉強しまして、教えていただいたような方法で該当部分を書き換えてみました。
まず、crontab -eを実行して、すかさずiを入力し、「入力モード」に入りました。
カーソルを移動し、下のように該当部分を修正しました。

* /10 * * * * /Library/WebServer/CGI-Executables/awstats/awstats.pl -config = www.medicalcomic.com -update > dev/null 2>&1

その後、escキーでコマンドモードに切り替え、「:」+『w」、「:」+「q」で終了しました。

教えていただいた内容と比べると、違う点は、「w!」のところが「w」、「q!」のところが「q」ですね。
つまり、通常の書き込みと終了方法であって、「強制書き込み」、「強制終了」にはなっていないのでしょうかね。

そのせいなのか……いっこうに定期的な更新がなされていません。ターミナルを起動し、crontab -eを入力するとちゃんと * /10 * * * * /Library...になっていますが……。

もう一度、強制書き込み、強制終了でチャレンジしてみます。

Posted by: sashu at 2005年05月29日 18:49

うーん、やっぱりだめでした。
w!とq!でやり直してみましたが……自動更新されません。何が違うんでしょうか……??

Posted by: sashu at 2005年05月29日 20:06

sashuさま
>* /10 * * * * /Library/WebServer/CGI-Executables/awstats/awstats.pl -config = www.medicalcomic.com -update > dev/null 2>&1

これですが、はじめのところは、*/の間にスペースが入っています。
この間のスペースを削除してもらえますか。

Posted by: chocolat at 2005年05月29日 20:22

sashuさま
マルチドメインのAWStatsですが、私は、ドメイン単位で、ディレクトリを分けました。
例えば、/Library/WebServer/CGI-Executables/awstatsではなく、/Library/WebServer/CGI-Executables/medicalcomi.com/awstats
とディレクトリを分けるといいと思います。

Posted by: chocolat at 2005年05月29日 20:25

chocolatさま
いつもお世話になっています。さっそく* /10の半角スペースを取ってみましたが、やはり自動更新はしてくれません。前の間違った設定を覚えてしまっているのでしょうか……? もちろん、w!とq!で強制的に書き直したつもりですが……。

マルチドメイン対応とは、とても心強い。実は、今回の自動更新がクリアできたら、次にご質問させて頂こうかと思っていたのが、まさに複数ドメイン導入時のAWStatsの設定方法だったのです。

今、職場からなので、ディレクトリを動かせませんが、帰ったらさっそく作業してみます。

Posted by: sashu at 2005年05月30日 18:32

sashuさま
そうですか。
うまく行きませんか。
ところで、入力した文字が書き込まれていると、次に、crontab -eを起動すると、入力した文字がそのまま表示されますが、入力は完了しているのですよね。

あっ、ごめんなさい、私の記述に、誤りを見つけました。
最後の "> dev/null 2>&1"は、" > /dev/null 2>&1"が正しい表記です。

Posted by: chocolat at 2005年05月30日 20:00

うまくいきました!
> /dev/null 2>&1 に書き直したら、うまくいきましたよ。
ちゃんと自動更新されてます。いやー、うれしい。ありがとうございました!

今度は、ドメイン単位のディレクトリ仕分けに挑戦です。
新たなドメインはdrnovels.comにします。
今までのディレクトリが
CGI-Executables/awstats
だったのを、
CGI-Executables/medicalcomic/awstats
として、さらに、
CGI-Executables/drnovels/awstats
を作ってみます。
あとは、awstats.model.confファイル名をawstats.www.drnovels.com.confにかえ……、その他も同じように変更すればいいんですよね?
後でチャレンジしてみます。
ありがとうございました (^o^)

Posted by: sashu at 2005年05月30日 20:56

初めまして。
今年からOSX_Serverに移行した CUBES と申します。

以前からOSXの設定では勉強させていただいてました。
今回、ログ集計でAWStatsの設定を解りやすく解説して頂いてましたので大変助かりました。
ありがとうございます。

失礼ながらトラックバック張らせていただきましたので、
お礼とご挨拶をかねてコメントさせていただきます。
これからも、たびたび拝見させていただきますので、よろしくお願いいたします。

Posted by: CUBES at 2006年01月23日 02:00
コメントする









名前、アドレスを登録しますか?






おすすめ
shuffle04_125_125
リンク
blog.kitamura.fm/mt/server/
Syndicate this site (XML)


Ads
Powered by
Powered by Apple Computer's
Macintosh with Darwin





Powered by MySQL that is the world's most popular open source database.



Powered by PHP that is a scripting language.



Powerd by Movable Type
with MT-Blacklist