AWStatsでWordPressサイトの解析結果をさらに見やすくする2つの設定

AWStatsとは

AWStatsとはフリーのアクセス解析ソフトです。
歴史は古く開発は1997年からとなっております。

私は2007年からいくつかサイトを運用してきましたが、いつもアクセス解析にはAWStatsを使ってきました。

AWStats-screen-shot
出展:AWStats - Free log file analyzer for advanced statistics (GNU GPL).

デモサイト ←こちらからどうぞ

AWStatsのメリット

私がAWStatsを使い続けるのは以下の理由があるからです。

  • とにかく見やすくて分かりやすい
  • 過不足のない機能
  • トップページに必要な情報が分かりやすく網羅、無駄な画面遷移の必要なし
  • 軽い
  • 「超」高機能Google Analyticsのようにイチイチ画面遷移をする必要なし

この解析結果の分かり易さに慣れてしまうと、他の解析ツールに手を出すことは出来ません。

AWStatsのデメリット

ただしAWstatsには以下のようなデメリットもあります。

  • リアルタイム解析機能はない
  • 手動でサーバーにインストールする、設定も多少面倒
  • 参考サイトが少ない
  • cronの知識も必要

確かにインストールは少し大変かもしれません。

しかし、以下のサイトでサーバーへのインストール方法、設定方法が詳しく解説されています。以下のサイトを参照すると、割と簡単にインストールすることは可能です。

特にさくらのインターネットを使っている方は、上記のサイトを参照すればとても簡単にインストールが可能です。

Google Analyticsは使いにくい

「無料」、「高機能」ということで、現在はほとんどの人が、Google Analyticsを利用していると思います。

しかしダメなんですよね。何回か見方や使い方を習得しようとしましたが、生理的にあのインターフェイスは無理です。具体的には以下の点がダメです。

  • 動作が重い
  • サマリー画面で見られる情報が少なすぎる
  • 必要な情報を得るためには、イチイチ画面遷移する必要あり
  • 画面遷移(画面の切替)も速くはない
  • 結局、必要な解析情報を得るため時間がかかる
  • ちょくちょくインターフェイスの変更がある

AWStatsとは好対照です。

「リアリタイム解析など要らない」とにかく軽くて見やすい解析ツールということなら、AWStatsの方が向いています。歴史と実績が違います。Google Analyticsは2005年末頃に開始した比較的新しいサービス。一方AWStatsは1997年からの伝統あるユーザーフレンドリーな解析ツールです。

WordPressでAWStatsを使っている人も多分いる

とはいえ、Google Analyticsの登場によって、AWStatsユーザーは確実に減少したと思います。

そんな時流に反してAWStatsを使い続ける少数派の中でも、ブログに関しては、主流派のWordPressを使っている人も少なくないはずです。

なぜなら「WordPressで絶対【最初に】する4つのこと 後編 ログインID漏洩防止とwp-login.phpの撤廃」でもご紹介したとおり、現在CMS内のWordPressのシェアは58.7%にも及んでいるからです。

CMS内のシェア
出展:全世界のサイトの4分の1はWordPressで作られている - GIGAZINE

ブログサイトを手打ちで構築する野暮な人など世界に一人もいないでしょう。何らかのレンタルブログサービスやCMSを利用しているはずです。しかし、レンタルブログサービスでは、AWStastsは使えないので、AWStastsユーザーはWordPressなどのCMSを使ってブログを運営することが多いはずです。

インストール時の注意点

今回はそれでも無料、高機能をうたうGoogle Analyticsに乗り換えなかった少数派、あるいはこれからWordPressでAWStatsをご利用になる方向けに、WordPressサイトの解析結果をさらに見やすくするための便利な設定を2つご紹介したいと思います。

その前に訂正と補足があります。私は下記サイトを参考にすることで、比較的簡単にAWStatsはインストール・設定が可能と説明しました。

  1. AWStatsインストール – さくらインターネット | BoozyWoozy
  2. AWStatsインストール – さくらインターネット その2 | BoozyWoozy

しかし、1点の誤りと1つ補足がありますので追加します。

正しいJcode::convert(\$newAliasEntry, 'utf8');の記述

まずは誤りの部分です。AWStatsで「urlaliasbuilder.pl」というプラグインを使用する際に、以下の点にご注意下さい。

AWStatsインストール – さくらインターネット | BoozyWoozyでは、

■タイトル取得プラグインスクリプトの修正
対象ファイル:[AWStats66_Jpn\tools\urlaliasbuilder.pl]

[Jcode]の追加(タイトル文字化け回避の処置)
use LWP::UserAgent;の記述を探して、次の行に[use Jcode;]を追加

use LWP::UserAgent;
use Jcode;

次に以下の記述を探して

my $newAliasEntry = &Generate_Alias_List_Entry($newAlias);
$fileOutput .= $newAliasEntry . “\n”;

