【1分解説】Apacheのアクセスログ解析(アクセス元IPアドレスをTOP10で抽出)


はじめに

アクセス元IPアドレスをTOP10で抽出したい!という時に使うコマンド。

発行コマンド

$ cat access_log |cut -f 1 -d ' ' | sort |uniq -c|sort -nr|head -10

中身

◆cut -f 1 -d ' '
access_logの中身を「 」(スペース)で区切り、1項目を表示する

◆sort | uniq -c
で重複行をカウント

◆sort -nr
数字が大きい順に並べかえる

◆head -10
TOP10のみ出力

実際に発行してみた

実際に発行してみると、

$ cat access_log |cut -f 1 -d ' ' | sort |uniq -c|sort -nr|head -10
103 X.X.X.X
99 X.X.X.X
93 X.X.X.X
91 X.X.X.X
88 X.X.X.X
50 X.X.X.X
33 X.X.X.X
29 X.X.X.X
18 X.X.X.X
6 X.X.X.X

左からアクセス数、つぎに接続元IPアドレスが出力されます。

例えば、接続数が多いIPアドレスが海外のブラックリストに登録されているIPアドレスだった場合は、拒否したりすることもできます。