ServersMan@VPS(CentOS)にアクセスログ解析ソフトWebalizerをインストールする。

ServersMan@VPSCentOS)にアクセスログ解析ソフトWebalizerをインストールしてみました。

1.webalizerのインストール

yum -y install webalizer

2.webalizer設定ファイルの編集

vi /etc/webalizer.conf で以下を変更

ホスト名を指定

HostName chamu.org

Warning: Truncating oversized request fieldメッセージを表示しない

ReallyQuiet yes

自サイト内からのアクセスはアクセス元として表示しない

HideReferrer chamu.org/

3.webalizerのアクセス設定ファイル変更

vi /etc/httpd/conf.d/webalizer.conf で以下を変更

Alias /usage /var/www/usage

Order deny,allow
Deny from all
Allow from all
Allow from ::1
# Allow from .example.com

4.apacheの再起動

/etc/rc.d/init.d/httpd restart

5.webalizerの動作確認

必要なら webalizer 作成ディレクトリのパーミッションを変更しておいて

cd /var/www
chmod 777 usage

webalizer を実行後

/usr/bin/webalizer

ブラウザーから http://サーバのアドレス/usage/ にアクセスしてこんな画面が出ればOK!

Webmin から「予定済み Cron 作業」を確認するとlogrotateと同じタイミングでwebalizerが毎時に定期的に実行されるように設定されているのがわかります。

6.webalizer画面へのアクセス制限

(0). 以下は、apacheの設定で、.htaccessが使用化の設定になっていることが前提です。もし、使用不可の設定になっている場合には、httpd.confのAllowOverride ディレクティブを以下の状態に変更してください。

vi /etc/httpd/conf/httpd.conf コマンドで AllowOverride ディレクティブを以下に変更後、apacheを再起動。

AllowOverride All

apache再起動 → /etc/init.d/httpd restart

(1). コマンドラインからのwebalizer画面へのアクセス制限の仕方

それで、上記のままだと http://サーバのアドレス/usage/ にアクセスすると誰でもアクセス解析が参照出来てしまいますが、それが嫌な方は、

vi /var/www/usage/.htaccess コマンドで.htaccessを作成
AuthUserFile /var/www/usage/.htpasswd
AuthGroupFile /dev/null
AuthName "Secret"
AuthType Basic
require valid-user
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
vi /var/www/usage/.htpasswd コマンドで

こんな感じで → http://chamu.org/usage/ Webalizerページにアクセスする際のパスワードを設定して置きましょう

user:ggf6o8l

なお、パスワードはBase64で符号化したものを登録しておかなくては行けないので、符号化がわからない方は、webminから.htaccessと.htpasswdをこんな形で設定出来ます。

(2). Webminからのwebalizer画面へのアクセス制限の仕方

1.「サーバー」→「Apache Webサーバ」→「グローバル設定」→「ディレクトリ毎のオプションファイル」画面の「オプションファイル作成ボタン」のわきに「/var/www/usage」と入力し「オプションファイル作成ボタン」を押す。

2.「アクセス制御」を選択して表示されたアクセス制御画面に以下を設定。

  • 「認証領域の名前」。。。。Webalizer
  • 「認証のタイプ」。。。Basic
  • 「ログインによるアクセス制限」。。。有効なユーザー全て
  • 「テキストファイル」のわきに「/var/www/usage/.htpasswd」と入力して説明の都合上、一度、保存ボタンを押してください。

それで、「アクセス制御」をもう一度選択して「ユーザのテキストファイル」の右脇にある「ユーザの編集」を押して「新しいユーザの追加」をクリックすると、下のような画面が出て来るので、webalizer画面にアクセスする際のユーザー名とパスワードを入力して保存ボタンを押す。

(パスワードは「プレーンテキスト」の部分に入力。また、パスワードは以後、暗号化されたものしか参照出来ないのでメモしておく。忘れたら。プレーンてテキストの部分に新しいパスワードを入れれば良いだけですが。。。)

以上の操作をすると、webalizer画面にアクセスするとパスワードを要求するようになるのですが、.htpasswdも.htaccessも見せたくない時は、

(といってもパスワードがわからないとアクセス出来ないのですが。。。)

先ほどの画面を保存して戻ると、画面下に、アクセス制御画面「ファイル毎のオプションを作成」という欄があるので、そこで「正規表現で一致」を選んで下に「^.(htpasswd|htaccess)$」と入力して

「作成」ボタンを押して出て来た画面の「アクセス制御」を選んで、以下の感じで「アクセス制限」に全ての要求を拒否と設定すると、

コマンドラインから入力した時と全く同じ.htpasswdと.htaccessが作成されて、.htpasswdも.htaccessブラウザー上からはアクセスする事が出来なくなります。