アクセスログのフォーマットをltsv形式にする
nginxが出力するアクセスログをfluentdで取り込み、それをElasticSearchやMongoDBに集約する予定なので、取り込みやすいようにログフォーマットをltsv形式にします。 必要そうな項目を一通り羅列しました。
upstream_status
はappsサーバからのステータスコード、upstream_addr
はappsサーバのIP、opensocial_viewer_id
はユーザのopensocial_viewer_id(取れる場合)も取得しています。
http { .... log_format ltsv 'time:$time_local\t' 'msec:$msec\t' 'remote:$remote_addr\t' 'forwardedfor:$http_x_forwarded_for\t' 'method:$request_method\t' 'uri:$request_uri\t' 'status:$status\t' 'size:$body_bytes_sent\t' 'referer:$http_referer\t' 'ua:$http_user_agent\t' 'reqtime:$request_time\t' 'cache:$upstream_http_x_cache\t' 'runtime:$upstream_http_x_runtime\t' 'host:$host\t' 'upstream_addr:$upstream_http_x_server_addr\t' 'upstream_status:$upstream_status\t' 'session:$session\t' 'set_cookie:$sent_http_set_cookie\t' 'opensocial_viewer_id:$opensocial_viewer_id\t'; ... server { ... access_log /var/log/nginx/staging.example.web.access.log ltsv; ... } }