Tips記事
» 2003年04月04日 23時56分 UPDATE

Cookieログ記録をオンにしたい

[木田佳克,ITmedia]

 ここではWebアクセスのユーザーを把握するための手段の1つ、Cookieを利用する方法を解説しよう。

 「Cookie機能をオンにする」ことは、とても簡単だ。Apacheの設定ファイル(httpd.conf)内で次のように記述すればよい。ただし、この機能を利用するにはusertrackモジュールが組み込まれている必要がある。RPMパッケージであれば標準で組み込まれているはずだ。Apache 2.0を例にすると、「LoadModule usertrack_module modules/mod_usertrack.so」行があるかを確認しよう。

 2行目の「CookieExpires ...」は、有効な期間の指定になるが、単位は「years」、「months」、「weeks」、「days」、「hours」、「minutes」、「seconds」が選択肢にある。また、この行自体を指定しない場合には、Webブラウザを終了させた時点までとなる。

# vi /etc/httpd/conf/httpd.conf

〜中略〜

CookieTracking on
CookieExpires "7 days"

〜以下略〜

 上記の指定は、特に決まった個所を問わないが、決めかねる場合には「DocumentRoot "/var/www/html"」などの下辺りに記述すればよいだろう。

 ここまででhttpdを再起動させればCokkieがオンになる。実際には、何らかの形で活用する手段が必要だ。まずはログファイルに書き出すのが一般的のため、次のように挙げてみた。Cookieと共に時間、リファラー、アクセス先を記録する例だ。

LogFormat "%{cookie}i %t %{Referer}i -> %U" cookie
CustomLog logs/cookie_log cookie

を加え、ログ記録設定部が次のように設定されている状態だ(ここでのカスタマイズ参考Tips:「Apacheでプライベートアドレスからのアクセスをログ記録させない 」など)。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
LogFormat "%{cookie}i %t %{Referer}i -> %U" cookie
SetEnvIf Remote_Addr 192.168.0. no_log
CustomLog /var/log/httpd/access_log combined env=!no_log
CustomLog logs/cookie_log cookie env=!no_log

 これにより、ログファイル「cookie_log」として次のように記録される。

# tail /var/log/httpd/cookie_log

〜中略〜

Apache=192.168.0.2.1048020181736294 [04/Apr/2003:23:15:00 +0900] http://galaxies.jp/mrtg/ -> /index.html

 注意点として、Cookie情報を標準のアクセスファイル「access_log」内に含める際には、アクセス解析ツールWebalizerやAnalogなどで誤解析など不具合が起きないことを確認したい。

Copyright© 2018 ITmedia, Inc. All Rights Reserved.

ピックアップコンテンツ

- PR -

注目のテーマ

マーケット解説

- PR -