クローラー(clawler)やボット(bot)をアクセスログに残さない方法
presented by 役に立つかもしれないBlog
WEBサイトのアクセスログを監視する場合に参考にならない情報として検索エンジンのクローラーやボットの来訪があります。 これを表示させないようにするためにはtailコマンドなどを使う際に正規表現で弾くようにします。
いろんな種類のクローラーやボット
1台のPCをアクセスログ監視専用マシンにし、24インチモニターで7つほどのログウィンドウを立ち上げて2ヶ月ほど常時監視していましたが、ほんとにいろんなクローラーやボットがいるなぁ、といった印象です。
Googlebotの来訪頻度の多さや個人ユーザーなどがWgetでデータ取得していたりと、リアルタイムでログ監視していると、アクセス解析ソフトだけでは分からないことも感じられて面白いです。 一方でアクセス解析ソフトでのクローラー・データベースのアップデート頻度も大変なんだろうなぁ、と思います。
クローラーやボットたちをgrepで弾いてみる
出力制御は定番のgrepで、パイプを利用します。 grepコマンドに「-v」オプションをつけると、正規表現の文字列に一致するログを非表示にできます。
# tail -f /path/to/log/access_log|grep -v "clawler\|Googlebot\|googlebot\|DotBot\|Slurp\|msnbot\|robots\|spider\|Wget\|ScoutJet\|mlbot"
さらにWEBページファイルのみのログ表示にする
クローラーやボットよりもある意味邪魔なのがWEBページファイルにリンクした画像やCSSファイルなどのアクセスログです。 これらを弾く正規表現も一緒に組み込んでみます。
tail -f /path/to/log/access_log|grep -v ".jpg\|.JPG\|.css\|.js\|.ico\|.png\|.txt\|.swf\|.gif\|.GIF\|clawler\|Googlebot\|googlebot\|DotBot\|Slurp\|msnbot\|robots\|spider\|Wget\|ScoutJet\|mlbot"
上にも書いたように、これからも様々なクローラーやボットたちがあなたのサイトに来訪することが予想されますので、それっぽい文字列を察知したら加えていくようにしてくださいね。


