ワンラインスクリプトでできる!ちょっとしたログ解析

サイト管理などをするようになると、やはりログ解析をしたくなります。どのページにアクセスがきているのか、どれくらいの負荷がかかっているのか分析をする必要があるからです。


Apacheのログでは、処理にかかった時間が記録に残るように %D" を追加しておきましょう。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined

そうすると、アクセスログを解析するときに、どの処理で時間がかかっているか調べることができます。その際にはawkを使うと便利です。次のように22時台のアクセスのうち、500エラーが返っていた行を抽出することもできます。uniq, cut, sort などを組み合わせると、いろいろな値が出せます。

grep "2011:22:" access_log | awk '$9==500{print}'
awk '$9==500{print}' access_log | cut -f2,3 -d: | sort | uniq -c
awk '{print $1}' access_log | sort | uniq -c | sort -n | tail -5

参考)

同じタグの記事: Apache
同じタグの記事: AWK
同じタグの記事: bash
同じタグの記事: CentOS
同じカテゴリの記事: General
関連書籍: Apache
関連書籍: AWK
関連書籍: bash
関連書籍: CentOS