Skip to content

Latest commit

 

History

History
74 lines (55 loc) · 2 KB

01.measure-access-log.md

File metadata and controls

74 lines (55 loc) · 2 KB

Nginx のアクセスログ

本番のアプリが Nginx を使っていることが前提。 alp を使う。秘伝のタレ云々ものちにまとめたい

1. alp をインストール

cd ~

# wget, unzipのインストール (必要なら)
sudo apt install -y wget unzip

# alpをインストール
wget https://github.com/tkuchiki/alp/releases/download/v1.0.21/alp_linux_amd64.zip
unzip alp_linux_amd64.zip
sudo install ./alp /usr/local/bin

# 確認
which alp

2. Nginx のログの出力設定変更

sudo vim /etc/nginx/nginx.conf

# httpブロックの中に、log_formatの設定追加
http {
  log_format ltsv "time:$time_local"
    "\thost:$remote_addr"
    "\tforwardedfor:$http_x_forwarded_for"
    "\treq:$request"
    "\tmethod:$request_method"
    "\turi:$request_uri"
    "\tstatus:$status"
    "\tsize:$body_bytes_sent"
    "\treferer:$http_referer"
    "\tua:$http_user_agent"
    "\treqtime:$request_time"
    "\truntime:$upstream_http_x_runtime"
    "\tapptime:$upstream_response_time"
    "\tcache:$upstream_http_x_cache"
    "\tvhost:$host";

  access_log  /var/log/nginx/access.log ltsv;
}

sudo systemctl reload nginx

3. (2 回目以降) ログローテ & 再起動

echo -n "" > /var/log/nginx/access.log && sudo chmod 777 /var/log/nginx/access.log
# ログローテ & nginx再起動
sudo rm /var/log/nginx/access.log && sudo systemctl reload nginx

4. 実行 (WIP. alp コマンドについてもっと詳しく)

特定の正規表現でグルーピングして、結果を出力することができる

sudo cat /var/log/nginx/access.log | alp ltsv

# グルーピングの例
# /items/{数字}.json, /users/{数字}.json がalpの出力結果の大半を占めている場合は、正規表現使ってグルーピングしてあげると見やすくなる
sudo cat /var/log/nginx/access.log | alp ltsv -m "/items/[0-9]+.json, /users/[0-9]+.json" --sort=sum --reverse

参考