【Nginx】alpコマンドでNginxのアクセスログを見やすくしよう

はじめに

Nginxのログをそのまま見るのは辛いですよね... そんなあなたにalpコマンド !!

alpコマンドを使えばログが取っても見やすくなり、解析作業が捗ります!特にベンチマークを取るときにサマリーが見やすくなるのでとてもおすすめです。

コマンドのインストール

Linuxであればgithubからダウンロードすることで導入できます

wget https://github.com/tkuchiki/alp/releases/download/v1.0.11/alp_linux_amd64.zip
unzip alp_linux_amd64.zip
sudo install ./alp /usr/local/bin

MacであればHomebrew経由で簡単にインストールができます

brew install alp

Nginxの設定

次にNginxの設定を編集してjson形式でログを受け取るように変更します。お好きなエディタでnginx.confを開いてください

sudo vi /etc/nginx/nginx.conf

次のように編集します

今回はパフォーマンス・チューニングで利用するような項目を取り入れました。項目は自由に設定してください。

# Logging Settings
log_format json escape=json '{"time":"$time_iso8601",'
  '"host":"$remote_addr",'
  '"port":$remote_port,'
  '"method":"$request_method",'
  '"uri":"$request_uri",'
  '"status":"$status",'
  '"body_bytes":$body_bytes_sent,'
  '"referer":"$http_referer",'
  '"ua":"$http_user_agent",'
  '"request_time":"$request_time",'
  '"response_time":"$upstream_response_time"}';
access_log /var/log/nginx/access.log json;
error_log /var/log/nginx/error.log;

編集が終われば構文に間違いがないかチェックします

sudo nginx -t
# nginx : the configu.... syntax is ok
# nginx : configu..... test is successful

そして、ログを移動・または削除しておかないとalpコマンドを使ったときにエラーがでるので今までのログは移動しましょう。

sudo mv /var/log/access.log /var/log/access.log.back

ここまで終われば設定を反映させるために再起動します

sudo systemctl reload nginx

これで準備は完了です

コマンドを叩く

cat /var/log/access.log | alp json

以上alpコマンドの紹介でした! またね~