- PR -

apacheのログ解析にusertrackしたいのですが・・・

投稿者投稿内容
Psyduck
常連さん
会議室デビュー日: 2004/01/18
投稿数: 39
投稿日時: 2004-11-20 02:44
こんにちは、お世話になっております。Psyduckです。

>これで、様子を見てみます

あれから8時間ほど経ち
何人かの人がサイトに訪れましたが
やはり相変わらず ApacheLogViewer で
Referer、Keyword、Agent、Browser、OS
が表示されません。

実際にログを見てみても
209.137.xxx.xxx - - [19/Nov/2004:08:56:47 -0800] "GET /html/xxxxxx.shtml
HTTP/1.1" 200 23585
と記録されているだけで
Referer、Keyword、Agent、Browser、OS
などに関する情報があるようには思えないです。

何が間違っているか、お判りになる方がいらっしゃいましたら
アドバイスなどいただけるととても助かります。

なお、Yahooなどでも、ある一般的なキーワードを入れると
上位に表示されるサイトですし
以前にメールをもらった人も「検索エンジンから訪れた」
と言っていますので、そういった情報がログに残っても
不思議ではないと思っているのですが・・・

やった事をまとめると
(1)再コンパイル
#./configure \
--enable-usertrack
として再コンパイルした
# ./httpd -l
にて
mod_usertrack.c
が表示される事を確認。

(2)httpd.confにおいて
LogFormat "%h %v %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combine
d
LogFormat "%h %v %u %t \"%r\" %>s %b" common

LogFormat "%h %v %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combine
d
LogFormat "%h %v %u %t \"%r\" %>s %b \"%{Referer}i\"" common
に変更した。
この書式はApacheLogViewerの説明書より。

(3)httpd.confにおいて
VirtualHostディレクティブに
CookieTracking on
CookieExpires "7 days"
を追加した

どなたかアドバイスをいただけると
とても助かります。m(__)m
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-11-20 07:54
apache をインストールした際に用意されている httpd.conf の中に
説明が書いてあるし、それを消してしまっていても公式サイトの
マニュアルをみれば分かることですが...
http://httpd.apache.org/docs-2.0/logs.html

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /usr/local/apache/logs/access_log combined
とする、など。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2004-11-20 09:22
とりあえず、マニュアルにはクッキーのログをとる方法として以下の記述がありますが、試してみましたか?

http://httpd.apache.org/docs-2.0/mod/mod_usertrack.html

CustomLog logs/clickstream "%{cookie}n %r %t"

\"%{Referer}i\"" はリクエストの Referer ヘッダを参照してロギングするわけですから、
リクエストを送った人が Referer をセットしてこなければ当然ログにも残りません。

ただ、\"%{Referer}i\"" をつけて再起動すれば、その後のアクセスに対して何らかのメッセージがログに記録されるはずですが。
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2004-11-20 11:39
■User-AgentとRefererの出力は mod_log_config の機能です。
mod_usertrackとは関係ありません。
このことは、マニュアルのモジュール欄で判別できます。

■たとえ、User-Agent, Referer, cookie が access.log に出力されたとしても、
access_logの書式がApacheLogViewerが想定する書式とで相違があった場合、
ApacheLogViewerでまともには表示されないと思います。
(access_logを解析する他のツール.. analog, webalizer, webdruidなども同じ)
ですので、まずは、access_log に意図した情報が意図した書式で出力されるか
確かめるまでは、ApacheLogViewer で確認する意味はないでしょう。


で、User-AgentとRefererについては、ご自分のサイトへのアクセスが
あるまで待つのではなく、自分で以下のようなHTMLファイルを用意して、
Apacheの配下に置いて、試せばよいかと。

---------------------------- one.html
<html>
<head></head>
<body><a href="two.html">two</a></body>
</html>
---------------------------- two.html
<html>
<head></head>
<body>two</body>
</html>
--------------------------------------

