このセクションではWebサーバーApache/httpdアクセスログの構造と、それを解析するWebalizerについて初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
webalizerでアクセス解析

Webアクセス解析とは

Webalizer日本語版の導入

Webalizerの基本設定

httpdログの構造を理解する

Apacheでログを振り分ける

検索文字列の日本語化

統計データの見方について

解析データの最適化と分析法

解析スケジュールの設定

デフォルト以外のアクセス解析


ホームページのアクセスアップのために必要なこと

自分でweb コンテンツ の運用をしていると、まず気になるのは「どのくらいの人が見てくれているのだろう。」ということでしょう。

まだ世の中にホームページの数が少なかったインターネットの創生期には、「有名な索引サイトに自分のサイトを登録する」という手段を取りさえすればどんなページでもそれなりにアクセスは期待できました。

しかし日本語のコンテンツだけで数千万サイトは存在するといわれる昨今では、「サイト登録=アクセスアップ」という図式は成り立たなくなっています。

つまり、もしもアクセスアップのために何ら手を打たなければ、あなたが開設したコンテンツは超満員のスタジアムで他の人と一緒に手を挙げているだけに等しく、その存在すら気付いてはもらえないのが現状です。

ましてやそれを見る人にとってはほとんど何の価値もない「マニアックな趣味のページ」では、開設して何ヶ月経っても「一日数人」しか訪れてくれないという例も珍しくないようです。

さて、最近の「ホームページ探し」は、 検索ロボット と呼ばれる索引の自動登録システムを持った検索エンジンサイトに対し、「検索キーワード」を使って目的のコンテンツを抽出するという利用方法が一般的になっています。

登録型索引サイトにいって、カテゴリに登録されたページを一つ一つ開いて回るのは、もう時代遅れというわけです。

従って、自分のコンテンツへのアクセス数を増やすには、現在どれくらいのアクセスがあるのかを調べ、そのデータを元にページの作り方や運用方法を工夫し、検索ロボットに探知されて登録されやすいものにしなければならなくなっています。

そのための作戦のより所となる最大の情報のひとつが アクセス解析結果 というわけです。

サイトのアクセス解析は、コンテンツの中に専用の アプリケーション を配置して行うこともできますし、アクセス解析代行業者にお願いすることもできます。

しかし WBEL CentOS では、多くの UNIX OS に半ば標準的に組み込まれている Webalizer というアプリケーションが簡単に利用できるようになっています。

Webalizerは商用のアクセス解析ソフトに比べると得られる情報は決して多くはありませんが、個人で運用するコンテンツのアクセス解析程度ならば充分だと思います。

Webalizarのアクセス統計結果画面の例
"Webalizar"のアクセス統計結果画面の例

Webalizerは Apache Postfix などの多くの サーバー アプリケーションのように、 「常に デーモン として状態を監視する。」 というタイプの動作をするアプリケーションではありません。

この お便利サーバー.com のアクセス解析結果を公開中ですのでご覧ください。
メインコンテンツのアクセス解析結果 お便利サーバー.com
お便利サーバー.comへの検索ロボットのアクセス状況 検索ロボット

Webalizerは、 「蓄えられた httpd のログに対して任意のタイミングでアクセス解析を実行する。」 という単独実行型のアプリケーションです。

また、アクセス解析はあくまで「過去のデータの参照」という作業ですから、通常は「一日一回解析を実行」でも充分ですので、 デフォルト のWebalizerはそのような設定になっています。

しかし、 ホスト機 の能力に余裕があれば10分おきにアクセス解析を実行して「ほぼリアルタイム」な情報を得ることもできます。

また、Webalizerの解析対象はあくまでhttpdのログファイルですから、Apacheの バーチャルホスト 機能を使って複数のコンテンツを運用しているような場合、それぞれのログファイルが別になっていれば、それぞれのコンテンツの解析結果を別に作成することもできます。

Webalizerはこのように非常に柔軟性の高い利用が可能ですので、是非一度利用してみることをお勧めします。

このセクションでは 構築中のLinuxサーバー でWebalizerを利用する方法と、 のhttpdのアクセス ログ の処理方法などを中心に解説していきます。

このページの先頭へ↑

いきなりWebalizerを使ってみる

この コンテンツ の従って WBEL CentOS インストール が行われていれば、実は Webalizer は稼動状態になっています。

Webalizerは Apache Postfix などの サーバー アプリケーション とは異なり、 デーモン として動作するアプリケーションではありません。

Webalizerは、Apacheによって蓄えられた ログ ファイル Apacheのログファイルについて を解析して、その結果を Webブラウザ で視覚的に解りやすく表示するアプリケーションです。

従ってWebalizerは「常にアクセスを監視してリアルタイムにデータを更新する」のではなく、「解析処理が必要なときにだけ コマンド を実行する」という動作をするアプリケーションというわけです。

もちろんコマンドは シェル プロンプト から手作業で実行しても構いませんが、 crond を利用して一日一回、という具合に自動的に実行するように設定しておくのが普通の使い方です。

正確いうと、ディレクトリ "/etc/cron.daily" 以下に "00webalizer" という実行スクリプトが準備されているわけです。

このパートの冒頭で「Webalizerは既に稼動状態」と説明したのは、Webalizerが常に動作状態でApacheを監視しているという意味ではなく、 デフォルト でcrondに自動実行の登録がされていて、Apacheのデフォルトのログファイル Apacheのログファイルについて が有効に存在すれば、毎日午前4時頃にアクセス解析を行うようになっているという意味になります。 crondについて

