awstats分析apche日誌

好吧。之前寫過關於apache日誌的文章,本意是瞭解一下apache日誌的配置和基礎解讀爲apache日誌分析打好基礎,應用到生產之後能夠對網站的維護和日常生產做出指導作用。


寫在前面的話:
因爲我的實際生產環境AS4、AS5、AS6都有,所以都做了實驗,並且現在都已經應用在生產中了。但實際這個東西三版系統中除了最後jawstats的應用有點問題以外,其它都一樣,所以這裏用AS4做基礎的實驗環境。


實驗環境:AS4UP4 (AS5、AS6通用)
採用的軟件包:
awstats: 採用的是現在爲止最新的穩定版(2016-03-03)
本體:http://prdownloads.sourceforge.net/awstats/awstats-7.4.tar.gz
jawstats: 這裏要說明一下,這個界面比awstats友好多了,但最新版在09年初就已經停止更新了,所以這裏到後面會有一點小問題。
本體:http://static.jawstats.com/src/jawstats-0.7beta.tar.gz
語言包:http://www.jawstats.com/src/languagepack.zip



一、系統設置
由於是實驗性質,所以採用了絕對安全環境下進行的一些設置(爲了避免軟件引起的干涉),在實際環境中請慎重考慮一下:


Selinux關閉,這個不關可能在apache另做的別名和系統默認的apache文件夾以外的文件夾無法被順得加載。
#setenforce 0
這個是臨時關閉,重啓之後失效
或者
#vim /etc/selinux/config
把SELINUX=Enforcing 改成 SELINUX=disabled
這個重啓之後就永久關閉了。


 perl的安裝,這個不多說了,系統光盤裏都有。awstats需要這個做支持,7.4版本要求在版本在5以上,這個應該不是難事,AS4自帶的就是5。


二、設置
首先說明一下,awstats是基本LAMP的軟件,而本身我們也是爲了分析apache日誌,所以LAMP環境是必須的。實驗中我是直接完全安裝,現在RPM包全裝完了。源碼包的安裝方式參看:


使用的三個包
awstats這個是從apache日誌中提取信息併成生分析數據的軟件,這是整個分析系統的核心。
Jawstats直接利用awstats生成的數據,轉換到一個更加友好界面展現出來,其實就是awstats的一個插件。
Languagepack是jawstats的語言包
SO,一步步來。


安裝awstats
awstats對日誌的分析支持的模式是 combined,所以之前做的日誌要改變一下。
# vim /etc/httpd/conf/httpd.conf    //編輯apache配置文件

CustomLog 改成
CustomLog "| /usr/sbin/rotatelogs /etc/httpd/logs/access_log%Y%m%d 86400 480" combined

# service httpd restart    //重啓apache
打開瀏覽器訪問一下http://IP
#ll /etc/httpd/logs/


日誌文件就已經生成了。


現在可以來處理awstats了
# tar zxvf awstats-7.4.tar.gz
# mv awstats-7.4 /usr/local/awstats
# cd /usr/local/awstats/tools/
# ./awstats_configure.pl


這裏要求的是apache配置文件的完整路徑。


apache配置文件找到之後,會寫入和awstats相關的別名設置。


模板配置文件也會生成,保存在/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf


這裏是利用模板,直接配置需要分析的模板了。


這裏是網站名稱,可以寫全域名,我這裏直接寫localhost了。


這裏說明是配置文件存放路徑,默認是/etc/awstats,默認就直接回車了。


之後apache就會直接重啓,之後會提示日誌分析命令和web訪問路徑。基本配置到此完成,現在準備生成分析數據。
這裏說明一下,如果找不到libmysql.so.14.0或者以上版本的同名文件重啓apache是會失敗的,但無傷大雅,可以自己手動重啓。AS4系統中內置包名是mysql-4.1.20-1.RHEL4.1.i386.rpm,其它幾個系統類同。


# mkdir /var/lib/awstats   //這個是日誌分析後數據保存的路徑,必須手動新建
# vim /etc/awstats/awstats.localhost.conf  
//修改localhost的配置文件,因爲配置文件裏的apache源日誌文件名是通用的,要改成之前設置的那個
LogFile改成如下:
LogFile="/etc/httpd/logs/access_log%YYYY%MM%DD"

# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=localhost  
//生成數據,命令照打,如下是成功的。



# crontab -e       //apache的日誌是不斷產生的,所以要加入計劃任務。
*/1 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=localhost
# service crond restart

# chown apache.apache -R /usr/local/awstats/  //把權限改成apache用戶,否則無法正常訪問

打開瀏覽器
http://IP/awstats/awstats.pl?config=localhost


完成。




安裝jawstats
# mkdir jawstats
# tar zxvf jawstats-0.7beta.tar.gz -C jawstats   //jawstats解開是文件狀態,所以要指定文件夾
# mkdir language
# unzip languagepack.zip -d language      
# cp   language/* ./jawstats/languages/
# mv jawstats /var/www/html/
# cd /var/www/html/jawstats/
# cp config.dist.php config.php
# vim config.php   //編譯配置文件


