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