このページではWebサーバーApache/httpdWebalizerによるアクセス解析スケジュールの設定について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
webalizerでアクセス解析

Webアクセス解析とは

Webalizer日本語版の導入

Webalizerの基本設定

httpdログの構造を理解する

Apacheでログを振り分ける

検索文字列の日本語化

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

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

解析スケジュールの設定

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


Webaliserを自動実行するための方法とポイント

コンテンツ の人気が上がってくると、 ログ ファイルの容量もかなりの分量になってきますから、 Webalizer での解析にもそれなりの時間が必要になってきます。

ホスト機 の性能や解析のタイミングにもよりますが、長い場合は数分以上の時間を要することも珍しくありません。

Webalizer自身は決して動作負荷の大きな アプリケーション ではありませんが、ログデータ中の IPアドレス から FQDN を求めるために逆引きの 名前解決 を行わなければならないため DNSCacheディレクティブについて 、通信状態があまり良くない時間帯にWebalizerを実行すると、更に予想以上の解析時間を要することがあります。

一般的に、日中から深夜1時ごろが通信が込んでいる時間帯といえますから、特に支障がない限りは午前1時から午前6時頃までがアクセス解析に望ましい時間帯といえるでしょう。

また、Webalizerは デーモン ではありませんから、アクセス解析を行うにはその都度プログラムを実行する必要があります。

もちろん シェル プロンプト から コマンド で実行することもできますが、テストを除けば普通は一日に一回、多くても一時間に一回程度、 crond を利用して自動実行すれば充分でしょう。

Webalizerの検索文字列の日本語化のパートでも少し触れていますが Webalizer自動実行について 、Webalizerを一日に一回スケジュールどおりに実行するには、crondで予め準備されている「中のスクリプトファイルを毎日一回だけ実行する」自動実行ディレクトリ "/etc/cron.daily/" に実行 スクリプト のファイルを入れておくのが普通の方法です。

もしも一時間おきに実行したければその実行スクリプトファイルを「中のスクリプトファイルを一時間ごとに一回実行する」自動実行ディレクトリ "/etc/cron.hourly/" に移動しておけばOKです。

デフォルト では、 "/etc/cron.daily/" は毎日 午前4時2分 "/etc/cron.hourly/" 毎時1分 に目覚ましがセットされています。

もしもこれ以外の時間にそれぞれの中のスクリプトを実行させたければ、それぞれの実行時間がセットされている "/etc/crontab" 赤字 で示した部分の記述を修正する必要があります。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

ただ、これらのディレクトリはWebalizerの実行のために準備されているものではなく、他の様々な「定期実行プログラム」も登録されるべきところですから、これらの時刻を安易に変更するのは望ましくありません。

またcrondの説明の中でも触れているとおり、実行スクリプトを直接 "/etc/crontab" に書き込む方法 crontabへ直接記述してプログラムを自動実行するには もあります。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
10 * * * * root /usr/local/bin/webalizer_def.bash

ところがこのように "/etc/crontab" 直接実行スクリプトを記述する方法では、 デフォルト以外のアクセス解析 で説明するように、ドキュメントルート以外にも解析が必要になったときに記述が増え、管理が煩雑になってしまいます。

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

このパートでは、後から無用なトラブルを起こさないため、 "run-parts" スクリプト crontabでrun-partsを利用するには を利用した判りやすいWebalizerの実行スケジュールの登録方法について解説します。

このページの先頭へ↑

Webalizer専用の実行ディレクトリを作成する

Webalizer の実行スケジュールを、他の自動実行アプリケーションの実行スケジュールに影響を与えないように設定するには、Webalizer専用の実行ディレクトリを作成し、そのディレクトリにWebalizerの実行 スクリプト を入れるようにします。

そうすると、Webalizerの実行スケジュールだけを自由に変更できるばかりではなく、実行スケジュールが整理しやすくなるという利点もあります。

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

それから su コマンド アカウント "root" に変更し、 cp コマンドでバックアップを作成した後、 nanoエディタ "/etc/crontab" を開きます。

この例では、 WBEL CentOS が標準でインストールされた状態の "/etc/crontab" を示しています。お使いの環境や、既に自分でスケジュールを追加しているときは少し内容が異なるかもしれません。
[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cp -p /etc/crontab /etc/crontab.orgEnter
[root@web1 ~]# nano /etc/crontabEnter
デフォルトの/etc/crontab
デフォルトの"/etc/crontab"

ここに例えば

既存のものでなければディレクトリ名は何でも構いません。 "waz" Webalizer を勝手に略したものです。

「午前3時2分にWebalizerスクリプトを自動実行するための専用のディレクトリ "/etc/cron.waz_daily"

として以下のように追加記述します。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily

02 3 * * * root run-parts /etc/cron.waz_daily

22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

記述が終わったら、 "/etc/crontab" を保存し、nanoエディタを閉じてください nanoエディタでファイルを閉じる

次に、 mkdir コマンドでディレクトリ "/etc/cron.waz_daily/" を作成します。

[root@web1 ~]# mkdir /etc/cron.waz_dailyEnter
[root@web1 ~]#

ここまで作業が終わったら、 crond の再起動または設定の再読み込みを行って、 "/etc/crontab" への記述を有効化してください crontabの記述の有効化

後は、Webalizerの実行スクリプトをこの "/etc/cron.waz_daily/" に移動すれば作業は終わりです。

もしも、Webalizerの検索文字列の日本語化処理を行っている場合には、 "/etc/cron.daily/" 以下の "webalizer_def.bash" を、 mv コマンドを使って新たに作成した "/etc/cron.waz_daily/" に移動してください。

[root@web1 ~]# mv /etc/cron.daily/webalizer_def.bash /etc/cron.waz
_daily/
Enter
[root@web1 ~]#

もしも検索文字列の日本語化処理を行っていない場合はオリジナルの "00webalizer" が動作しているはずですので、この場合も同様にスクリプトを移動してください。

[root@web1 ~]# mv /etc/cron.daily/00webalizer /etc/cron.waz_daily/Enter
[root@web1 ~]#

これで、Webalizerの実行スケジュールだけを他の自動実行プログラムスケジュールとは別に設定できました。

実行時間については、 crontbへの記述方法について に詳細な説明がありますので参照のうえ適宜調整してみてください。

また、初めて自動実行を行うときは、一度「今から数分後」くらいに "/etc/cron.waz_daily/" の実行スケジュールを変更してみて(設定の有効化作業を忘れずに)、きちんと動作するかどうか確認してみることをおすすめします。

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