トップページ > Apache関連 > analogでapacheのアクセスログ解析
カテゴリー
オラクルエンジニア通信
サポートページ
マニュアルページ
ソフトウェアダウンロード
中古UNIXマシン購入
blogs.sun.com
お勧めサイト
プライベートリンク

analogでapacheのアクセスログ解析

apacheのアクセスログ(access_log)から必要なデータを抽出し、解析レポートをHTML化してくれるログ解析ツールanalogの紹介です。

apacheのアクセスログ(access_log)から必要なデータを抽出し、
解析レポートをHTML化してくれるログ解析ツールanalogをインストールします。

準備

 以下のサイトでソフトウェアをダウンロードしてきます。  http://www.analog.cx/download.html  今回は現時点での最新版(Solaris版)analog-5.91beta1.SPARC.tar.gzを使用します。

インストール&設定

# pwd /var/tmp
# gunzip analog-5.91beta1.SPARC.tar.gz
# tar xvf analog-5.91beta1.SPARC.tar
...
# cd analog-5.91beta1
# ls -F
Licence.txt       analog-data.dtd   anlgform.pl*      images/
Makefile          analog.cfg        docs/             lang/
README.txt        analog.man        examples/         logfile.log
            analog*           anlgform.html     how-to/          
src/
 SPARC/Solaris用のバイナリのため特にコンパイルの必要はないが、うまく動かない場合は上記 src ディレクトリでMakefile等を修正し、makeするとよい。今回はそのまま使用する。  次に以下のように構成ファイルanalog.cfgを修正する。
# cp analog.cfg analog.cfg.org
 <-- 初期状態を保存しておく
# vi analog.cfg
...
            LOGFILE /usr/local/apache2/logs/access_log   <--
修正
OUTFILE index.html <-- 修正
            HOSTNAME "solaris-user.com" <-- 修正
LANGAGE JAPANESE <-- 追加
            LANGFILE lang/jpe.lng <-- 追加
DESCFILE lang/jpedesc.txt <-- 追加
            DOMAINFILE lang/jpedom.tab <-- 追加
 ...
 ユーザアクセス用のPerlスクリプトanlgform.plを以下のように編集する。
# vi anlgform.pl
...
# Unix: $analog = '/usr/local/etc/httpd/analog-5.91beta1/analog';
            $analog = '/usr/local/analog/analog-5.91beta1/analog';
            ...
上記のようにUnix用テンプレートにならってanalogコマンドがある場所への適切なパスを指定する。(現段階ではまだ未配置だが、最終的に上記の場所へコピーするので心配はいらない)
 httpd.confへanalog用の設定を追加する。
# vi /usr/local/apache2/conf/httpd.conf
...
            ### for analog ###
AddHandler cgi-script .cgi .pl
Alias /analog "/usr/local/analog/analog-5.91beta1"
<Directory "/usr/local/analog/analog-5.91beta1">
Options ExecCGI Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
 analog関係のファイルの配置(/usr/local/analog/analog-5.91beta1ディレクトリへコピーする)
# mkdir -p /usr/local/analog/analog-5.91beta1
# cp -R analog analog.cfg anlgform.pl lang/jpeform.html lang images /usr/local/analog/analog-5.91beta1

動作確認

 コピー先のディレクトリに移動してanalogコマンドを実行します。(動作確認は移動して相対パスで行ってください。絶対パスでは構成ファイルの指定の仕方を変えないとうまくいかないようです。)
# cd /usr/local/analog/analog-5.91beta1
# ./analog +O- /usr/local/apache2/logs/access_log | more
            ※「+O-」の部分は結果を標準出力へという意味です。(ちなみに大文字のオーです。ゼロではありませんのでご注意を)

apacheの再起動

 apachectlでstop/start/restartでもよいが、新規インストールしたapacheでもデフォルトのスクリプトに修正を加えて以下のように制御できるようにしておくと便利。
# /etc/init.d/apache restart
httpd restarting.
#

ブラウザでアクセスして確認

http://サーバ名/analog/
 このままだと誰でもアクセス可能なのでanalog用ディレクトリに対してのみ基本認証くらいはしておいた方がよい。当然、パスワード等垂れ流したくなかったら、ダイジェスト認証もしくはSSL等の利用も考える。

Apache基本認証の設定

# cd /usr/local/apache2/bin
# ./htpasswd -c /usr/local/apache2/.htpasswd analog
New password:   <-- パスワードの設定
Re-type new password: 
#
以上の設定で/usr/local/apache2/.htpasswdファイルにユーザanalogとパスワードが格納される。(システムのアカウントユーザとは無関係)
あとは以下のようにhttpd.confを編集する。
            
# vi /usr/local/apache2/conf/httpd.conf
...
...
# for analog
AddHandler cgi-script .cgi .pl
Alias /analog "/usr/local/analog/analog-5.91beta1"
<Directory "/usr/local/analog/analog-5.91beta1">
Options ExecCGI Indexes MultiViews
AllowOverride None
            AuthName "Analog admin only!!"
AuthType Basic
AuthUserFile /usr/local/apache2/.htpasswd
require user analog
Order allow,deny
Allow from all
</Directory>
            
最後にapacheの再起動で終了
# /etc/init.d/apache restart
httpd restarting.
#
 このようにしておけば、アクセス時にユーザ名、パスワードを求められ、少なくとも誰でもアクセスできる状態ではなくなる。

オラクルユニバーシティSolaris系技術トレーニング一覧

Solarisお勧め書籍

Solaris 11.2 システムハンドブック
Oracle Solaris 11 試験対策本(OCA)