この2行の間に、
[Jcode::convert(\$newAliasEntry, ‘utf8’);]を追加

my $newAliasEntry = &Generate_Alias_List_Entry($newAlias);
Jcode::convert(\$newAliasEntry, ‘utf8’);
$fileOutput .= $newAliasEntry . “\n”;

と記載されています。しかし、[Jcode::convert(\$newAliasEntry, ‘utf8’);]の記述方法が誤っています

正しくは

Jcode::convert(\$newAliasEntry, 'utf8');

です。utf8を囲むクォーテーションマークが間違っています。

Unrecognized character \x81; marked by <-- HERE after iasEntry, <-- HERE near column 34 at /home/あなたのアカウント/www/AWStats/urlaliasbuilder.pl line 253, line 855.

さくらのインターネットの場合、上記のエラーがメールで届いていたら、

Jcode::convert(\$newAliasEntry, 'utf8');

に訂正すれば直ります。

独自ドメイン、マルチドメイン利用時の設定

独自ドメインやマルチドメインを利用している際は以下の設定をしないと、ちゃんとしたアクセス解析がされません。

例えば、初期ドメインがexample.sakura.ne.jp。
独自ドメインが、example.comだった場合。

■まずは独自ドメイン用(マルチドメインなら各ドメイン毎)に設定ファイルを用意します。上記例なら、設定ファイルは「awstats.example.com.conf」となります。

■その設定ファイルの「LogFormat」を下記のように書き換える必要があります。

130行目辺りのにある以下の項目を次のように書き換える。

LogFormat=1

LogFormat="%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"

このように修正しないと、独自ドメインの場合は、確か、訪問者数が常に1のままとなるはずです。

マルチドメインの運用はしたことはないので、どのようなエラーになるかは分かりません。しかし、上記の設定しないとうまく解析されないことは確かです。

コツ1 SkipFilesの設定

WordPressでサイト運営するとどうしても以下のディレクトリへのアクセスが多くなってしまいます。

  • wp-admin:管理画面系のディレクトリ
  • wp-content:テーマやプラグイン関係のディレクトリ

また以下のファイルへのアクセスも多くなります。

  • wp-login.php:ログインファイル
  • xmlrpc.php:リモート投稿用のファイル
  • awstats.pl:AWStats本体

これらのディレクトリやファイルを解析の対象とすると、無駄な解析結果ばかりになります。そこで使用するのが、「SkipFiles」の設定です。

これは設定ファイル「awstats.ドメイン名.conf」の中の512行目ぐらいにあります。

デフォルトは以下のようにブランクです。

SkipFiles=""

そこで、以下のように追記をすることで、上記ディレクトリ、ファイルへのアクセスは解析されなくなります。

SkipFiles="REGEX[^\/(wp-login|xmlrpc)\.php] REGEX[^\/wp-admin\/] REGEX[^\/wp-content\/] REGEX[\/awstats\.pl]

ここで出てくる「REGEX」は正規表現のことです。ドメインURL直下にディレクトリやファイルがあるときは先頭を意味する「^」を付けます。その辺りは、ご自身のサイト構成に合わせて、書き換えて下さい。

REGEXについてはもっと賢い書き方があると思います。多分「wp-admin」と「wp-content」はまとめて記述出来ると思います。気になる方はREGEX、Linuxコマンドについて詳しいサイトなどでお調べ下さい。割愛。

wp-login.phpは即撤廃

上記SkipFiles設定でwp-login.phpは確かにアクセス解析の対象外となります。しかし今やCMSイコールWordPressの時代、なんと全世界のサイトの4分の1はWordPressで作られている時代。それなのにWordPressはセキュリティーが非常に甘いという欠点を持っています。

WordPressのシェア
出展:全世界のサイトの4分の1はWordPressで作られている - GIGAZINE

それでも、ほとんどのWordPressユーザーはログインURLをwp-login.phpのままにしていると思います。しかしこれは本当に危険です。あなたのサイトがWordPressかどうかなんて素人の私でもすぐに分かります。ということは素人の私でさえ、あなたのログイン画面に侵入することが出来るのです。

Edit Author Slugも絶対併用する

さらにまずいことにWordPressではログインIDが簡単にバレます。素人の私でさえ、あなたのログインIDはいとも簡単盗み取れます。ログインID漏洩防止のためには、「Edit Author Slug」プラグインを今すぐにでも導入しましょう。

edit-author-slug

とても重要なことので詳しく説明します。「WordPressで絶対【最初に】する4つのこと 後編 ログインID漏洩防止とwp-login.phpの撤廃」でも書きましたが、WordPressサイトは「http://(WordPressのURL)」の後に「/?author=ID」をつけるとすぐにログインIDが表示されてしまいます。個人のブログなら大体IDは1か2です。ですからログインIDはほぼダダ漏れ状態です。

そのサイトがWordPressを使っているかなんて本当にすぐに分かります

