Apacheログアナライザのインストールと設定

各ログアナライザのインストールと設定についてのメモ。

参考資料

  • Analog
日本Analogユーザ会
http://www.jp.analog.cx
Analogのインストールと設定
mori.cc
  • Webalizer
Webalizer
http://www.mrunix.net/webalizer/
  • AWStats
AWStats
http://awstats.sf.net
LinuxとフレッツISDN/フレッツADSL/BフレッツによるInternet Serverの構築
AWStats6.5完全日本語版
AWStatsの検索文字列の文字化けを解消
http://www.irori.org/doc/awstats-fix-searchword.html

Apache2の設定変更

  • ApacheのHTTP_REFERERログ対応
    Apache側で詳細なログを取るように変更する。
    # vi /usr/local/apache2/conf/httpd.conf
    (変更前)CustomLog /usr/local/apache/logs/access_log common
    (変更後)CustomLog /usr/local/apache/logs/access_log combined
    Apacheの再起動
    # /usr/local/apache2/bin/apachectl restart
  • ApacheのSSL通信ログ出力に関する注意
    ApacheのSSL通信のログは、以下のように設定しないと「common」形式のログ出力になってしまい、AWStatsで集計出来ない。
    TransferLogの場合には「combined/common」等の指定は出来ない。
    但し、直前にLogFormatディレクティブで指定されたフォーマットで出力される。参考リンク
    # vi /usr/local/apache2/conf/ssl.conf
    ErrorLog /usr/local/apache2/logs/error_log
    (追加)LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
    TransferLog /usr/local/apache2/logs/access_log

Analog

参考書籍

Analog―Webアクセスログの高速解析ソフト

Webalizer

RedHat ProfessionalWorstation(以降RHEL3と表記する)における日本語表記化及びWebminを利用する場合の導入手順

前準備

以下のパッケージを用意する(別に最新版でも構わない)

パッケージ名場所
webalizer-2.01_10-15.ent.src.rpmRHEL3 ソースコードCD 2/3
libpng-1.2.2-16.i386.rpmRHEL3 インストールCD 2/4
libpng-devel-1.2.2-16.i386.rpmRHEL3 インストールCD 3/4
gd-1.8.4-12.i386.rpmRHEL3 インストールCD 2/4
gd-devel-1.8.4-12.i386.rpmRHEL3 インストールCD 3/4
webmin-1.180-1.noarch.rpm(2005/01/25時点での最新版)http://www.webmin.com

インストール

  • rpmパッケージのインストール。
    # rpm -Uvh webalizer-2.01_10-15.ent.src.rpm
    # rpm -Uvh libpng-1.2.2-16.i386.rpm
    # rpm -Uvh libpng-devel-1.2.2-16.i386.rpm
    # rpm -Uvh gd-1.8.4-12.i386.rpm
    # rpm -Uvh gd-devel-1.8.4-12.i386.rpm
    # rpm -Uvh webmin-1.170-1.noarch.rpm
  • Webminの設定。
    Webブラウザから「http://localhost:10000」に接続してWebminの設定を行う。
  • 日本語表示に関するもの
    [Webmin] - [Change Language and Theme]を開き、「Personal choice .. 」で「Japanese(JA_JP.EUC)」を選択。
    [Webmin] - [Webmin 設定] - [言語]を開き、「言語で表示」で「Japanese(JA_JP.EUC)」を選択。
  • webalizer.specの編集。
    「--with-language=japanese」を追加し日本語表記化する。
    # vi /usr/src/redhat/SPECS/webalizer.spec
    (変更前)%configure --enable-dns --with-dblib=/lib
    (変更後)%configure --with-language=japanese --enable-dns --with-dblib=/lib
  • Webalizerのsrpmからrpmパッケージの作成
    # rpmbuild --ba /usr/src/redhat/SPECS/webalizer.spec
  • 変更前のものが入っている場合は、アンインストール。
    /etc/webalizer.confは/etc/webalizer.conf.rpmsaveでバックアップされる
    # rpm -e webalizer-2.01_10-15.ent.rpm
  • 作成したrpmのインストール
    Apacheをソースコードからインストールしている場合は、依存関係チェックを無効にしてインストールする
    # rpm -Uvh --nodeps /usr/src/redhat/RPMS/i386/webalizer-2.01_10-15.ent.i386.rpm
  • 変更前のものが入っている場合は、/etc/webalizer.confを元に戻す
    # mv /etc/webalizer.conf /etc/webalizer.conf.original
    # mv /etc/webalizer.conf.rpmsave /etc/webalizer.conf
  • Webalizerの集計の設定

    解析ログはApacheからは見えなくWebminからはアクセス出来る「/var/www/analyze」に配置。

  • WebAlizerの設定も一部修正が必要なので行う。 サーチエンジンからの検索キーワードの集計対応を追加する
    # vi /etc/webalizer.conf
    (追加)SearchEngine    google.co.jp    q=
    (追加)SearchEngine    yahoo.co.jp     p=
    (追加)SearchEngine    msn.co.jp       MT=
    (追加)SearchEngine    goo.ne.jp       MT=
    (追加)SearchEngine    clusty.com      query=
    (追加)SearchEngine    fresheye.com    kw=
    (追加)SearchEngine    infoseek.co.jp  qt=
    (追加)SearchEngine    altavista.com   q=
  • 後は集計結果には画像ファイルやスタイルシートへのアクセスも含まれてしまうので適宜除外する。

