2013/07/10

[nginx]アクセスログフォーマットにLTSVを適用する。

以前、nginxのアクセスログフォーマットについて書きました。 ログ収集のためのツールであるfluentdが広まっており、サーバーログなどの扱い方も変わってきているように思います。

そういった中で、LTSVという形式でログを出力させることで、ログをアプリケーションで扱いやすくするという方法が広まっているようです。
LTSVに関する説明として、LTSV FAQ - LTSV って何? どういうところが良いの?がとても参考になります。

LTSV形式でnginxのログを出力させる場合、nginxの設定ファイル(一般的には、nginx.conf)に次のように記述します。
(http ディレクティブに書きました。)


    log_format ltsv "time:$time_local"
                    "\thost:$remote_addr"
                    "\tforwardedfor:$http_x_forwarded_for"
                    "\tuser:$remote_user"
                    "\treq:$request"
                    "\tmethod:$request_method"
                    "\turi:$request_uri"
                    "\tstatus:$status"
                    "\tsize:$body_bytes_sent"
                    "\treferer:$http_referer"
                    "\tua:$http_user_agent"
                    "\treqtime:$request_time"
                    "\tcache:$upstream_http_x_cache"
                    "\truntime:$upstream_http_x_runtime"
                    "\tapptime:$upstream_response_time"
                    "\tvhost:$host";



各項目のラベルは、上述のLTSVのサイトで推奨されているラベルを使っています。
そして、このログフォーマットを適用したいserverディレクティブ内で、
  server {
    listen 80;
    # 略
    access_log logs/access.log ltsv;
    # 略
  }
のように指定し、nginxを再起動することで、LTSV形式のログが出力されます。

0 件のコメント: