analogによるアクセスログの解析



apacheが残すaccess_logなどのログファイルは大変見にくい. どのファイルがどこからどのくらい参照されているかを解析し,結果をHTML形式で出力して くれるのがapache専用ログ解析ツールのanalogである.

出力はこんな感じになる.いろいろやってみて何とかうまくいったので, インストール手順をメモしておく.

  1. まず,オリジナルサイトからソースをダウンロードする. 各プラットホーム向けバイナリも用意されているが,Redhat系はkernel2.4以降のものしかなかった. 最新バージョンは5.24である.

  2. ダウンロードしたanalog-5.24.tar.gzを/usr/local/etcに置いた. このソースは通常のソースと違い,tarボールを解凍したディレクトリがインストールディレクトリとなるので 注意しなければならない. 以降の操作はすべてsuしてから行う.

  3. tarボールを解凍する.
    % tar zxvf analog-5.24.tar.gz
    % mv analog-5.24 analog
    % cd analog
    % make
    
    解凍するとanalog-5.24というディレクトリができるが,設定ファイルに書き込みとき面倒なのでanalogに 変更した. その後ディレクトリを移動してmakeする. Redhat 6.2でも特に問題なくコンパイルが終了した.

  4. 設定は/usr/local/etc/analog/analog.cfgで行う. オリジナルのファイルをanalog.cfg.orgなどとして保存し,以下の記述を追加および変更する
    #apacheのログがある場所を指定する
    LOGFILE /etc/httpd/logs/access_log*
    
    #ユーザのOSや検索語の情報を取得するための設定(以下の説明1参照)
    LOGFORMAT (%f -> %r)
    LOGFILE /etc/httpd/logs/referer_log*
    LOGFORMAT (%B)
    LOGFILE /etc/httpd/logs/agent_log*
    
    #ログ解析結果を出力するファイルを指定する
    OUTFILE /home/akasaka/public_html/report/report.html
    
    #サイトのURLを指定する
    HOSTNAME http://fukunm12.nucl.kyushu-u.ac.jp/~akasaka/memo/
    
    #結果を日本語で出力するための設定
    LANGUAGE JAPANESE-SJIS
    LANGFILE lang/jps.lng
    DESCFILE lang/jpsdesc.txt
    DOMAINSFILE lang/jpsdom.tab
    
    #analogがHTML作成に用いる画像の場所(以下の説明2参照)
    IMAGEDIR /analog_images/
    
    #ホスト名の逆引き設定.以下のように設定すれば参照元ホストのホスト名が表示される(以下の説明3参照)
    DNS WRITE
    DNSFILE dnsfile.txt
    DNSGOODHOURS 168
    
    #サイト内のhtmlファイルのみを解析の対象とする設定.これを忘れると
    #jpgやlzhまでログ解析の対象になってしまう.
    REQINCLUDE pages
    
    #検索サイトの検索語をデコードするための設定
    SEARCHCHARCONVERT ON
    
  5. ログ解析を行うには./analogを実行するだけだ.上のOUTFILEで指定した出力ファイルが作成される.

  6. ログ解析は一日一回やれば十分. 自動実行デーモンcronを使えばよい.
    0 * * * * /usr/local/etc/analog/analog
    
    のようなファイルを作っておき(ファイル名をanalogcron.txtとする),
    % cat analogcron.txt | crontab -
    
    とする.
*1 referer_logおよびagent_logについて
この二つのログファイルを解析するように設定すればユーザが使っているOSの種類や, サイトに辿りついたユーザが検索サイトでどのようなキーワードを入力したかがわかる. ただし,apacheの標準設定ではこの二つのログは作成されないようになっているので, httpd.confの中で
#CustomLog /var/log/httpd/referer_log referer
#CustomLog /var/log/httpd/agent_log agent
となっている行の#を削除した後,apacheを再起動する.
% /etc/rc.d/init.d/httpd restart
analogはそのままではreferer_logやagent_logのログフォーマットを認識できないので, これらのフォーマットをLOGFORMATで指定する. LOGFORMATの書き方はここに詳しい解説がある. referer_logやagent_logがデフォルトのフォーマットならば,とりあえず上のように設定すればログを読むことができるようだ. フォーマットをカスタマイズしている場合,それに応じてLOGFORMATを指定する必要がある. なお,LOGFORMATを指定するときは,該当するログファイルを指定するLOGFILEの前に 書かなければならない.

以上のように設定しても,日本語の検索語は文字化けしてしまうことがあるようだ. これはメーリングリスト等でも既知の問題らしい. ちなみにこのサイトに辿り着いた人が入力した検索語は,

IPマスカレード,tex,VB,6P2M810,sysalign,mmtimer,redhat7.1,vc, limit,DrawFrameControl,GetTickCount,delphi,enumEnhMetaFile,WH_MOUSE, ウィンドウの最小化,gateway,TFont,timeSetEvent,PBYTE,bios

などである.

