Linux で自宅サーバ [ Home Server Techncial ]

>>トップページに戻る

 Apache ログ解析 Analog の導入

Analog とは WEB サーバのログを解析し、HTML 形式で書き出してくれるソフトウェアです。
書き出しの際には、表やグラフにしてくれるので、視覚的に情報を得る事が可能です。

Analog は HTML フォームを利用し、リアルタイムにログを解析する機能があります。
しかし、このページで解説しておりません。
このページで解説しているのは、「ログの解析結果を静的な HTML ファイルとして書き出す方法」ですのでご了承下さい。

参考URL:Analog 5.24: ドキュメントの目次
    Analog 5.24 に関するドキュメントですが、基本的な事は 5.32 と変わりません。

ページ内コンテンツ一覧

▲ページの最上部に戻る

 Analog の入手とインストール

Vine Linux にはデフォルトで Analog はインストールされないので、新規にインストールしてやる必要があります。
以下のサイトに行き、RPM 版をダウンロードします。

Analog 本家サイトのダウンロードページ:http://sunsite.sut.ac.jp/pub/archives/WWW/analog/download.html

任意のディレクトリにダウンロードが出来たら以下のコマンドでインストールします。

# rpm -ivh analog-5.32-1.i386.rpm

以上でインストールは完了です。

▲ページの最上部に戻る

 解析結果を HTML で出力する

Analog は、Apache のログを解析し、最終的な結果を HTML にして出力してくれます。
これは、リアルタイムの処理ではなく、Cron を利用し、ある特定の間隔で解析を行う形になっています。

/etc/analog.cfg をエディタで開き、以下の箇所を自分の環境に合う様に適宜変更します。

#Apache のログファイルを指定 LOGFILE /var/log/httpd/access_log # 解析結果の出力先 OUTFILE /home/httpd/html/Report.html # 解析結果を日本語EUC表示 LANGUAGE JAPANESE-EUC # DNS検索を行う DNS WRITE # DNS検索キャッシュファイル DNSFILE /var/analog-5.32/dnsfile.txt # DNS検索キャッシュの有効期限(時間) DNSGOODHOURS 168 HOSTNAME "WWW Server (www.miloweb.net" # 除外リスト HOSTEXCLUDE localhost HOSTEXCLUDE hostname HOSTEXCLUDE 192.168.0.* # 使用したいスタイルシートがある場合 STYLESHEET ./default.css # HTML のヘッダーを使用したい場合 # 任意でヘッダーを記述したファイルを作成します HEADERFILE /home/httpd/analog-header # HTML のフッターを使用した場合 # ヘッダーと同様 FOOTERFILE /home/httpd/analog-footer # HTML の見出し HOSTNAME "WWW Server (www.miloweb.net)" # 上記見出し文字に URL のリンクを貼る場合 HOSTURL http://www.miloweb.net/ # リンク元レポートで自分の URL を除外します REFREPEXCLUDE http://www.miloweb.net/* # 各レポートの表示/非常時を設定します # この項目については後述します # ホスト名レポート HOST OFF # リンク元レポート REFERRER ON # 検索語句レポート INTSEARCHQUERY ON # 検索語レポート SEARCHWORD ON

次に、出力結果のグラフの画像のパスを修正します。
画像へのパスは、解析結果を表示する HTML ファイルからの相対パスになっていますので、
以下のコマンドでシンボリックリンク(ショートカットの様なモノ)を貼ります。
参照元の画像は、RPM でインストールした場合には「 /var/www/html/images 」に格納されています。

# ln -s /var/www/html/images /home/httpd/html/images

それでは、いよいよ実際に 解析結果の HTML を書き出してみましょう。
以下のコマンドを実行し、解析を開始します。

# /usr/bin/analog

▲ページの最上部に戻る

 ログ解析の種類

Analog には様々な情報に対して、表示/非表示が設定可能です。以下はその一覧表です。
例えば、年別レポートを表示したければ、/etc/analog.cfg に「 YEARLY ON 」と明記し、
逆に非表示にしたければ「 YEARLY OFF 」と明記してやればオッケーになります。