最初からドキュメントルートに対して バーチャルホスト の設定をおこなっている場合は、ログファイルはそのバーチャルホストの設定で指定したファイルになりますから httpdのバーチャルホストのログファイルの設定 、デフォルトのログファイルは空っぽかもしれません。

というわけですから、もしもApacheのドキュメントルート "/var/www/html" をコンテンツスペースとしてホームページを公開している場合は httpdのドキュメントルートについて 、既にWebalizerは毎日せっせとレポートを更新していることになります。

ただし、Webalizerによるレポートはデフォルトでは外部の ホスト からは見ることができないようになっていますので、まずはその制限を解除する必要があります。

"/etc/httpd/conf.d/webalizer.conf"の設定

Webalizer Apache のアクセス解析を行う アプリケーション ですが、Webalizerによって作成されたレポートは同じくApacheで公開され、 Webブラウザ で閲覧することになります。

Webalizerのレポートは デフォルト ではディレクトリ "/var/www/usage" 以下に作成されます。

このディレクトリの位置はApacheのドキュメントルート "/var/www/html" httpdのドキュメントルートについて の範囲外になっていますから、通常 HTTP によるアクセスはできません。

実はこの "/var/www/usage" に対するアクセスに関しては、Apacheのモジュール設定ファイルの格納ディレクトリ Apacheのモジュール設定ファイル格納ディレクトリについて にある "/etc/httpd/conf.d/webalizer.conf" の中で設定が行われていますので、これを開いて内容を確認してみましょう。

まず、 サブネット 内の適当な クライアント機 から SSHクライアント 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5)

それから su コマンド アカウント "root" に変更し、 nanoエディタ "/etc/httpd/conf.d/webalizer.conf" を開きます。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# nano /etc/httpd/conf.d/webalizer.confEnter
デフォルトの/etc/httpd/conf.d/webalizer.conf(WBEL3,CentOS3)
デフォルトの"/etc/httpd/conf.d/webalizer.conf(WBEL3,CentOS3)"

Allow from ::1 は、IPv6における ループバックアドレス を表します IPv6について
デフォルトの/etc/httpd/conf.d/webalizer.conf(WBEL4,CentOS4)
デフォルトの"/etc/httpd/conf.d/webalizer.conf(WBEL4,CentOS4)"

デフォルトの/etc/httpd/conf.d/webalizer.conf(CentOS5)
デフォルトの"/etc/httpd/conf.d/webalizer.conf(CentOS5)"

ご覧のとおり "/var/www/usage" は、 "Alias" ディレクティブ で、

「ディレクトリ "/var/www/usage" は、 "/usage" という別名で URL 中の最上位のディレクトリとして存在するものとみなす。」

という設定になっていて、ドキュメントルート外にも係わらずHTTPでのアクセスが可能になっているというわけです。

"localhost" ループバックアドレス "127.0.0.1" は、意味としては同じになります。
というか、このあたりの一貫性のなさはどうにかならないものでしょうかねぇ。

ところが "Location" コンテナ httpdのLocationコンテナについて では、 WBEL3 及び CentOS3 "localhost" 、CentOS5は "127.0.0.1" 、つまり サーバー機 以外からの閲覧はできず、WBEL4及びCentOS4は全くのアクセスすることができないように設定されています。

そこで "Allow" ディレクティブ httpdのアクセス制御ディレクティブについて を、例えば以下のように修正します。

Alias /usage /var/www/usage

<Location /usage>
  Order deny,allow
  Deny from all
  Allow from all
  # Allow from .example.com
</Location>

このように設定を修正して設定ファイルを保存し nanoエディタでファイルを閉じる httpd の再起動または設定の再読み込み httpdの設定の反映方法 を行うと、

http://www.obenri.com/usage/

というURLで、 構築中のLinuxサーバー にHTTPでアクセス可能なすべてのホストのWebブラウザからアクセス解析結果を閲覧することができます。

もちろん自宅の LAN 内の ホスト機 からであれば、

http://192.168.100.11/usage/

でもOKです。

もしも自宅以外からアクセス解析結果を見られたくない場合は、

Alias /usage /var/www/usage

<Location /usage>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
  # Allow from .example.com
</Location>

のように設定して、自宅内の サブネット 以外からは閲覧できなくしてしまいましょう。

設定の修正を有効化したら、適当なホスト機のWebブラウザからアクセスしてみてください。

Webalizarのアクセス統計結果画面の表示例
"Webalizar"のアクセス統計結果画面の表示例
Webalizerのアクセス解析結果のページは EUC で表示されます。
理由はわかりませんが、パソコンの環境によってはWebブラウザがうまくEUCを選択できないことがあります。
Webブラウザに何も表示されないときはブラウザの表示設定メニューから文字のエンコードをEUCに選択しなおしてみてください。

のようなページが表示されるはずです。

ただし今の段階では、自宅のパソコンから自分自身が閲覧した場合でもアクセス数にカウントされているはずですし、その他にも「正しいアクセス解析結果」として判断材料にするには、ある程度設定を修正しなければならないところがあります。

という訳で、このセクションでは「Webalizerによる役に立つアクセス解析」を行うための方法を中心に解説します。

このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。