さくらVPS アクセス解析AWStatsを導入・インストール・設定

スポンサーリンク


■awstats インストール

Tera Term などを使って、コマンド入力します。

ルート権限にします
[text]
su –
[/text]
続いて、AWStatsを yum にてインストール
最新版は表示日本語に自動で対応していますので、日本語版をわざわざ入れる必要は無い?ようです。
[text]
yum install awstats
[/text]
入れるかどうかの (Y/N) では
[text]
y
[/text]
を入力すると、インストールが開始されて、数十秒でインストールが終了します。
その後、まずは関係ない不要なファイルを削除。
[text]
rm -f /etc/awstats/awstats.localhost.localdomain.conf
rm -f /etc/awstats/awstats.初期ドメイン名.conf
[/text]
なお、さくらVPSの場合 AWStats の設定ファイルは/etc/awstats/配下に作られます。
スクリプトの本体は/usr/lib/cgi-bin/awstats.plです。
また、グラフに必要な画像は/usr/share/awstats/icon/以下にあります。

■perl-Geo-IPfree インストール

アクセスした国のリスト取得に必要なperlです。後々、必要とする可能性もあり、また、エラー防止の為にも、この機会に入れておくことをお勧め致します。(私は、あとでこのperlが無いと言うエラーが出て、苦労したので・・。)
[text]
yum install perl-Geo-IP
[/text]
■設定ファイルのコピー&作成と編集

複数ドメイン(マルチドメイン)対応で解析させたいと思いますので、model.conf の設定をコピーして、ドメイン用の conf を作成します。下記のコマンドでコピーと新規作成を同時に行います。(ファイルの場所はさくらVPSの場合です。)
[text]
cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.ドメイン.conf
[/text]
上記ドメインの部分には、自分のドメイン (このサイトなら vpsset.net)と入れます。下記が記述例です。
(例) cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.vpsset.net.conf

複数サイト解析(分けてアクセス解析)するのであれば、そのドメイン分、上記の設定コピーを行っておきましょう。

各ドメイン用の設定コピーが終わったら、その設定ファイルを使えるように編集します。
上記で作った各ドメインのそれぞれのファイルを設定しましょう。
下記 vi コマンドでファイルを編集状態にします。
[text]
vi /etc/awstats/awstats.ドメイン.conf
[/text]
※最低限、覚えておきたいコマンド編集時の操作はこちら
[text]
LogFile="/var/log/httpd/access_log"  ※下記(注1)
SiteDomain="ドメイン"  ※ドメイン名をつけます。
DNSLookup=1   ※IPアドレスではなくホスト名でアクセスを表示させるには 1 にする
[/text]
——————————————————–
※注1 : 私の場合は、ドメイン_access_log として、ログをドメイン別に取っているのでそのように設定。
ドメイン別にログを取る場合は、
[text]
vi /etc/httpd/conf.d/vhost.conf
[/text]
又は、vi /etc/httpd/conf/httpd.conf
と言った、ドメイン運用を設定している箇所に、下記のような記述例でログを残す場所を指定しています。
[text]
ErrorLog "/var/log/httpd/vpsset_error_log"
CustomLog "/var/log/httpd/vpsset_access_log" combined
[/text]
※vpssetの部分は任意です。各ドメインと分かるように変更すると良いです。
→ 詳しくは、マルチドメイン設定をご覧ください。

私の場合は下記のファイルにドメイン運用設定をしているので、下記をawstatsに対応させる追加設定をします。
[text]
vi /etc/httpd/conf/httpd.conf
[/text]
下記の4行の部分を、awstats本体が入っている、さくらVPSのフォルダに対応するよう変更。
皆様の状態に合わせて下さい。yum でインストールしていたら、下記のパスになるかと存じます。
先頭に # (コメント)がついていたら、# を削除しておきましょう。
※ただし、私の場合は、# コメント外したらエラーになったので、コメントつけたままで無効としている。
Alias /awstatsclasses “/etc/awstats/wwwroot/classes/”
Alias /awstatscss “/etc/awstats/wwwroot/css/”
Alias /awstatsicons “/etc/awstats/wwwroot/icon/”
ScriptAlias /awstats/ “/etc/awstats/wwwroot/cgi-bin/”

[text]
Alias /awstatsclasses "/usr/share/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/share/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/share/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/"
[/text]

もう1箇所、変更して、その下に 4行を追加

<Directory “/etc/awstats/wwwroot”> の部分を
[text]
&lt;Directory "/usr/share/awstats/wwwroot"&gt;

Options None
AllowOverride None
Order allow,deny
Allow from all
[/text]

設定を保存したら、設定確認の為テストを実行
[text]
service httpd configtest
[/text]
OK と出たら、Apache設定を再起動
[text]
service httpd restart
[/text]
※テストでエラーが出たら、そのエラーメッセージを良く読んでエラーをなおしましょう。

■ AWStats.pl を実行開始させる
[text]
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -update -config=ドメイン
[/text]
※各ドメイン分

