analogを使用してApache2のログを解析する

今回は、analogの設定をした際の俺専用メモです( ̄∇ ̄)ノ♪(ぇ?(笑)

# apt-get install analog
apt-getを使ってanalogをインストール

# vi /etc/analog.cfg
テキストエディタでanalogの設定ファイル(analog.cfg)を以下の様に編集:

LOGFORMAT combined
LOGFILE /var/log/apache2/access.log
LOGFILE /var/log/apache2/access.log.*
↑の設定にすることで、ログローテーションされてgz(GZIP)圧縮されたログも含めて解析してくれる(≧∇≦)

OUTFILE /var/www/axsanalyze/result.html
解析結果の出力先を設定する

INTSEARCHQUERY OFF
INTSEARCHQUERYをONからOFFにしないと、cron実行時に以下の様な警告が発生する:
/usr/bin/analog: analog version 5.32/Unix
/usr/bin/analog: Warning R: Turning off empty Internal Search Query Report
(For help on all errors and warnings, see /usr/share/doc/analog/errors.html)

それ以外のanalog.cfgの設定は割愛(ぇ?


# perl -MCPAN -e shell
cpan > install Jcode
Jcodeのインストール

Graffiti - analog関連より、analogurldecode.plをダウンロードし、analog解析結果出力先(今回は/var/www/axsanalyze/直下)に設置

# cd /var/www/axsanalyze/
# chmod 644 analogurldecode.pl
パーミッションを設定

# cd /usr/local/bin/
# touch analog.sh
# chmod 755 analog.sh
cron用のスクリプト(analog.sh)を作成し、パーミッションを設定

# vi analog.sh
テキストエディタでanalog.shを以下の様に編集:

#!/bin/bash

/usr/bin/analog

cd /var/www/axsanalyze/

perl analogurldecode.pl result.html > result_jp.html


$ crontab -e
cronを使用し、毎日10時15分にanalogを起動する様に設定:

15 10 * * * /usr/local/bin/analog.sh
※cronで正常に動作するかのテストをする場合、現在の時刻+2分で設定し、保存すること。現在の時刻+1分だとcronのリロードが間に合わず、起動に失敗することがある。


crontabで上記の設定をしたら、Ctrl + Xキー→Yキーで保存し、作業終了(≧∇≦)

その後、Apache 2で/var/www/axsanalyze/のresult_jp.htmlにあたるページにアクセスすると、日本語キーワードがエンコードされて表示された解析結果が表示される。
ただし、検索結果のURLを直接参照したい場合にはresult.htmlからアクセスすると良い。


・今回の記事を書くにあたり参照したページ:
Linux で自宅サーバ - Apache ログ解析 Analog の導入
Graffiti - analog関連
Linuxべんりな動作情報 ナレッジベース:環境設定 - cron の設定ガイド
定番Linuxフリーウェアまとめ - crontabで一分後に実行設定したが動かない