|
|
webalizerでアクセス解析
|
Webアクセス解析とはWebalizer日本語版の導入Webalizerの基本設定httpdログの構造を理解するApacheでログを振り分ける検索文字列の日本語化統計データの見方について解析データの最適化と分析法解析スケジュールの設定デフォルト以外のアクセス解析 |
Webalizerで色々なログファイルを解析するここまでは、 ・設定ファイルとして "/etc/webalizer.conf" を利用する。 ・ドキュメントルート "/var/www/html/" を解析対象とする。 ・解析データの出力先を "/var/www/usage/" とする。 という デフォルト のアクセス解析について説明してきました。
Webalizer
の基本設定
従って、ログデータの振り分けで集めた 検索ロボット のログファイルの解析の他、 バーチャルホスト や個々のユーザーディレクトリで公開されている コンテンツ に対して別々にアクセス解析を行い、それぞれ異なるディレクトリに出力することができます。 このパートではいくつかのケースにおいて、デフォルト以外のアクセス解析パターンについて解説します。
"/etc/webalizer.conf"のパスを変更するここまでの設定では デフォルト の位置にある "/etc/webalizer.conf" を参照することを前提に説明してきましたが、複数のアクセス解析を行う場合にはこの デフォルトの設定自体があまりお薦めできる方法ではありません 。 Webalizer は実行時に "-c" オプションを使って、 webalizer -c [初期設定ファイル名] と指定すると、任意の パス にある任意の名前の初期設定ファイルを参照してアクセス解析を行います。 ところがもしもこの指定がない場合には、 1.実行時の カレント ディレクトリの "webalizer.conf" 。 2.デフォルトの位置として既定されている "/etc/webalizer.conf" 。 という優先順位で初期設定ファイルが検索され、実行されるようになっています。 ということは、もしもWebalizerの実行スクリプトの記述などを違えてしまい、うっかり実行 コマンド の本体である "/usr/bin/webalizer" をオプションなしで実行してしまうと、その実行時のカレントディレクトリによっては目的とは全然異なるアクセス解析結果が出力されてしまうことがあります。 そこで、 「Webalizerの初期設定ファイルは"webalizer.conf"というファイル名に統一し、アクセス解析の出力先のディレクトリに配置する。」 というルールを決めておくことをお薦めします。 そうすると間違いが起こりにくくなるだけではなく、Webalizerの実行 スクリプト の記述や書き換えも幾分簡単になります。 というわけでこのルールに倣い、現在参照している初期設定ファイル "/etc/webalizer.conf" を移動し、 "/var/www/usage/webalizer.conf" で実行できるように設定を変更してしまいましょう。 |
|||||||||||||||||||||
この
お便利サーバー.com
のアクセス解析結果を公開中ですのでご覧ください。
お便利サーバー.com
検索ロボット
|
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから su コマンド で アカウント を "root" に変更し、 cp コマンドで "/etc/webalizer.conf" をアクセス解析結果の出力ディレクトリである "/var/www/usage/" にコピーしてください。
次に稼動中のWebalizerの実行 スクリプト の一部を修正します。 |
|||||||||||||||||||||
もしも、「解析スケジュールの設定」
で、
"run-parts"
用に
"cron.daily"
以外のディレクトリを利用している場合は、ディレクトリ名を適宜読み替えて設定を行ってください。
|
もし「検索文字列の日本語化」を参考に実行スクリプト
"/etc/cron.daily/webalizer_def.bash"
を作成して利用中の場合は
↓
↓
赤字
のように修正します
修正が終わったら、
"/etc/cron.daily/webalizer_def.bash"
を保存し、nanoエディタを閉じてください
また、「検索文字列の日本語化」を行っておらず、 "/etc/cron.daily/00webalizer" をそのまま利用している場合は、 chmod コマンドを使ってこの実行スクリプトから実行属性をはずし、動作を無効化した後に、同じディレクトリに以下のような実行スクリプトを新規に作成してください。
↓"00webalizer_def.bash"を以下のように記述します
作成が終わったら、
"/etc/cron.daily/00webalizer_def.bash"
を保存し、nanoエディタを閉じてください
そして新しく作成したスクリプトには忘れずに実行属性を与えてください。
これらの修正と作成のポイントは、初期設定ファイル "webalizer.conf" の指定を 絶対パス から 相対パス に変更している点です。 これらのスクリプトの動作としては、 1.cdコマンドで解析結果の出力先(つまり使用する初期設定ファイルのパス)に移動する。 2.cdコマンドでの移動先をカレントディレクトリとして、 "webalizer.conf" を参照してWebalizerを実行。 という形を取ります。 つまり修正前はカレントディレクトリが何処であっても必ず "/etc/webalizer.conf" が初期設定ファイルとして参照されていたのですが、このように設定を変更することで、 「必ずカレントディレクトリの"webalizer.conf"が初期設定ファイルとして参照される」 ようになるわけです。 つまりこのように修正を行うことでスクリプトの内容が簡単になるばかりでなく、これらのスクリプトを雛型にして、
の部分を書き換えるだけで、任意のディレクトリの "webalizer.conf" を設定ファイルとして参照させ、同じディレクトリをWebalizerの出力ディレクトリとして利用できるようになります。 さて、ここでもう一つやっておくべきことは、これまで利用してきた "/etc/webalizer.conf" の無効化です。 これを忘れると、コマンド プロンプト から "webalizer" とだけ実行した場合に、この初期設定ファイルが参照されて動作してしまうからです。
方法は簡単で、
"/etc/webalizer.conf"
をnanoエディタで開き、
"LogFile"
ディレクティブ
↓上のように存在しないログファイルを指定すると...
修正が終わったら
"/etc/webalizer.conf"
を保存してnanoエディタを閉じてください
これでドキュメントルートに対するアクセス解析はそのままに、それ以外のアクセス解析の設定を簡単・安全に行う準備ができました。
|
|||||||||||||||||||||
検索ロボットのログの解析を行う
ここでは設定例として、「Apacheでログを振り分ける」
|
||||||||||||||||||||||
この
お便利サーバー.com
のアクセス解析結果を公開中ですのでご覧ください。
お便利サーバー.com
検索ロボット
|
また Apache で バーチャルホスト を運用している場合でも、設定の考え方は同じですから同様の方法で Webalizer による個別解析が可能ですので試してみてください。 出力先ディレクトリの作成とApacheの設定Webelizerにより出力される HTML のデータは、 HTTP で参照される必要がありますから、後で設定しやすいように "/var/www/usage/" と同じ並びに作成しておくと良いでしょう。
次に、このディレクトリをHTTPでアクセスできるように、
nanoエディタ
で
"/etc/httpd/conf.d/webalizer.conf"
|
|||||||||||||||||||||
| 誰に見られても構わない、というのであれば、 "Allow from all" を設定してもかまいません。 |
記述が終わったら
"/etc/httpd/conf.d/webalizer.conf"
を保存してnanoエディタを閉じ
|
|||||||||||||||||||||
|
|
これで通常のアクセス解析結果と同様に、 "/var/www/robot/" 以下に出力されたアクセス解析データは、 構築中のLinuxサーバー と同じ サブネット から、
http://www.obenri.com/robot/
や、
http://192.168.100.11/robot/
等での閲覧が可能になりました。 設定ファイル"webalizer.conf"の設置と設定次に、アクセス解析の設定ファイル "webalizer.conf" を解析結果の出力先ディレクトリ内に設置します。
例えば「Webalizerの基本設定」
のように "/var/www/robot/" にコピーして nanoエディタ で編集しても構いません。 しかし、既に使用中の初期設定ファイル "/var/www/usage/webalizer.conf" は既に細かい調整が済んでいるはずですので、これをコピーして使うようにします。
設定ファイルの雛型
"/var/www/robot/webalizer.conf"
が設置できたら、これを
nanoエディタ
でを開き
その他のディレクティブについてはこのセクションを参考にして任意に設定してかまいません。 だだし、この設定が 検索ロボット のログデータの解析ではなく、 Apache の バーチャルホスト に対する設定の場合にはもう一箇所設定を変更すべきディレクティブがありますので忘れないようにしてください。
記述が終わったら
"/var/www/robot/webalizer.conf"
を保存してnanoエディタを閉じてください
Webalizerの実行スクリプトの作成最後に、 Webalizer の実行 スクリプト を作成します。 このパートの前半で説明した通り、既に作成している "/etc/cron.daily/webalizer_def.bash" を cp コマンド で同じディレクトリに別名でコピーし、これを nanoエディタ で開いて、以下の部分だけ修正すればOKです。
↓
↓
赤字
のように修正します
検索文字列の日本語化を行っていない "/etc/cron.daily/00webalizer_def.bash" を利用する場合も同様に作業します。
↓
↓
赤字
のように修正します
修正が終わったら実行スクリプトを保存し、nanoエディタを閉じてください
これで設定は終了しました。 "/etc/cron.daily/webalizer_robot.bash" または、 "/etc/cron.daily/00webalizer_robot.bash" が実行されると、アクセス解析結果を閲覧することができるようになります。 後は動作確認を行って細かい設定を調整すればOKです。
|
|||||||||||||||||||||
ユーザーディレクトリのログの解析を行う
Apache
でユーザーディレクトリを家族や知人にホームページのための
コンテンツ
スペースを貸し出す場合
|
||||||||||||||||||||||
この
お便利サーバー.com
のアクセス解析結果を公開中ですのでご覧ください。
お便利サーバー.com
検索ロボット
|
ローカルユーザーの権限ではアクセスログの振り分けは通常できませんし、 CUI の設定ツールの扱いに慣れていないユーザーに "webalizer.conf" を編集する権限を与えてしまうと、 「設定の仕方がわからない。」 あるいは 「解析結果がおかしくなったからなんとかして欲しい。」 という具合に質問攻めに合うことは間違いありません。 そこでローカルユーザーにアクセス解析結果を提供するときは「あくまでサービスの一つ」と割り切って、単純に「アクセス解析の結果だけ」にしてしまいましょう。 出力先ディレクトリの作成とApacheの設定Webelizerにより出力される HTML のデータは、 HTTP で参照される必要がありますから、 "/home/*/public_html/usage/" を出力先としておくと良いでしょう。 例えば ユーザーアカウント "suzuki" の場合は、
のようにして作成します。 "/home/suzuki/public_html/" 以下のディレクトリは既に Apache で公開されていますから、 "/home/suzuki/public_html/usage" 以下に出力されたアクセス解析データは特別な設定をしなくても、
http://www.obenri.com/~suzuki/usage/
や、
http://192.168.100.11/~suzuki/usage/
等での閲覧が可能です。 ここで作成したディレクトリ "usage/" の所有者は root アカウント で、 パーミッション は "755" になっています。 これによりローカルユーザー suzuki には閲覧権限しか与えられていないことになり、そのディレクトリ以下に配置する設定ファイルなどを改変することはできないというわけです。 設定ファイル"webalizer.conf"の設置と設定次に、アクセス解析の設定ファイル "webalizer.conf" を解析結果の出力先ディレクトリ内に設置します。
例えば「Webalizerの基本設定」
のように "/home/suzuki/public_html/usage/" にコピーして nanoエディタ で編集しても構いません。 しかし現在使用中の初期設定ファイル "/var/www/usage/webalizer.conf" は既に細かい調整が済んでいるはずですので、これをコピーして使うようにします。
設定ファイルの雛型
"/home/suzuki/public_html/usage/webalizer.conf"
が設置できたら、これを
nanoエディタ
でを開き
その他のディレクティブについてはこのセクションを参考にして任意に設定してかまいません。
記述が終わったら
"/home/suzuki/public_html/usage/webalizer.conf"
を保存してnanoエディタを閉じてください
Webalizerの実行スクリプトの作成 |
|||||||||||||||||||||
|
|
このパートの前半で説明した通り、既に作成している "/etc/cron.daily/webalizer_def.bash" を cp コマンド で同じディレクトリに別名でコピーし、これを nanoエディタ で開いて、以下の部分だけ修正すればOKです。
↓
↓
赤字
のように修正します
検索文字列の日本語化を行っていない "/etc/cron.daily/00webalizer_def.bash" を利用する場合も同様に作業します。
↓
↓
赤字
のように修正します
修正が終わったら実行スクリプトを保存し、nanoエディタを閉じてください
以上で基本的な設定は終わりです。 "/etc/cron.daily/webalizer_suzuki.bash" または、 "/etc/cron.daily/00webalizer_suzuki.bash" が実行されると、アクセス解析結果を閲覧することができるようになります。 アクセス解析結果に閲覧制限をかける方法現在の設定では、公開しているユーザーディレクトリのアクセス解析結果はすべての ノード から閲覧可能、つまりインターネットに接続しているすべての人が見ることが可能になっています。 アクセス解析の結果をどのくらい秘密にしておきたいかは コンテンツ を運用している人次第ですが、アクセス数があまりにも少ないような場合には他人にはあまり見られたくないものです。 そこで、「アクセス解析結果はコンテンツ作成者、または信頼できる人にしか見ることができない。」という設定を以下に行います。 もしも提供しているユーザーディレクトリの利用者が、家族などの同居人で、基本的に 構築中のLinuxサーバー と同じ サブネット からしか接続しない場合には、 Apache の "Order" ディレクティブ で プライベートIPアドレス のみにアクセスを制限してしまえばOKです。 設定の記述はApacheのメインの設定ファイル "/etc/httpd/conf/httpd.conf" に行っても構いませんが、「 Webalizer に関する設定」ということを判りやすくするために、 "/etc/httpd/conf.d/webalizer.conf" に記述するほうが良いでしょう。
もしもユーザーディレクトリをいくつか運用している場合には、 "suzuki" の部分を "*" に置き換えれば、ユーザーが増えても記述を追加する必要はありません。
記述が終わったら忘れずにApacheの再起動または設定の反映作業を行ってください
これで公開しているユーザーディレクトリのアクセス解析結果は、 LAN 内の ホスト 以外からは閲覧できないようになりました。
ただしこの方法では、ユーザーディレクトリの提供先が、基本的に自宅外からしか接続しない友人や知人などの場合は、その接続元が固定
IPアドレス
で通信契約を行っていない限り
また、このようなアクセス制御では、コンテンツ作成者に固定のプライベートIPアドレスを割り当てない限り、「LAN内ではお互いのアクセス解析結果がすべて丸見え」という欠点が残ってしまいます。
このように、ノードでのアクセス制御が難しいケースでは、Apacheのユーザー認証機能
こういう機密性のあまり高くないケースでは、ベーシック認証を利用しましょう。以下にその方法について説明します。 |
|||||||||||||||||||||
Apacheのユーザーディレクトリに対する設定で、
"AllowOverride"
ディレクティブに
"AuthConfig"
あるいは
"All"
を指定して
、
アクセス制御ファイル
".htaccess"
が利用可能な場合でも、それが設置されていないディレクトリに対しては、右のようなApache本体の設定ファイルの設定が有効になります。
もちろん、ユーザーが自分で "/home.../usage/" 以下に ".htaccess" を設置してしまえばこの設定は無効になってしまうわけですが、 "suzuki" はこのディレクトリに対する書き込み権限がありませんから、事実上右の設定に縛られることになります。 |
まず、 nanoエディタ で "/etc/httpd/conf.d/webalizer.conf" を開き、以下のように追加記述を行います。
記述が終わったら忘れずにApacheの再起動または設定の反映作業を行ってください
もしもユーザーディレクトリをいくつか運用している場合には、 "suzuki" の部分を "*" に置き換えれば、ユーザーが増えても記述を追加する必要はありません。 ただしその場合にはユーザー全員が認証の対象となってしまいますから、ユーザー毎に認証の有無を設定したい場合には個別に設定を記述しなければなりません。 以上の条件で運用上問題がなければ、少し先の「パスワードファイルの作成」に進んでください。それで設定は終わりです。 もしもユーザー毎に認証の有無を設定したい場合には、アクセス制御ファイル ".htaccess" を利用するほうが便利かもしれません。 |
|||||||||||||||||||||
既にユーザーディレクトリの公開設定で、
"/home/*/public_html"
に対して、
"AllowOverride"
ディレクティブに
"AuthConfig"
あるいは
"All"
が設定されている場合
は、右の設定は必要ありません。
|
この場合、上の追加記述部分を以下のようにします。
記述が終わったら忘れずにApacheの再起動または設定の反映作業を行ってください
次に、認証設定を行いたいユーザーの対象ディレクトリ以下に、 nanoエディタ を使って ".htaccess" ファイルを作成します。
↓
".htaccess"を以下のように記述します
作成が終わったら、
"/home/suzuki/public_html/usage/.htaccess"
を保存し、nanoエディタを閉じてください
ここで作成した ".htaccess" ファイルは、任意のユーザーディレクトリの "usage/" 以下に存在するだけで認証機能が有効になりますから、認証が必要な該当のディレクトリ以下に、以下のようにして cp コマンド でコピーしてください。
|
|||||||||||||||||||||
ここでは認証のためのパスワードファイルを格納するディレクトリとして
で作成した
"/var/www/password/"
を利用しています。
作成していない方は
を参考に先にディレクトリを作成してください。
|
次にパスワードファイル
"/var/www/password/webalizer"
を作成します
プロンプト から引き続き以下のように作業してください。 ユーザーディレクトリを複数運用している場合は、 "-c" オプションなしで "htpasswd" を実行し、 "/var/www/password/webalizer" にユーザーを追加してください。
以上で作業は終了です。 |
|||||||||||||||||||||
この
お便利サーバー.com
のアクセス解析結果を公開中ですのでご覧ください。
お便利サーバー.com
検索ロボット
|
認証が設定されているユーザーは接続元に係わらず、常にユーザー名とパスワードを入力しなければアクセス解析結果を閲覧することができなくなっているはずです。 認証設定を解除するには、該当するディレクトリから ".htaccess" を削除するだけで即解除になります。 逆に、新たに認証設定を行いたいユーザーの該当ディレクトリに ".htaccess" をコピーすれば、すぐに認証機能が有効になります。 これらの行為は設定ファイルの書き換えによる設定変更ではないので、Apacheを再起動したり、設定の有効化作業を行ったりする必要はないということです。 さて、設定が終わったら、設定したユーザー名とパスワードをコンテンツ作成者に教えてあげましょう。 コンテンツ作成者自身が Webalizer の細かい調整を行うことができませんが、それでもサービスとしては悪くはないと思います。 いかがでしょうか。
|
|
|
解析スケジュールの設定
<<Previous
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |