【WEBサーバ】Apache2ログ設定

現場ではログはデイリーなのでどうやってるのかということで設定お試しです。
さらにログ解析した際、エクセルでやらされた覚えがありますが、
やはりツールがあるようなのでお試しです。

  • Apache2ログローテーション

    vi /etc/apache2/sites-available/default
    
    # 下記内容を変更
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    ↓
    #CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    # 下記内容を追加
    # XXは固定化したいIPによって変更
    # ownlog:自身のアクセスログ ⇒ access_own.log に出力
    # robotlog:検索ロボットのアクセスログ ⇒ access_robot.log に出力
    # nolog:自身と検索ロボット以外のアクセスログ ⇒ access.log に出力
    SetEnvIf Remote_Addr "192.168.XX." ownlog nolog
    SetEnvIf Remote_Addr "127.0.0.1" ownlog nolog
    SetEnvIf User-Agent "Googlebot" robotlog nolog
    SetEnvIf User-Agent "bingbot" robotlog nolog
    SetEnvIf User-Agent "MJ12bot" robotlog nolog
    SetEnvIf User-Agent "YahooFeedSeeker" robotlog nolog
    SetEnvIf User-Agent "ichiro/mobile goo" robotlog nolog
    SetEnvIf User-Agent "360Spider" robotlog nolog
    SetEnvIf User-Agent "SurveyBot" robotlog nolog
    SetEnvIf User-Agent "ia_archiver" robotlog nolog
    SetEnvIf Remote_Addr "208.43.225.84" robotlog nolog
    SetEnvIf Remote_Addr "208.43.225.85" robotlog nolog
    SetEnvIf User-Agent "crowler" robotlog nolog
    CustomLog ${APACHE_LOG_DIR}/access_own.log common env=ownlog
    CustomLog ${APACHE_LOG_DIR}/access_robot.log combined env=robotlog
    CustomLog ${APACHE_LOG_DIR}/access.log combined env=!nolog
    
    vi /etc/logrotate.d/apache2
    
    # 下記内容を変更
    weekly
    ↓
    daily
    
    rotate 52
    ↓
    rotate 90
    

    1日単位でログをローテーションするよう変更したため、
    新規ファイルをログフォルダで作成できるようログ権限を変更する。

    chmod 605 /var/log/apache2
    
  • webalizer導入
    webalizerによるアクセスログの解析を行います。
    解析対象は下記の通り。
    1.自身と検索ロボット以外のアクセスログ
    2.検索ロボットのアクセスログ

    apt-get install webalizer
    # インストール時に自動作成された「/var/www/webalizer」は1のアクセスログ用
    # 2のアクセスログ用フォルダを作成
    mkdir /var/www/webalizer/robot
    # 1のアクセスログ解析ファイルを編集
    vi /etc/webalizer/webalizer.conf
    
    # 下記内容を変更
    # Incremental no
    ↓
    Incremental yes
    
    # 下記内容を追加
    HTMLHead <META HTTP-EQUIV="content-Type" CONTENT="text/html; charset=UTF-8">
    
    # 1のアクセスログ解析ファイルをコピーして2のアクセスログ解析ファイルを作成
    cp -pi /etc/webalizer/webalizer.conf /etc/webalizer/robot.conf
    vi /etc/webalizer/robot.conf
    
    # 下記内容を変更
    LogFile /var/log/apache2/access.log.1
    ↓
    LogFile /var/log/apache2/access_robot.log.1
    
    OutputDir /var/www/webalizer
    ↓
    OutputDir /var/www/webalizer/robot
    

    既に出力済のアクセスログがあれば、過去分を解析する。

    webalizer -c /etc/webalizer/webalizer.conf /var/log/apache2/access.log
    webalizer -c /etc/webalizer/robot.conf /var/log/apache2/access_robot.log
    

    アクセスログ解析結果はHTMLで参照する。
    1.http://z-area.net/webalizer/
    2.http://z-area.net/webalizer/robot/

    現状のままでは、誰でもアクセスログ解析結果を参照できてしまうので制御する。

    vi /var/www/webalizer/.htaccess
    
    # 下記内容を追加
    # XXは固定化したいIPによって変更
    order deny,allow
    deny from all
    allow from 192.168.XX.
    allow from 127.0.0.1
    allow from localhost
    
    vi /var/www/webalizer/robot/.htaccess
    
    # 下記内容を追加
    # XXは固定化したいIPによって変更
    order deny,allow
    deny from all
    allow from 192.168.XX.
    allow from 127.0.0.1
    allow from localhost