Apacheでは「usertrack_module」があれば、cookieをログに出力することが出来ます。今回はその設定をしてみます。
【モジュールの確認】
$ /usr/local/apache2/bin/httpd -M usertrack_module (shared)
このモジュールが出てこればOK。出てこなければ、有効化(パッケージの場合)かモジュールの追加(ソースの場合)をします。
【httpd.confのバックアップ】
# cp -rp /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.2014061902
【設定】
# 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
【設定ファイルの読み込み】
# /etc/init.d/httpd graceful
これでクッキーがログに出力されます。
■ 応用
ちなみに、出力されるCookieにも種類があります。
なお、ここを参考にしました。
新人Webアナリスト必読! 生ログ解析で失敗しないための12のチェックリスト at Nexal の一期一会
【Apache側での出力方法】
クライアントサイドで発行のcookieを残す場合
%{cookie}n ~ mod_usertrackが内部的に出力するもので、リクエスト/レスポンスとは無関係に出力されます。 %{cookie}i ~ リクエストヘッダのCookieを出力します。 %{cookie}o ~ レスポンスヘッダのCookieを出力します。
サーバサイドで発行のcookieを残す場合 上記と同様に、n、i、oが選べます。
%{set-cookie}n ~ mod_usertrackが内部的に出力するもので、リクエスト/レスポンスとは無関係に出力されます。 %{set-cookie}i ~ リクエストヘッダのCookieを出力します。 %{set-cookie}o ~ レスポンスヘッダのCookieを出力します。
今度、cookieについても深く調べてみないと。