■ 1時間毎に解析取得するように crontab を設定

通常は、解析画面を開いた際に、データを取得して表示します。
その為、久しぶりに解析画面を開くと、貯まりにたまったデータを一気に拾うので、サーバーにエライ負荷が掛かり、最悪、自動制限が掛かったりしかねません。
その為、ちょくちょく取得・解析させるように、ここでは1時間毎に解析させるようcronに設定しておきます。
[text]
crontab -e
[/text]
を編集状態にして、下記を追記。
[text]
00 * * * * /usr/bin/perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=ドメイン &gt;/dev/null
[/text]
各ドメイン分追記してしまって良いでしょう。
ついでに、エディタをemacsに変更するよう追記しておきます。
[text]
export EDITOR=emacs
[/text]
■プラウザで解析結果を表示される設定

次に、ブラウザで表示させる設定を開始します。
[text]
vi /etc/httpd/conf.d/awstats.conf
[/text]
■試しに解析画面を見てみる

ブラウザから[http://サーバーIPアドレス/awstats/awstats.pl?config=ドメイン名=]でアクセスするとawstatsの解析結果が表示されます。下記が記述例(デタラメ)ですので、皆様の設定状態に合わせて、ブラウザのURL欄に入れてみて下さい。
[html]
http://111.111.111.111/awstats/awstats.pl?config=vpsset.net
[/html]
無事に表示されましたでしょうか?

なお、私の場合、この時点では、解析結果が表示されなかったのですが、ドメインネームの浸透と同じように、浸透されるまで、多少時間を要するようでして、数時間後には表示されましたので、今、表示されなくても、色々設定をいじらないように注意願います。
うまく行かない場合、次の日にチャレンジするなど、しばらく様子を見ると、無駄な時間を費やすことも少なくなるかと存じます。

また、既にお気づきの方もおられるかと存じますが、上記のままでは、他人にURLを推測されて、解析画面を見れてしまいます。
その為、パスワード認証設定をしておくと良いです。

■解析画面への認証設定

認証方式は、BASIC認証が主流かと存じますが、私の場合、BASICはうまく設定が有効とならなかった為、自信がありません。
その為、ダイレクト認証で、IDとパスワードが必要な状態にする方法をご紹介させて頂きます。
[text]
su –
[/text]
で、root権限に入って、下記を入力。
下記例はユーザー名は user01 です。各自、適切に変更してご設定願います。
[text]
htpasswd -c /etc/awstats/.htpasswd user01
[/text]
New password: と聞かれるのが、今回設定するダイレクト認証用のパスワード設定で、2回連続で聞かれますので、パスワードを登録して、忘れないうちに今設定したIDとパスワードを控えておいてください。
解析画面を複数人が入れるようにするのであれば、上記の -c を取って、ユーザーを追加可能です。

続いて、表示ファイルである awstats.conf を編集して ダイレクト認証の設定を行います。
[text]
vi /etc/httpd/conf.d/awstats.conf
[/text]
編集する箇所は下記の部分です。
[text]
&lt;Directory "/usr/share/awstats/wwwroot"&gt;  (※ルート設定を合うように変えておきましょう)
Options None
AllowOverride None  (編集 Noneに)
# Order allow,deny   (先頭に # を追加して無効に)

#Digest認証設定     (下記の4行追記)
AuthType Digest
AuthName "Inside Zone"
AuthUserFile /etc/httpd/.htdigest
Require valid-user
[/text]
設定を保存したら、下記にもユーザー名を同様に登録します。
[text]
htdigest -c /etc/httpd/.htdigest ‘Inside Zone’ user01
[/text]
※ユーザーを追加登録する場合は -c を省いて入力

設定確認の為テストを実行
[text]
service httpd configtest
[/text]
OK と出たら、Apache設定を再起動
[text]
service httpd restart
[/text]
これで、先ほどのURL
[html]
http://サーバーIPアドレス/awstats/awstats.pl?config=ドメイン名=
[/html]
にブラウザでアクセスすると、認証画面が出るはずです。

■一連の動作確認でpermissionエラー、アクセス権限エラーが発生するトラブル時の対応ヒント

パーミッションエラーや、アクセス権限エラーが発生して、解析画面が表示されない場合など、私の経験上は「ルート権限」の設定で解消します。
[text]
chown -R apache:apache /etc/awstats/
[/text]
でApache権限に変更したりすると、うまく行く場合がありますが、これはSSH設定など、皆様の個別設定環境によりトラブルが発生する/しない と言う事だと思いますので、一概に「これで解決」と言う事は言えません。
その為「ルート権限」をApacheにすると言う、ヒントとして記載しておきます。

■ AWstatsバージョン確認方法
[text]
rpm -qa awstats
[/text]

※当方が設定した内容を公開しているまでで、動作を保証するものではありません。一切責任は負いかねますので、自己責任でご参照願います。

スポンサーリンク

関連記事


にほんブログ村 スマホ・携帯ブログ スマートフォンへ
ページ上部へ戻る