awstats和jawstats對apache、nginx進行多站點日誌分析

1、日誌拆分
javascript

一、配置apache使用cronolog:
因爲實驗用的apache開啓了虛擬主機功能,因此如下配置都在虛擬主機中進行,這樣也是爲了方便對多站點的分析操做。
vim /etc/httpd/conf.d/vhosts.conf
將配置文件中的CustomLog和ErrorLog替換爲下面的(因爲咱們要對多站點,因此這裏要替換兩個虛擬主機的,而且將日誌存放名字作有效的區分纔好)php

www.test.com
CustomLog "|/usr/local/sbin/cronolog logs/www.test.com_access_log_%Y%m%d" combined
ErrorLog "|/usr/local/sbin/cronolog logs/www.test.com_access_log_error_%Y%m%d"
www.test2.com
CustomLog "|/usr/local/sbin/cronolog logs/www.test2.com_access_log_access_%Y%m%d.log" combined
ErrorLog "|/usr/local/sbin/cronolog logs/www.test2.com_error_%Y%m%d.log"java

注意:這裏必定要注意對兩個網站的日誌名稱配置nginx


二、使用logrotate對apache進行日誌拆分:數據庫


/var/log/httpd/*log {
    daily
    dateext
    copytruncate
    rotate 60
    missingok
    notifempty
    sharedscripts
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}apache



2、awstats配置及生成:vim

一、LogFile="/var/log/httpd/www.test.com_access_log-%YYYY-0%MM-0%DD-0"
api

     LogFile="/var/log/httpd/www.test2.com_access_log-%YYYY-0%MM-0%DD-0"dom

對最新的數據進行分析
ide

二、執行命令:/usr/local/awstats/tools/awstats_updateall.pl now

三、生成靜態文件

/usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=$name -dir=/usr/local/awstats/wwwroot/awstats -awstatsprog=
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

四、針對多域名進行腳本crontab執行


#!/bin/sh

/usr/local/awstats/tools/awstats_updateall.pl now
domain_name="access.mopote.com mopote.com"
for name in $domain_name
do
    /usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=$name -dir=/usr/local/awstats/wwwroot/awstats -awstatsprog=
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl
done


   crontab添加:

         0 9 * * * (time /usr/local/awstats/awstats_cron.sh)  &> /usr/local/awstats/logs/
awstats.log


頁面訪問:

    http://localhost/awstats/awstats.pl?config=mopote.com


3、AWStats擴展GeoIP

一、GeoIP插件整合到awstats中,實現IP反向解析歸屬地功能。

數據庫下載地址:http://dev.maxmind.com/zh-hans/geoip/legacy/geolite/

分別下載:

    一、國家數據庫     二、城市數據庫    三、運營商

 


下載後分別放置到awstats的配置文件目錄下。

注: geo已經發布geolite2,但文件格式爲mmdb,而不是dat格式。暫時好像awstats不支持。


二、安裝相應的perl模塊

perl -MCPAN -e 'install "Geo::IP"'   
perl -MCPAN -e 'install "Geo::IPfree"'

perl -MCPAN -e 'install "Net::XWhois"'

perl -MCPAN -e 'install "Encode"'

perl -MCPAN -e 'install "URI::Escape"'


三、先下載安裝C庫  
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz  
tar -zxf GeoIP-1.4.8.tar.gz  
cd GeoIP-1.4.8/  
./configure --prefix=/usr/local/GeoIP

make && make install  


因爲編譯GeoIP時自定義了安裝路徑,因此這裏須要加載關聯GeoIP模塊庫

# echo '/usr/local/GeoIP/lib' >> /etc/ld.so.conf

# /sbin/ldconfig /etc/ld.so.conf

 

四、下載Perl庫  
wget http://geolite.maxmind.com/download/geoip/api/perl/Geo-IP-1.40.tar.gz  
tar vzxf Geo-IP-1.40.tar.gz  
cd Geo-IP-1.40/  
perl Makefile.PL LIBS='-L/usr/local/GeoIP/lib' INC='-I/usr/local/GeoIP/include'

make && make install 


五、修改配置文件 ,開啓相應模塊


LoadPlugin="hostinfo"

LoadPlugin="decodeutfkeys"

LoadPlugin="graphgooglechartapi"

LoadPlugin="geoip GEOIP_STANDARD /usr/local/awstats/etc/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/awstats/etc/GeoLiteCity.dat"
LoadPlugin="geoip_org_maxmind GEOIP_STANDARD /usr/local/awstats/etc/GeoIPASNum.dat" 



六、更新配置

/usr/local/awstats/tools/awstats_updateall.pl now



4、對nginx日誌進行分析統計

一、對nginx日誌格式進行變動


    log_format  awstats  '$remote_addr - $remote_user [$time_local] "$request" '
                         '$status $body_bytes_sent "$http_referer" '
                         '"$http_user_agent" "$http_x_forwarded_for"';



二、對awstats配置文件進行變動:

#LogFormat=1         關閉默認的apache格式
LogFormat="%host %other %other %time1 %methodurl %code %bytesd %refererquot %uaquot %otherquot"


三、用awstats生成數據文件


5、結合jawstats顯示數據

配置請參考 :http://www.jawstats.com/documentation 


  // core config parameters
  $sDefaultLanguage      = "en-gb";
  $sConfigDefaultView    = "thismonth.all";
  $bConfigChangeSites    = true;        #多站點切換開關
  $bConfigUpdateSites    = false;        #頁面更新開關
  $sUpdateSiteFilename   = "xml_update.php";

  // individual site configuration
  $aConfig["mopote.com"] = array(
    "statspath"   => "/usr/local/awstats/data/",
    "updatepath"  => "//usr/local/awstats/wwwroot/cgi-bin/awstats.pl/",
    "siteurl"     => "http://mopote.com",
    "sitename"    => "mopote.com",
    "theme"       => "default",
    "fadespeed"   => 250,
    "password"    => "sky1",
    "includes"    => "",
    "language"    => "en-gb"
  );

  $aConfig["access.mopote.com"] = array(
    "statspath"   => "/usr/local/awstats/data/",
    "updatepath"  => "//usr/local/awstats/wwwroot/cgi-bin/awstats.pl/",
    "siteurl"     => "http://access.mopote.com",
    "sitename"    => "access.mopote.com",
    "theme"       => "default",
    "fadespeed"   => 250,
    "password"    => "sky2",
    "includes"    => "",
    "language"    => "en-gb"
  );




6、故障處理:

官網下的程序有個小bug。多是由於0.7是beta版本的緣由吧。若是你訪問JAWStats時,出現的是空白頁的話。可按下面的方法修改解決:

  修改jawstats目錄中的index.php,將258行上

 #修改前 <// output booleans for javascript function BooleanToText($bValue) {   

 #修改後 <?php // output booleans for javascript function BooleanToText($bValue) {

相關文章
相關標籤/搜索