全局變量
$sDefaultLanguage      = "zh-cn";  //這裏只需要把默認的語言改掉就行了


$aConfig["localhost"] = array(
  //這裏是指定讀取網站的名稱,這裏寫錯了會讀錯日誌,和awstats設置一樣,即剛剛在awstats中輸入的網站名稱。
  "statspath"   => "/var/lib/awstats/", 
  //awstats生成的數據文件目錄
  "updatepath"  => "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl",
  //也就是awstats.pl文件的目錄
  "siteurl"     => "localhost",
  //這個是jawstats進去之後標題的鏈接
  "sitename"    => "localhost",
  //這個是jawstats進去之後給出的網站標題,主要是標明哪個網站
  "theme"       => "default",
  "fadespeed"   => 250,
  "password"    => "mypassword",
  //更新站點數據的密碼,jawstats有個功能,其實感覺用F5刷新就行了,如果你等不急awstats每分鐘刷新一次的頻率的話,可能試下這個。
  "includes"    => "",
  "language"    => "zh-cn"
  //默認語言
);



關於jawstats第一步就完成了。這裏有兩個地方要說明一下。
1.jawstat,在09年初就斷更了。PHP5.3發佈之後很多PHP規則都改變了,它裏面很多內置函數因爲這個原因都無法使用,所以它是不支持PHP5.3以上的版本的。SO,AS6就失敗了。
2.由於awstats的版本一直在更新,所以jawstats是不能完全支持最新版本的awstats的,例如查看瀏覽器和操作系統就無法完成。要支持的話,可以使用awstats6.95的版本。不過其實這些功能awstats本身都有,看個人取捨。


以上設置完成之後,awstats和jawstats的目錄都是不設防的,所有人都可以訪問。一般情況下爲了安全起見是要做一下訪問控制的,網上大多數人用的都是.htpasswd,不過如果有固定IP地址或者VPN的話可以直接用ACL進行控制。
下面分別說明一下:
.htpasswd方法
例awstats在apache配置文件中原始的文件夾權限
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
修改爲:
<Directory "/usr/local/apache/htdocs/www/awstats">
AuthType Basic
AuthName "Auth Youself"    //這裏是提示信息
AuthUserFile /usr/local/awstats/wwwroot/.htpasswd
Require user admin
</Directory>
然後
/usr/bin/htpasswd -c /usr/local/awstats/wwwroot/.htpasswd  用戶名  密碼


jawstats亦以此類推,複製一下即可。


ACL方法:
例awstats在apache配置文件中原始的文件夾權限
如下
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>


修改爲:
<Directory "/usr/local/awstats/wwwroot">
    Options None
Order deny,allow   
//這裏deny,allow的位置要注意,寫在後面的覆蓋前面的,寫反了allow將不會生效
    Deny  from all
Allow from 允許的IP
</Directory>


Jawstats可以以此類推,如下:
Alias /jawstats "/var/www/html/jawstats"      //我這裏新建了一個別名
<Directory "/var/www/htmlt/jawstats">
    Options None
    Order deny,allow
    Deny from all
Allow from 允許的IP
</Directory>


無論哪種方法,不要忘記重啓apache服務。

awstats的優化
剛剛建好的awstats最大的問題在於無法通過IP識別來源的國家,這個需要其它插件的支持。
要下三個包

http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz  主程序
http://www.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.19.tar.gz
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz 城市信息

先安裝GeoIP
# tar zxvf GeoIP.tar.gz
# cd GeoIP-1.4.8/
# ./configure --prefix=/usr/local/geoip
# make
# make install

安裝Geo-IP-PurePerl
# tar zxvf Geo-IP-PurePerl-1.19.tar.gz
# cd Geo-IP-PurePerl-1.19
# perl Makefile.PL   
# make
# make test
# make install

更新數據庫
# gunzip GeoLiteCity.dat.gz
# mv GeoLiteCity.dat /usr/local/awstats/wwwroot/cgi-bin/ 
//數據庫GeoLiteCity.dat移到目標目錄

# vim /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf
做如下修改:
LoadPlugin="decodeutfkeys"
LoadPlugin="graphgooglechartapi"
LoadPlugin="geoip GEOIP_STANDARD /usr/local/geoip/share/GeoIP/GeoIP.dat" 
//這裏是安裝目錄,其實是GeoIP數據庫GeoIP.dat的路徑
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoLiteCity.dat"

//這行別搞錯了,原來是以GeoIPCity.dat結尾的。如果只註釋那麼是得不到想要的結果的。

# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=localhost
更新過後,應該就可以得出結果了


本來GeoIP是有自動更新功能的,但帳號需要購買,所以只能定時下載更新包了。
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz


///另,開啓了IP來源識別,打開監控網頁的整體會變慢,而且統計圖片很可能會顯示不出來——當然這個和機器的配置還有設置有關係。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章