2000-11-05 改定

Analog(ログアナライザ)構築


ApacheなどのWWWサーバが出力した「共通ログ形式(CLFCommon Log Format)」のログファイルを解析するツールの1つとして、Analogというツールが存在します。

1.Analogの入手・コンパイル

Analogの最新版は、http://www.statslab.cam.ac.uk/~sret1/analog/ から入手可能です。2000-10-24 現在の最新版は「analog-4.13.tar.gz」 のようです。入手した最新版(例では、analog-4.13.tar.gzとします) を解凍します。
  $ cd ~
  $ tar zxvf analog-4.13.tar.gz

すると analog-4.13 というディレクトリができるので
  $ cd ~/analog-4.13
としてディレクトリを移動後、anlghea2.hの次の部分を修正します。
修正前 修正後
#define LANGUAGE (ENGLISH) #define LANGUAGE (JAPANESE)
上記の部分の修正後、コンパイルを開始します。、
  $ make DEFS='-DANALOGDIR=\"/usr/local/etc/analog/\"' (最後の「/」を忘れないこと)
  $ su
   rootのパスワード
  # mkdir /usr/local/etc/analog
  # mkdir /usr/local/etc/analog/lang
  # mkdir HTTP_DOC_DIR/images
  # cp analog /usr/local/etc/analog
  # cp analog.cfg /usr/local/etc/analog
  # cp lang/* /usr/local/etc/analog/lang
  # cp images/* HTTP_DOC_DIR/images
HTTP_DOC_DIR は、HTTPのドキュメントが収まっているディレクトリを指定します。WWWサーバがApacheの場合、通常は
パッケージ ディレクトリ
ソースファイルからコンパイルした場合 /usr/local/apache/htdocs
FreeBSD4.x Port /usr/local/www/data
RedHat 6.xJ (RPM) /home/httpd/html
にHTTPドキュメントが格納されます。

2.Analogの設定(analog.cfg)

インストールが終了したなら、今度は設定ファイルを環境に合わせて設定します。
環境ファイルは「 /usr/local/etc/analog 」に存在します。
エディタで上記ファイルを開き、次の項目を修正します。
修正項目 意味
LOGFILE LOGFILE_NAME ログファイル名
OUTFILE HTTP_DOC_DIR/analog.html 解析結果の出力ファイル名
HOSTNAME "[www.domain.jp]" WWWサーバの正式名
ログファイル(LOGFILE_NAME)は、パッケージによって保存されるディレクトリ/ファイル名が違います。
WWWサーバがApacheの場合、通常、ログファイル名は
パッケージ ディレクトリ
ソースファイルからコンパイルした場合 /usr/local/apache/logs/access_log
FreeBSD4.x (Ports) /var/log/httpd-access.log
RedHat 6.xJ (RPM) /var/log/httpd/access_log
になります。

3.Analogの実行

設定が完了したら、早速Analogを使ってログ情報をhtml形式にしてみましょう。
実行は、
  # /usr/local/etc/analog/analog
とすることで、設定ファイルに記された出力ファイルとして出力されます。
結果を見るには、Webブラウザーで、
 http://www.domain.jp/analog.html
を実行すれば結果が見られます。
なお、定時になったら自動的にanalogを実行して結果を求めるなら、例えば緋に1回analogを実行するなら、
(FreeBSDの場合)
OS 自動実行設定ファイル
FreeBSD /usr/local/etc/rc.d/analog.sh
RedHat 6.xJ /etc/cron.hourly/analog.sh ----毎時、1回実行する場合
/etc/cron.daily/analog.sh ----毎日、1回実行する場合
TruboLinux6.x /etc/cron.hourly/analog.sh ----毎時、1回実行する場合
/etc/cron.daily/analog.sh ----毎日、1回実行する場合
にファイル「analog.sh」を作成して、このファイルに次のように記述しておきましょう。

(analog.shの内容)
#!/bin/sh
/usr/lcoal/etc/analog/analog


(FreeBSDの場合)
/etc/crontabファイルを開き、次の1行を追加します。
4 * * * * root /usr/local/etc/analog/analog
これで毎時の4分になるとanalogを実行します。
(RedHat6.xJ(TurboLinux6.x)の場合)
Linuxでは/etc/cron.dailyディレクトリの下に、「analog.sh」というファイルを作り、この中を次のように記述します。
#!/bin/sh
/usr/lcoal/etc/analog/analog

作成した、analog.shに実行属性を与えます。
  # chmod +x /etc/cron.daily/analog.sh
これで、毎特定時になるとanalogが実行されます。

A.付録

A−1.関連リンク

Analog HomePage : http://www.statslab.cam.ac.uk/~sret1/analog/