それなのにログインURLがデフォルト「wp-login.php」のままだと、本来ならセキュリティー上の関門であるはずのログインURLが「いらっしゃいませ」の状態。

上記の手順で簡単にログインIDが入手できるのですから、後はパスワードが解析されるのを待つだけです。本当にいつサイトが乗っ取られてもおかしくないのです。Drupalから乗り換えたので心底思うのですが、こんなにセキュリティー上の脅威を感じるCMSは他には無いのではないでしょうか

即刻ログインURLを変更し、「Edit Author Slug」も併用しましょう

xmlrpc.phpもできれば無効化

xmlrpc.phpもどうやらWordPressに対する大量攻撃の踏み台になるようです。私はWindows LiveWriterのようなブログエディターは使わないので、別にこんなファイル無くても良いと思っています。

使わない人にも一斉にインストールされるという仕様が良くないんだと思います。外部ブログエディター、スマホ等から投稿する人だけが、リスクを承知の上、インストールするオプション性にすれば、セキュリティーホール化することはなかったんだと思います。やっぱり「WordPressはセキュリティー意識が低い!」としか言えません。

ぼやいても仕方ないので、外部ブログエディター、スマホ等から投稿しないのであれば、「以前の記事」で紹介したプラグイン「All In One WP Security & Firewall」で簡単に「xmlrpc.php」へのアクセス拒否が出来ます。

All In One WP Security & Firewall

Pingback機能を無効化する

「All In One WP Security & Firewall」のインストールと有効化については割愛。

「All In One WP Security & Firewall」にてPingback機能を無効化することで、同時にxmlrpc.phpへのアクセスも拒否できます。そもそもPingback機能自体が大量攻撃の呼び水になっているのそうです。安全にWordPressを使用したいなら、外部ブログエディタ、スマホ等からの投稿は諦めましょう。これはユーザーの責任ではなく、開発陣のセキュリティーに関する鈍感さに原因があると思います。

さて、やり方は簡単です。

メニューから「Firewall」を選択します。「Basic Firewall」タブを選択すると、次の画面に遷移します。

ピンバック防止

そこで真ん中の「Enable Pingback Protection」にチェックを入れます。それだけです。

コツ2 NotPageListを活用する

さて本題に戻ります。これはWordPressだけに限った話ではないのですが、最近よくWebフォントが使用されるようになりました。AWStatsのデフォルトの設定のままですと、そういったフォントファイルへのアクセスも解析の対象となってしまい、解析結果がゴチャゴチャしてしまいます。

そこで利用するのが「NotPageList」です。

設定ファイル「awstats.ドメイン名.conf」594行目辺りに以下のような記述があります。

NotPageList="css js class gif jpg jpeg png bmp ico rss xml swf"

これを以下のように追記・修正します。

NotPageList="css js class gif jpg jpeg png bmp ico rss xml swf woff woff2 ttf ttc eot otf svg"

赤字が追加部分。これでフォントファイルへのアクセスは解析対象外となり、かなり解析結果もすっきりします。

私の場合、上記の他にも"txt html htm gz"も追記して解析対象外としています。

補足のコツ SkipHostsの設定

これら2つのコツを活用すれば、WordPressでもかなりすっきりした解析が出来ます。しかし、この設定のままでは、そのアクセスが他人からのアクセスなのか、管理者=自分からのアクセスなのかが分かりません。

これを解消するためには、自分のIPからのアクセスを解析の対象外とする方法もあります。それが「SkipHosts」の設定です。

自分のIPアドレスを確認する方法は、いくつかあります。ただどんなプラットフォームでも、確実に自分のIPを確認できる方法があります。それは確認くんというサイトにアクセする方法です。これが一番簡単でしょう。

「SkipHosts」の設定は、設定ファイル「awstats.ドメイン名.conf」の中の481行目ぐらいにあります。デフォルトでは以下のようにブランクです。

SkipHosts=""

ここに先ほど入手した自分のIPアドレスを追加すればいいのです。これも至って簡単です。

普段使いはAWStats

上記をコツを活用するとWordPressサイトでもとても快適にAWStatsでのアクセス解析が出来ます。この軽さと見やすさに慣れると、本当にGoogle Analyticsには移行できません

とはいえ、Google Analyticsは本当に高機能。
例えば、ユーザーの分布の年齢、性別、インタレストカテゴリに基づくレポートなんてことはAWStatsには出来ません。しかし、こうした機能を使った高度な解析って毎日やる必要があるのでしょうか?

Google Analyticsのサマリーページ(最初のページ)載っていることはAWStatsでも解析出来ます。しかもはるかに軽くて見やすいです。

これらのことからして、普段使いではAWStatsを、さらにディープな解析が必要な場合は、Google Analyticsを活用する併用型が一番良い感じがします。

Google Analyticsの独特なインターフェイスに慣れなければ、AWStatsをメイン、Google Analyticsはサブ解析ツールとして使えば、ストレスから解消されるでしょう。

※関連記事