Apacheでは「usertrack_module」があれば、cookieをログに出力することが出来ます。今回はその設定をしてみます。
【モジュールの確認】
[html]$ /usr/local/apache2/bin/httpd -M
usertrack_module (shared)[/html]
このモジュールが出てこればOK。出てこなければ、有効化(パッケージの場合)かモジュールの追加(ソースの場合)をします。
【httpd.confのバックアップ】
[html]# cp -rp /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.2014061902 [/html]
【設定】
[html]# vi httpd.conf
この2行追加で、cookie追跡有効になります。
CookieTracking on
CookieExpires "7 days"
※ 今回は7日で設定。
ログフォーマットに、cookie追加バージョン追加し、ニックネームもつける。今回は分かりやすく「cookie」にしています。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D \"%{cookie}n\"" cookie
カスタムログにニックネーム「cookie」を指定する。
CustomLog "logs/access_log" cookie
[/html]
【設定ファイルの読み込み】
[html]# /etc/init.d/httpd graceful[/html]
これでクッキーがログに出力されます。
■ 応用
ちなみに、出力されるCookieにも種類があります。
なお、ここを参考にしました。
新人Webアナリスト必読! 生ログ解析で失敗しないための12のチェックリスト at Nexal の一期一会
【Apache側での出力方法】
クライアントサイドで発行のcookieを残す場合
[html]
%{cookie}n ~ mod_usertrackが内部的に出力するもので、リクエスト/レスポンスとは無関係に出力されます。
%{cookie}i ~ リクエストヘッダのCookieを出力します。
%{cookie}o ~ レスポンスヘッダのCookieを出力します。
[/html]
サーバサイドで発行のcookieを残す場合 上記と同様に、n、i、oが選べます。
[html]
%{set-cookie}n ~ mod_usertrackが内部的に出力するもので、リクエスト/レスポンスとは無関係に出力されます。
%{set-cookie}i ~ リクエストヘッダのCookieを出力します。
%{set-cookie}o ~ レスポンスヘッダのCookieを出力します。
[/html]
今度、cookieについても深く調べてみないと。