ApacheログからのReferer集計

Webページのアクセスが増えたときなどに、アクセス元(こちらにリンクしているサイト)の情報を知りたいことがある。
Apacheアクセスログから、Refererを集計して、アクセス数の多い順に並べられるといい。

これは、Linuxのcut sort uniq コマンドを次のように組み合わせて簡単に実現できた。

cut -d " " -f11 access_log | grep -v mydomain | sort | uniq -c | sort -r > referer_ranking

各コマンドの意味はそれぞれ次の通り。

cut -d " " -f11 access_log

access_log ファイルを半角スペースで区切って、その11番目の要素だけを取り出す(今回は referer 情報が11番目の要素だった)

grep -v mydomain

※ 自サイトからのアクセスは対象外とするため、自サイトを表すキーワードを含まない行だけを取り出す。

sort

※ あとで、個数を調べるために、アルファベット順に並べる

uniq -c

※ 重複する行を1つにまとめあげる。行頭に、カウントした数字をつける

sort -r

※ 改めてソートする(-r を付けることで降順になる)。これで、カウント数が多い順にrefererが並ぶ


以上のことは、次のサイトに記載されている内容をほとんどそのまま使わせてもらった。
アクセス解析で便利だったコマンド集 - 初めてのシステムと日記

できるPRO CentOS 6 サーバー (できるプロシリーズ)

できるPRO CentOS 6 サーバー (できるプロシリーズ)

Linuxシステム[実践]入門 (Software Design plus)

Linuxシステム[実践]入門 (Software Design plus)