導入
logs/access.log は「どのIPが・どのメソッドで・どのパスに・どんな結果(ステータス)でアクセスしたか」の記録です。Webサーバーの HTTP ステータスコード(200・403・404。詳しくは※ネットワークコースで扱います)が、ここに実データとして並びます。第3章の万能パターン ... | sort | uniq -c | sort -rn で一発集計しましょう。
説明
まずデータの形を確認します。スペース区切りで「IP メソッド パス ステータス」の4列です。
head -n 3 logs/access.log
4列目(ステータスコード)を取り出し、多い順に集計します。200(成功)がどれだけあり、404 や 403(失敗)がどれだけ混じっているかが見えます。
cut -d " " -f 4 logs/access.log | sort | uniq -c | sort -rn
同じパターンで1列目(IP)を集計すれば、「アクセス元ランキング」になります。攻撃の疑いがある多アクセス元を見つける、といった調査の入口です。
cut -d " " -f 1 logs/access.log | sort | uniq -c | sort -rn
失敗だけを見たいなら grep で絞ります。404 を含む行だけ抜き出してみましょう。
grep 404 logs/access.log
やってみよう
ステータス集計とIP集計を打ち比べて、cut で取り出す列(-f 4 と -f 1)を変えるだけで別の切り口の集計になることを体感しましょう。grep 404 logs/access.log で失敗アクセスだけを取り出す動きも見てください。
演習
logs/access.log からアクセス元IP(1列目)ごとの件数を数え、多い順に並べてください。
ヒント1を見る
万能パターンの入口を -f 1 にします。
ヒント2を見る
cut -d " " -f 1 logs/access.log | sort | uniq -c | sort -rn