AWStats

RedHat ProfessionalWorstation(以降RHEL3と表記する)におけるの導入手順(Webminでも利用できるようにする)

前準備

パッケージ名アーカイブ名場所備考
AWStatsawstats-6.2-1.noarch.rpmhttp://awstats.sf.net/.J アクセス解析ツールのバグで、人気Blogが改竄される
セキュリティ上問題があるので6.3以降をSetupする事
GeoIPGeoIP-1.3.8.tar.gzhttp://www.maxmind.com/app/c

インストール

「秘密」の部分は文字通り秘密(内緒)です。つまり自分の環境に依存する部分です。

  • AWStatsのインストール
    # rpm -Uvh awstats-6.2-1.noarch.rpm
  • Webminモジュールのインストール
    1. [Webmin]-[Webminの設定]-[Webmin モジュール]を開く
    2. [モジュールのインストール]で[ローカル ファイルから]を選択。
    3. 「/usr/local/awstats/tools/webmin/awstats-1.4.wbm」を指定する。
    4. 「ファイルからモジュールをインストール」ボタンを押下。
  • AWStatsの設定
    1. AWStats設定ファイルの作成
      # cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.conf
    2. CGIファイルのコピー
      # mkdir /usr/local/apache2/htdocs/秘密
      # cp -R /usr/local/awstats/wwwroot /usr/local/apache2/htdocs/秘密
      # chown -R nobody.nobody /usr/local/apache2/htdocs/秘密
      # chmod -R 644 /usr/local/apache2/htdocs/秘密
    3. /etc/awstats/awstats.confの編集

      ※内容が反映されるのは変更後に集計したもののみになるので注意

      # vi /etc/awstats/awstats.conf
      (変更)LogFile="/usr/local/apache2/logs/access_log"
      (変更)SiteDomain="秘密"
      (変更)HostAliases="秘密 localhost 127.0.0.1 REGEX[秘密$]"
      (変更)DNSLookup="1"
      (変更)DirCgi="/秘密/cgi-bin"
      (変更)DirIcons="/秘密/icon"
      (変更)DefaultFile="index.html index.php index.jsp"
      (変更)SkipDNSLookupFor="REGEX[^192\.168\.]"
      (変更)URLWithQuery=1
      (変更)Lang="jp"
      (変更)ShowAuthenticatedUsers=PHBL
    4. .htaccess/.htpasswdの設置(公開/後悔しないようにする)
      秘密
  • AWStats集計負荷軽減Plug-inの追加

    AWStats集計負荷を軽減するPlug-inが存在するようなので追加する。

    1. GeoIPのセットアップ。
      # tar zxf GeoIP-1.3.8.tar.gz
      # cd GeoIP-1.3.8
      # ./configure
      # make
      # make check
      # make install
    2. CPANより「Geo::IP」を追加する。
      国別IPアドレス調査処理速度の向上。
    3. CPANより「Storable」を追加する。
      DNSのキャッシュファイルアクセス処理速度の向上。
    4. /etc/awstats/awstats.confの編集(コメントをはずす)
      # vi /etc/awstats/awstats.conf
      (変更)LoadPlugin="hashfiles"
      (変更)LoadPlugin="geoip GEOIP_STANDARD"
  • 日本向けパッチの適用

    日本のサーチエンジン判定及び検索語の全角スペース検知のパッチ適用を行う。
    http://cubic9.com/Linux/Apache/%A5%ED%A5%B0%B2%F2%C0%CF/AWStats/
    上記サイトで公開されている「search_engines.diff」「searchwords.diff」をDownloadする。

    1. 上記のパッチを適当な場所に配置後、パッチの適用(awstats.pl/search_engines.pm)
      # cd /usr/local/apache2/htdocs/秘密/cgi-bin
      # patch < /path-to-patch-file-dir/searchwords.diff
      # cd /usr/local/apache2/htdocs/秘密/cgi-bin/lib
      # patch < /path-to-patch-file-dir/search_engines.diff
    2. 手動で実行し問題がないか確認する。
      # /usr/local/apache2/htdocs/秘密/cgi-bin/awstats.pl \
         -config=/etc/awstats/awstats.conf \
         -update
    3. パッチを適用した「search_engines.pm」には不具合があるので修正する。(カンマが無いのでエラーになっている)
      # vi /usr/local/apache2/htdocs/秘密/cgi-bin/lib/search_engines.pm
      (変更前)'excite\.'
      (変更前)'a9\.com'
      
      (変更後)'excite\.',
      (変更後)'a9\.com'
    4. GoogleのIPアドレスの追加
      Googleのドメインは多数ある(http://www.hicat.ne.jp/home/tomcre/search/zatu/data_center_list.html)ようなので適宜追加する必要が有りそう。
      1. http://216.239.63.104/search
      2. http://64.233.187.104/search
      3. http://64.233.189.104/search
        ※修正箇所は2カ所あるので注意
        # vi /usr/local/apache2/htdocs/秘密/cgi-bin/lib/search_engines.pm
        (変更前)'google\.', 
            '216\.239\.(37|39|41|51|53|57|59)\.104',
            '66\.102\.(7|9|11)\.104',
            '64\.233\.(161|167|171|179|183|185)\.104',
        (変更後)'google\.', 
            '216\.239\.(37|39|41|51|53|57|59|63)\.104',
            '66\.102\.(7|9|11)\.104',
            '64\.233\.(161|167|171|179|183|185|187|189)\.104',
        ※パッチ適用後に集計された分から、パッチで変更された部分が反映される。
  • ログの集計
    1. 手動で実行
      # /usr/local/apache2/htdocs/秘密/cgi-bin/awstats.pl \
         -config=/etc/awstats/awstats.conf \
         -update
    2. Cronに登録

      処理負荷はそれ程無いので毎時で実行しても良い。集計結果の表示は動的にHTMLを生成するので負荷が掛かる。

      /usr/local/apache2/htdocs/秘密/cgi-bin/awstats.pl \
       -config=/etc/awstats/awstats.conf \
       -update \
       >/dev/null
  • JavaWebStartアイコンに関する注意

    AWStatsにはJavaWebStartによるアクセス表示アイコンが存在していないようだ。

    ./icon/browser/javaws.png
    ./icon/mime/jnlp.png
  • ログの再集計方法

    集計オプションを変更した場合、変更以後に集計したものが対象になる。
    再集計を行うには、現在存在する集計結果を削除し、対象月のログを古いものから集計していく。

    1. 集計結果の退避
      # cd /usr/local/apache2/htdocs/秘密/cgi-bin
      # mv awstats012005.txt awstats012005.txt.bak
    2. 編集対象ログファイルの変更
      # vi /etc/awstats/awstats.conf
      (変更前)LogFile="/usr/local/apache2/logs/access_log"
      (変更後)LogFile="/usr/local/apache2/logs/access_log.1"  ←適宜開始月のログファイルを指定する。
    3. ログの再集計の実行

      適宜最新のログファイルになる迄、編集→集計を繰り返す

      # /usr/local/apache2/htdocs/秘密/cgi-bin/awstats.pl \
         -config=/etc/awstats/awstats.conf \
         -update
  • Apacheのバーチャルホスト運用時

    バーチャルホスト名を「www.subdomain.example.com」「www.unknown.com」「www.notexist.com」とした場合

    1. AWStats設定ファイルの作成
      # cp /etc/awstats/awstats.model.conf \
         /etc/awstats/awstats.www.subdomain.example.com.conf
      # cp /etc/awstats/awstats.model.conf \
         /etc/awstats/awstats.www.unknown.com.conf
      # cp /etc/awstats/awstats.model.conf \
         /etc/awstats/awstats.www.notexist.conf
    2. ログの集計
      # /usr/local/apache2/htdocs/秘密/cgi-bin/awstats.pl \
         -config=www.subdomain.example.com \
         -update
      # /usr/local/apache2/htdocs/秘密/cgi-bin/awstats.pl \
         -config=www.unknown.com \
         -update
      # /usr/local/apache2/htdocs/秘密/cgi-bin/awstats.pl \
         -config=www.notexist.com \
         -update
    3. URL
      http://www.subdomain.example.com/秘密/cgi-bin/awstats.pl?configdir=/etc/awstats&config=www.subdomain.example.com
      http://www.unknown.com/秘密/cgi-bin/awstats.pl?configdir=/etc/awstats&config=www.unknown.com
      http://www.notexist.com/秘密/cgi-bin/awstats.pl?configdir=/etc/awstats&config=www.notexist.com

AWStatsでメールサーバのログも集計しちゃってみる

前準備

設定名称設定内容
AWStatsのインストール場所/usr/local/awstats
AWStatsの設定ファイルの場所/etc/awstats
AWStatsのURLhttp://www.example.com/秘密/cgi-bin/
使用するAWStatsのPluginHashFiles, GeoIP
メールサーバ名mail.example.com
メールサーバ用の設定ファイル名awstats.mail.example.com.conf
メールサーバのログファイル名/var/log/maillog

インストール

「秘密」の部分は文字通り秘密(内緒)です。つまり自分の環境に依存する部分です。

  • AWStatsの設定
    1. AWStats設定ファイルの作成
      # cp /etc/awstats/awstats.model.conf \
         /etc/awstats/awstats.mail.example.com.conf
    2. /etc/awstats/awstats.confの編集
      ※内容が反映されるのは変更後に集計したもののみになるので注意
      # vi /etc/awstats/awstats.mail.example.com.conf
      (変更)LogFile="perl /usr/local/awstats/tools/maillogconvert.pl standard < /var/log/maillog |"
      (変更)LogType=M
      (変更)LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
      (変更)SiteDomain="秘密"
      (変更)HostAliases="秘密 localhost 127.0.0.1 REGEX[秘密$]"
      (変更)DNSLookup="1"
      (変更)DirCgi="/秘密/cgi-bin"
      (変更)DirIcons="/秘密/icon"
      (変更)LevelForBrowsersDetection=0         # 0 disables Browsers detection.
      (変更)LevelForOSDetection=0               # 0 disables OS detection.
      (変更)LevelForRefererAnalyze=0            # 0 disables Origin detection.
      (変更)LevelForRobotsDetection=0           # 0 disables Robots detection.
      (変更)LevelForSearchEnginesDetection=0    # 0 disables Search engines detection.
      (変更)LevelForFileTypesDetection=0        # 0 disables File types detection.
      (変更)LevelForWormsDetection=0            # 0 disables Worms detection.
      (変更)Lang="jp"
      (変更)ShowRobotsStats=0
      (変更)ShowEMailSenders=HBML
      (変更)ShowEMailReceivers=HBML
      (変更)ShowPagesStats=0
      (変更)ShowFileTypesStats=0
      (変更)ShowOSStats=0
      (変更)ShowBrowsersStats=0
      (変更)ShowOriginStats=0
      (変更)ShowKeyphrasesStats=0
      (変更)ShowKeywordsStats=0
      (変更)ShowMiscStats=0
      (変更)ShowHTTPErrorsStats=0
      (変更)ShowSMTPErrorsStats=1
      (変更)LoadPlugin="hashfiles"
      (変更)LoadPlugin="geoip GEOIP_STANDARD"
  • ログの集計
    1. 手動で実行
      # /usr/local/apache2/htdocs/秘密/cgi-bin/awstats.pl \
         -config=mail.example.com \
         -update
    2. Cronに登録

      処理負荷はそれ程無いので毎時で実行しても良い。集計結果の表示は動的にHTMLを生成するので負荷が掛かる。

      /usr/local/apache2/htdocs/秘密/cgi-bin/awstats.pl \
       -config=mail.example.com \
       -update \
       >/dev/null
  • 集計結果の確認
    http://www.example.com/秘密/cgi-bin/awstats.pl?configdir=/etc/awstats&config=mail.exapmle.com


ページ先頭へ   最終更新のRDF 最終更新のRSS
Last-modified: 2009-02-17 (火) 11:21:44 (3624d)
Valid XHTML 1.1 Valid CSS! [Valid RSS]