リアルタイムでのアクセスログ解析用として「StatPress」プラグインを導入しています。
シンプルな構造で気に入って使っていますが、
ある日、StatPressで表示されるページビュー(PV)数が
いつもなら1日で300~400PV数が1,000PV数を超えていることに気がづきました。 =-O
昨日の倍以上です。
どう考えても異常なPV数です。 :-S
StatPressのリクエスト情報を調査してみると
存在しないはずのページに対し、大量のリクエストがきている事がわかりました。
これは何?。こんなページは存在しないはずだけど?。まさか攻撃?
しばし考えて・・・。 :-/
そういえば、
ちょっと前に携帯用に表示を最適化してくれる「KtaiStyle」プラグインを導入しました。
まさかと思い、StatPressで取得したエージェントを確認してみると「ビンゴ!! :o) 」
モバイル用のBOTが大量にアクセスしていました。
StatPressはモバイルからのアクセスには対応していないので、
単純にBOTリクエストをPV数と処理しているのが原因のようです。
このまま放置しておくと今回のように異常なPV数になってしまうので
StatPressの設定ファイルをカスタマイズして対応できるか試してみました。
StatPressは重要な設定ファイルが5個あります。
※[statpress/def]フォルダ内
※各ファイルの機能や動作
ファイル名 | 機能・動作 |
---|---|
banips.dat | 設定したIPアドレスをログに保存しない |
browser.dat | agentに含まれるブラウザー情報を処理する |
os.dat | agentに含まれるOS情報を処理する |
searchengines.dat | referrer情報に含まれる検索情報を処理する |
spider.dat | agentに含まれるスパイダー(BOT)情報を処理する |
各ファイルは共通で「表示名|調査文字列」の形式を書き込んでおきます。
検索エンジン(searchengines.dat)のみ
“表示名|調査文字列|検索指定文字列”で設定します。
検索指定文字列は
検索エンジンが処理する「query=」や「q=」の文字から”=”を取除いた文字を指定します。
まずはSpider(BOT)対応を行います。
調査したところ大量の”GoogleBot Mobile”が存在していたので
spider.datファイルの最後に以下を追加します。
{code}GoogleBot Mobile|googlebot-mobile|{/code}
これにより、Agent情報の文字の中に
“googlebot-mobile”が存在すればSpider(BOT)として処理され
設定した”GoogleBot Mobile”が表示されます。
すでに処理されてしまったデータはしょうがないので
<phpmyadmin>で下記のSQLを実行して書き換えました。
{code}UPDATE `wp_degi_statpress` SET
spider = ‘GoogleBot Mobile’
where agent like ‘%googlebot-mobile%'{/code}
※[agent]に “googlebot-mobile” が存在したら [spider] を “GoogleBot Mobile” に置換
※テーブル名:wp_degi_statpressの”wp_degi_”は接頭語
確認してみると大量に”GoogleBot Mobile”が表示されました。
お前が犯人か!!
グラフも、1,000以上あったページビュー数からSpiderへ件数の半分近くが移動されました。
これで異常なPV数はなおりましたが、
今後、携帯からのアクセスがあることを考えて、
その他のファイルも設定してみました。
browser.datファイル、os.datファイルの最後に以下を追加すると
{code}KDDI|KDDI{/code}
Agent情報の文字の中に”KDDI”が存在すれば、
設定した”KDDI”がブラウザー情報とOS情報に表示されます。
ブラウザーとOSのイメージは[statpress/images]フォルダ内に
検索文字列と同じ名前で格納すれば表示してくれます。
上手く処理するか自分の携帯(au)からアクセスしてみました。
上手く処理されているようです。
検索エンジンの処理は
searchengines.datファイルの最後に以下を追加すると
{code}ezweb|ezsch-ezweb.ne.jp|query|{/code}
Referrer情報の文字の中に”ezsch-ezweb.ne.jp”が存在すれば
設定した”ezweb”がエンジンに表示されます。
最後に設定した”query”は検索エンジンのが処理する引数の文字を指定します。
auから検索した時のReferrer情報は以下のようになるので”query”になります。
http://ezsch.ezweb.ne.jp/search/?sr=0101&query=%83f%83W%94%F5%96Y
設定した文字”query=”に続く文字が検索キーワードとして表示されます。
ただし、
携帯の文字コードがSJIS(たぶん)なので指定された検索文字が文字化けしています。
この辺はもう少し調整が必要ですかね。
自分が持っている携帯のキャリア[au]を重点的に設定してみました。
同じようにDoCoMoやSoftBankを調査しようと思いましたが面倒くさいので、
ログに見なれない情報が表示されてから調査しようと思います。
残りの設定ファイル banips.datには
{code}192.168.0.100
192.168.0.101{/code}
のようにIPアドレスを設定しておけば、
このIPアドレスからきたアクセスを
処理せずログにも残りません。
全体的にはこれで大丈夫でしょう。 (Y)
StatPressはこのように設定ファイルを調整することで、色々対応できるようになります。
今回はbrowser.datやos.datに”KDDI”とかなり大雑把な検索文字を指定しましたが、
Agentの内容を調査し”携帯機種”ごとに表示することも、もちろん可能です。
ちなみに
statpress.php内の
{code}$querylimit=”LIMIT 20″;{/code}
を
{code}$querylimit=”LIMIT 500″;{/code}
のように書きかえれば表示する件数を変更でき、
それなりの流れが把握できます。※値の大きさはホドホドに。
それでもいつもより100件ばかりPV数が多いなー。
もう少し調査が必要かも。
5 thoughts on “異常なページビュー数。その犯人は!! – StatPressプラグイン[携帯対応]”