CygwinのApache1.3.29を使って試してみたところ、
手元で FireFox で、one.htmlを開き、リンクをクリックすると、
次のようになりました。(ただし、favicon.icoへのアクセスは省略)

---------------------------- access.log
127.0.0.1 - - [20/Nov/2004:12:06:08 +0900] "GET /one.html HTTP/1.1" 200 73 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0"
127.0.0.1 - - [20/Nov/2004:12:06:18 +0900] "GET /two.html HTTP/1.1" 200 50 "http://localhost/one.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0"
--------------------------------------

ログを見ると、one.html と two.html で User-Agent(Mozilla/5.0...) が出力され、
two.html では Referer (http://localhost/one.html) が出力されています。

もっとも、Yahooなどでご自身のコンテンツが検索できるということですから、
このようなhtmlファイルを用意せずとも、実際にご自身でアクセスしてみれば、
設定が正しければ、ログが残るかと。

Refererなどをブロックするようなソフトをご自身のPC(サーバではなく
ブラウザを動かしているクライアント)に入れていれば残らないでしょうが。
でも、HTTPのアクセスを調べるソフトを使えば判別できるでしょうし。
Webアクセスをモニタするを参照の事。HTTPでRefererやUser-Agentやcookieを
どのようにして送っているか調べる事ができます。


[ メッセージ編集済み 編集者: ちいにぃ 編集日時 2004-11-20 12:09 ]
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2004-11-21 10:42
mod_usertrackも使ってみました。
手元のCygwinで既にmoduleが合ったので、次の設定を追加。

CustomLog /var/log/apache/cookie_log "%{cookie}n %r %t"
CookieTracking on

ブラウザでアクセスして、HTTPヘッダを見ると:
(Firefox + LiveHTTPHeaders Extension と、IE + ieHTTPHeaders で確認、
下記のは Firefox + LiveHTTPHeaders Extensionで見たもの)

--------------------------------------------------------------------------
GET /one.html HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK
Date: Sun, 21 Nov 2004 01:05:20 GMT
Server: Apache/1.3.29 (Cygwin) PHP/4.3.8
Set-Cookie: Apache=127.0.0.1.2108110099912067; path=/
Last-Modified: Sat, 20 Nov 2004 02:13:00 GMT
Etag: "fe5c-49-419ea82c"
Accept-Ranges: bytes
Content-Length: 73
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
--------------------------------------------------------------------------

HTTPレスポンスヘッダ「Set-Cookie」でクッキーが来るのがわかります。

ログファイル/var/log/apache/cookie_logには次のように記録されました

--------------------------------------------------------------------------
127.0.0.1.2108110099912067 GET /one.html HTTP/1.1 [21/Nov/2004:10:05:20 +0900]
--------------------------------------------------------------------------
Psyduck
常連さん
会議室デビュー日: 2004/01/18
投稿数: 39
投稿日時: 2004-11-22 16:35
ぽんすさん、あんとれさん、ちいにぃさん
お忙しい中いろいろ教えていただき
本当にありがとうございます。

本業の方が忙しくて、教えていただいた方法をいまだ試せずにいます。
近いうちに試して再度アップしますが
レスが遅れたことを心よりお詫びいたします。m(__)m

みなさまのアドバイスがとても助かっております。
これからも宜しくお願いいたします。
Psyduck
常連さん
会議室デビュー日: 2004/01/18
投稿数: 39
投稿日時: 2004-11-28 10:47
ぽんすさん、あんとれさん、ちいにぃさん
大変お世話になっております。

皆様のおかげで、希望どおりにログが残るようになりました。
原因は、httpd.confのVirtualHostディレクティブへの書き込みの不完全でした。

VirtualHostディレクティブに
LogFormat "%h %v %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combine
d
LogFormat "%h %v %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /xxx/logs/access_log_xxx combined
と書くことで、うまく動くようになりました。

お忙しい中、本当にありがとうございました。m(__)m

スキルアップ/キャリアアップ(JOB@IT)