NginxアクセスログでIPアドレスをカウントする
最近、サーバーで多くのreferer spamがヒットしました。以下は、NginxアクセスログファイルからIPアドレスを見つけてカウントするために使用したコマンドです。
$ sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
完全な例
$ sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr 210 190.104.220.x 208 181.119.20.x 134 66.249.69.x 129 66.249.69.x 113 37.58.100.x 108 66.249.69.x 108 128.204.204.x 106 37.58.100.x 99 110.85.69.x 89 125.78.199.x 71 128.204.194.x 70 210.195.94.x 60 23.19.34.x
Note
同じトリックがApacheサーバーのaccess.logにも当てはまります。
次に、以下のコマンドを使用して特定のIPのアクセスイベントを見つけてから、次に実行するアクションを決定します。
$ sudo cat /var/log/nginx/access.log | grep 190.104.220.x