GENERAL 全体の概要 1 YEARLY 年別レポート Q QUARTERLY 4半期別レポート m MONTHLY 月別レポート W WEEKLY 週別レポート D DAILYREP 日別レポート d DAILYSUM 曜日別集計 H HOURLYREP 時間別レポート h HOURLYSUM 時間別集計 w WEEKHOUR 曜日別時間集計 4 QUARTERREP 15分間隔レポート 6 QUARTERSUM 15分間隔集計 5 FIVEREP 5分間隔レポート 7 FIVESUM 5分間隔集計 S HOST ホストレポート l REDIRHOST ホストリダイレクションレポート L FAILHOST ホスト不成功レポート Z ORGANISATION 組織レポート o DOMAIN ドメインレポート r REQUEST リクエストレポート i DIRECTORY ディレクトリレポート t FILETYPE ファイル種類別レポート z SIZE ファイルサイズレポート P PROCTIME 処理時間レポート E REDIR リダイレクトレポート I FAILURE 不成功レポート f REFERRER リンク元レポート s REFSITE リンク元サイトレポート N SEARCHQUERY 検索語句レポート n SEARCHWORD 検索語レポート Y INTSEARCHQUERY 内部検索語句レポート y INTSEARCHWORD 内部検索単語レポート k REDIRREF リダイレクトされたリンク元URLレポート K FAILREF 不成功リンク元レポート B FULLBROWSER ブラウザーレポート b BROWSER ブラウザーの概要 p OSREP OSレポート v VHOST 仮想ホストレポート R REDIRVHOST 仮想ホストリダイレクションレポート M FAILVHOST 仮想ホスト不成功レポート u USER ユーザレポート j REDIRUSER ユーザリダイレクションレポート J FAILUSER 不成功ユーザレポート c STATUS 状態コードレポート

▲ページの最上部に戻る

 検索語・検索語句レポートの日本語の文字化けを回避する

このままでは検索語が文字化けするので、以下の方法で修正します。

1.http://www.inwonder.net/~dayan/soft.html#analogurldecode から、「 analogurldecode ベータ版 」 のリンク先の内容を全てコピーし、
「 analogurldecode 」と言う名のファイルを作成し、パスの通った場所( /usr/bin 等 )に設置します。
そして以下のコマンドで実行権限を与えます。

# chmod 755 analogurldecode

2.「 analogurldecode 」は「 Jcode.pm 」 を使用するので、http://openlab.ring.gr.jp/Jcode/index-j.htmlを参照し、Jcode.pmをインストールします。

そして、実際に analogurldecode を実行してみます。

Analog から出力された HTML ファイル( Report.html )に対して以下のコマンドを実行します。

# analogurldecode Report.html > Report_jp.html

すると、Report_jp.html が文字化けが回避された HTML ファイルになります。

▲ページの最上部に戻る

 Cron を利用し、定期的にログを解析する

定期的にログを解析する為に Cron を使用します。
先述の日本語文字化け対策も含めますので、以下の簡単のシェルスクリプトを作成します。
作成する場所はどこでも構いません。ファイル名とパスは「 /usr/local/bin/analog-report.sh 」としておきます。

#!/bin/bash
# Analog コマンドを実行(解析 HTML を吐き出す)
/usr/bin/analog

# ドキュメントルートに移動
cd /home/httpd/html

# デコードを実行
analogurldecode Report.html > Report_jp.html

作成できたらこのシェルスクリプトに実行権限を与えます。

# chmod 755 analog-report.sh

ここで、analog-report.sh を実行し、必ず動作確認を行って下さい。

エラーが無ければ以下の「 crontab -e 」コマンドで analog-report.sh を Cron に登録します。

# crontab -e
0 * * * * root /usr/local/bin/analog-report.sh  ← 毎時 0 分( 1 時間に 1 回 )にコマンドを実行

私は、このページで解説している以外にも設定を施しています。その全ての方法はこのページ上部の「参考URL」を参照し設定しましたので、興味のある方は是非、ご一読下さい。

▲ページの最上部に戻る

Copyright© Home Server Technical. All Right Reserved.
webmaster@miloweb.net