*2 IMAGEDIRについて
今回設定したサーバーではapacheのドキュメントルートが/home/httpd/htmlとなっているので, /usr/local/etc/analog/images/を/home/httpd/html/analog_images/にコピーし, IMAGEDIRを/analog_images/に設定した. こうすれば,analogが作成したHTML内で参照される画像への リンクはhttp://fukunm12.nucl.kyushu-u.ac.jp/analog_image/hogehoge.gifなどとなり,きちんと画像が表示される. つまり,結果のHTML内で参照される画像はブラウザで参照可能な場所であればどこでもよい.

*3 ホスト名の逆引き設定
デフォルトではログ解析の時間短縮のためIPアドレスからホスト名をDNSサーバに問い合わせる逆引きは 行わないようになっている.上のように設定することでホスト名の逆引きを行い,結果を dnsfile.txtにキャッシュするようになる. dnsfile.txtの内容は168時間,つまり一週間だけ有効とする. ホスト名の逆引きを行う場合,ログ解析に時間がかかるので注意! 大量の問合せがDNSサーバに集中するので 管理者から苦情が出るかもしれない. キャッシュファイルができた後はかなり時間が短くなるようだ.

さて,このサイトのログ解析の結果だが,

組織別レポート

リクエスト数: バイト数の割合 (%): 組織
------------: ------------------: ----
        1843:              6.01%: ocn.ne.jp
        1596:              4.57%: infoweb.ne.jp
        1487:              1.51%: kyushu-u.ac.jp
        1132:              4.14%: bbtec.net
         902:              2.79%: plala.or.jp
         839:              2.32%: dion.ne.jp
         822:              2.53%: odn.ad.jp
         762:              2.21%: so-net.ne.jp
         749:              2.46%: asahi-net.or.jp
         417:              0.75%: dti.ne.jp
         401:              1.51%: mesh.ad.jp
         373:              1.14%: fujitsu.co.jp
         366:              1.43%: home.ne.jp
         363:              1.09%: 2iij.net
         360:              0.27%: 133.10
         337:              1.04%: nttpc.ne.jp
         329:              1.06%: zaq.ne.jp
         307:              1.02%: chiyoda.co.jp
         299:              1.13%: nec.co.jp
         289:              0.57%: sannet.ne.jp
       18224:             60.45%: [その他: 1,284 組織]
プロバイダからのアクセスが多くを占めており,個人ユーザから多く参照されていることが分かる. 企業ユーザからのアクセスも少なからずあるようだ.

リクエストレポート

リクエスト数: バイト数の割合 (%):        最終アクセス時刻: ファイル
------------: ------------------: -----------------------: --------
         554:             15.71%: 2002年 9月04日 16時36分: /~akasaka/memo/windows/windows.html
         503:              0.71%: 2002年 9月04日 16時54分: /~akasaka/memo/
         318:              3.84%: 2002年 9月04日 15時21分: /~akasaka/memo/delphi/socket.html
         274:              7.86%: 2002年 9月04日 16時38分: /~akasaka/memo/delphi/graphic.html
         227:              5.36%: 2002年 9月04日 15時54分: /~akasaka/memo/delphi/system.html
         222:              0.46%: 2002年 9月04日 14時45分: /~akasaka/memo/delphi/delphi.html
         203:              4.68%: 2002年 9月04日 15時52分: /~akasaka/memo/delphi/component.html
         173:              0.63%: 2002年 9月04日 16時15分: /~akasaka/memo/parts/etc/llf.html
         165:              2.96%: 2002年 9月04日 16時10分: /~akasaka/memo/tex/tex.html
         139:              1.03%: 2002年 9月04日 15時31分: /~akasaka/memo/download/download.html
         139:              2.39%: 2002年 9月04日 16時23分: /~akasaka/memo/history.html
         138:              4.69%: 2002年 9月04日 13時11分: /~akasaka/memo/parts/partslist.html
         135:              3.17%: 2002年 9月04日 12時48分: /~akasaka/memo/propath/prodll_call.html
         134:              1.15%: 2002年 9月04日 14時09分: /~akasaka/memo/parts/etc/tualatin.html
         115:              1.09%: 2002年 9月04日 15時36分: /~akasaka/memo/fortran/fortran.html
         114:              2.29%: 2002年 9月04日 13時12分: /~akasaka/memo/delphi/mapping.html
         112:              1.41%: 2002年 9月04日 10時35分: /~akasaka/memo/parts/zakkan.html
         112:              0.54%: 2002年 9月04日 15時30分: /~akasaka/memo/delphi/mmtimer.html
         112:              2.46%: 2002年 9月04日 13時00分: /~akasaka/memo/linux/ipmasq.html
         112:              0.97%: 2002年 9月04日 16時25分: /~akasaka/memo/delphi/emf.html
上の結果はリクエストが多かった上位20位までのファイルである. Windows関連のページへのアクセスが最も多いが,このページは分量が多いので 検索サイトで引っかかりやすいのだろう. Windows系以外では,Delphi関連ページへのリクエストが目出つ.


お問い合わせはメールにて: akasaka@klc.ac.jp

戻る
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送