labunix's blog

labunixのラボUnix

IPとドメインの組み合わせでプロキシアクセスのトップ10を集計する。

■IPとドメインの組み合わせでプロキシアクセスのトップ10を集計する。
 条件は、以下。

  1行目:2015年の09:0017:59の間、12:0012:59を除く。
  2行目:「http://」と「[」を取り除く。
  3行目:対象のファイル(1日分)。
  4行目:IPとアクセス先URLを取り出す。
  5行目:「アクセス先URL」からディレクトリ以下を削除。
  6行目:IPとドメインの組み合わせでカウント。
  7行目:カウント数の多い順に並べ替えて、上位の10行を取り出し。

$ sudo awk '(/2015:09/||/2015:1[0134567]/)&&/:[0-5][0-9]:[0-5][0-9] / \
            {gsub("http://","");sub("\\[","");print $1,$4,$7}' \
            /var/log/squid3/access.log | \
       awk '{print $1,$3}' | \
       sed 's%/.*%%g' | \
       awk '{a[$1","$2]+=1};END{for (n in a){print a[n],n}}' | \
       sort -nr -k1 | head -10
212 172.16.56.103,www.keyman.or.jp
164 172.16.56.101,wired.jp
140 172.16.56.102,uni.res.nimg.jp
122 172.16.56.104,api.b.st-hatena.com
115 172.16.56.101,www.sankei.com
115 172.16.56.100,www.asiapress.org
114 172.16.56.103,mt1.googleapis.com
111 172.16.56.101,mt0.googleapis.com
109 172.16.56.100,www.google-analytics.com
109 172.16.56.102,b.hatena.ne.jp

■結果として、各種ニュースサイトにニコニコ動画、
 はてなとグーグル先生が多いアクセスです。
 全く面白くは無いですね。。。

■余談ですが、最後にスペースを「,」に変換すればCSV形式として扱えます。
 また、以下のようなHTTPメソッドやHTTPステータスコード、
 曜日などの条件は付けませんでした。

 アクセスログからワンライナーで接続元毎、閲覧先毎の接続回数の集計をしてみる。

 http://labunix.hateblo.jp/entry/20151007/1444203751

 「第16回春だからログ解析するぞシェル芸勉強会」を解いてみた。
 http://labunix.hateblo.jp/entry/20150418/1429363261