nginxを使ってアクセスログを追う

やりたいこと

  • ある検索項目(URLのパラメータ)がどのくらい使われているのか調べたい

やったこと

1.nginxのアクセスログの置き場所を確認

$ cat /etc/nginx/nginx.conf

~
    access_log  /var/log/nginx/access.log  main; // ここにある
~


2.アクセスログから特定の文字が含まれている回数を出力してみる

// とりあえずログが存在するか確認
$ tail -f /var/log/nginx/access.log

ログが流れてくる


// 特定の文字が含まれている行数を出力
$ cat /var/log/nginx/access.log | grep {検索したい文字列} | wc -l
934

コマンド解説

wc -l

wcコマンドは、自邸されたファイル内の行数、単語数、バイト数をカウントできる

オプション

-c バイト数のみを集計して表示
-w 単語数のみを集計して表示
-c 行数のみを集計して表示
file 集計するファイルを指定する


3.数日前の複数のアクセスログファイルを含めて回数を出力

// 数日前のアクセスログは圧縮されているため解凍する
$ gunzip /var/log/nginx/20190720.gz

// 行数の出力
$ find /var/log/nginx/ -type f -name "access.log-2019*" | xargs sudo grep jobTypes | wc -l
7388

// 解凍したファイルを圧縮し直しておく
$ gzip /var/log/nginx/20190720.gz

コマンド解説

xargs

xargsコマンドは、標準入力やファイルを引数として、別のコマンドを実行することができる