アクセスログの軽量化の実際

アクセスログの軽量化の話の続き。

 

量産型アフィリエイターになると、数百サイトくらい作ったりするため、どのページにアクセスが来ているかを調べるのは大変になる。

 

こうした場合、それぞれのサイトにアクセス解析タグを貼って調べるが常道だろうが、数百サイトもあるわけだから、一々全部調べるのはほとんど不可能だ。

 

ということで、サーバーに残っているアクセスログ(生ログ)をダウンロードしてきて、それを統合してアクセス解析してみようという話だ。

 

ところがアクセスログの生ログって、1サイトあたり数MBもあるので、100サイト分だと数百MBにもなってしまう。

 

これをそのまま毎日ダウンロードするのも時間の無駄だから、サーバーにできたアクセスログの必要な部分だけコピーして、まとめたモノをダウンロードしたい。

 

ということでアクセスログの生ログを調べて不要なログをPHPスクリプトでカットしてみた。

 

そうすると、約140MBあったアクセスログが、約19MBまで軽量化することに成功した。

 

割合で言うと、およそ7分の1くらいだね。

 

アクセスログの軽量化の例


※一番下のファイルが、スキップを外して統合したアクセスログ。

 

具体的にどういう感じになったかというと、次のような感じだ。

  1. 画像ファイルの呼び出しログをスキップする 約140MB → 約42MB
  2. アイ・フレームで呼び出すファイルをスキップ 約42MB → 約26MB
  3. 404エラー、403エラーのページをスキップ 約26MB → 約21MB
  4. googlebotや、HEADリクエストをスキップ 約21MB → 約19MB




ということで、実際のPHPスクリプトの例を紹介する。

 

その前にまず、メモリー利用上限を拡大しておく。

 

通常、PHPの設定では、扱うメモリーの上限は128MBになっているらしい。

 

これだと、128MBを越えるファイルは処理できないため、一時的にメモリーの利用上限を拡大しておく必要がある。

 

PHPスクリプト メモリー利用上限を拡大する

 

不要なアクセスログをスキップするPHPの記述例

ドメイン別になっているアクセスログを一つ読み込んで、$log_dataという配列に入れた後、アクセスログを一行ずつ処理する。

 

パターンマッチで不要なログを見つけたらスキップし、必要なログだけ、$log_output00に書き込む。

 

アクセスログ1ファイル分の処理を完了したら、$log_output00を、$log_outputに結合していき、最後にこれを編集済みの統合ファイルとして出力する。

広告


Twitter
Facebook
LINE
はてな
ポケット



売れてます

★稼げるアフィリエイター専用SEO分析ツール「COMPASS」

大幅バージョンアップ完了!アフィリサイト作成システムSIRIUS

★SEOに強い戦略的テンプレート「賢威7」

アフィリエイト教材 最新人気ランキング