- - PR -
apacheのログ解析にusertrackしたいのですが・・・
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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 |
|
投稿日時: 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-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\"" をつけて再起動すれば、その後のアクセスに対して何らかのメッセージがログに記録されるはずですが。 |
|
投稿日時: 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 ] |
|
投稿日時: 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] -------------------------------------------------------------------------- |
|
投稿日時: 2004-11-22 16:35
ぽんすさん、あんとれさん、ちいにぃさん
お忙しい中いろいろ教えていただき 本当にありがとうございます。 本業の方が忙しくて、教えていただいた方法をいまだ試せずにいます。 近いうちに試して再度アップしますが レスが遅れたことを心よりお詫びいたします。m(__)m みなさまのアドバイスがとても助かっております。 これからも宜しくお願いいたします。 |
|
投稿日時: 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 |