Apache 服務器Log分析應用實例 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- Apache 服務器Log分析應用實例 (http://www.webasp.net/article/18/17028.htm) |
-- 作者:未知 -- 發佈日期: 2005-03-16 |
Apache 服務器Log分析應用實例
rhinux 發表於: 2004-11-28 22:11 互聯網的飛速發展,無論是傳統企業的網站,還是互聯網企業,為了瞭解自己的客戶來源,點擊率等資料,對網站日誌的分析尤為重要,以下就本人所做的日誌分析系統與大家分享,希望能對大家有所幫助。 歡迎大家複製,但請大家保留本文的完整,謝謝!! 一,所用軟件及工具 1,Apache服務器 官方網址:http://www.apache.org 2,awstats 日誌分析軟件 官方網址:http://awstats.sourceforge.net/ 3,cronolog 日誌截取軟件 官方網址:http://www.cronolog.org 二,環境構架 1,RedHat AS 3 2,Apache ./configure –prefix=/usr/local/apache2/ --enable-so make make install 3, awstats 直接tar到 /usr/local/awstats 4,cronolog ./configure –prefix=/usr/local/cronolog make make install 三, 配置 1, apache a,讓apache中的某個虛擬主機產生日誌: 全局環境變量設置: 代碼: LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined SetEnvIf Request_URI \.gif$ gif-image SetEnvIf Request_URI \.GIF$ gif-image SetEnvIf Request_URI \.jpg$ gif-image SetEnvIf Request_URI \.JPG$ gif-image SetEnvIf Request_URI \.png$ gif-image SetEnvIf Request_URI \.swf$ gif-image SetEnvIf Request_URI \.SWF$ gif-image SetEnvIf Request_URI \.css$ gif-image SetEnvIf Request_URI \.CSS$ gif-image SetEnvIf Request_URI \.js$ gif-image SetEnvIf Request_URI \.JS$ gif-image SetEnvIf Request_URI \.ico$ gif-image 產生日誌但不包括 圖片。 虛擬主機日誌設置 代碼: <VirtualHost 12.34.56.78:80> ServerAdmin webmaster@abc.net DocumentRoot /db/htdocs/www ServerName www.abc.net CustomLog "|/usr/local/cronolog/sbin/cronolog /db/logs/www.%Y-%m-%d.log" combined env=!gif-image #用cronolog截取存放在/db/logs/下的按日期產生的apache日誌文件 </VirtualHost> 註:日誌文件是針對每一個虛擬主機產生的所以可以配置一台服務器上多個虛擬主機的日誌分析 b,別名設置 代碼: # # Directives to allow use of AWStats as a CGI # Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/" Alias /awstatscss "/usr/local/awstats/wwwroot/css/" Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/" ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/" # # This is to permit URL access to scripts/files in AWStats directory. # <Directory "/usr/local/awstats/wwwroot"> Options None AllowOverride None Order allow,deny Allow from all </Directory> 該配置在運行awstats/tools/awstats_configure.pl 後會自動產生所以不用手動添加。 c,awstats需要cgi的支持如果沒有添加cgi可以現在添加 代碼: ./apxs -c -i /usr/local/src/httpd-2.0.50/modules/generators/mod_cgi.c 再在httpd.conf 中添加 代碼: LoadModule cgi_module modules/mod_cgi.so d為了保護日誌統計信息需要對某些目錄進行認證設置,需要認證模塊的支持 代碼: ./apxs -c -i /usr/local/src/httpd-2.0.50/..../mod_auth.c 再在httpd.conf 中添加 代碼: LoadModule auth_module modules/mod_auth.so 配置需要認證的目錄: 代碼: <Directory "/db/htdocs/www/awstat/"> AuthType Basic AuthName "Restricted Files" AuthUserFile /usr/local/apache2/passwd/passwords Require user loguser </Directory> 其中在 /usr/local/apache2/passwd/下產生passwords 的密碼文件 運行如下代碼產生用戶名為loguser用戶及其密碼 代碼: /usr/local/apache2/bin/htpasswd -c /usr/local/apache2/passwd/passwords loguser 注意:先要在 /usr/local/apache2/下建passwd目錄 2,Awstats 運行 /usr/local/awstats/tools/awstats_configure.pl 主要設置的是需要輸入做統計的主機名的配置文件名如:www.abc.net 接著修改 剛才配置是產生的awstats配置文件 默認位置在: /etc/awstats/awstats.www.abc.net.con 主要做指定log位置 代碼: LogFile="/db/logs/www.%YYYY-4-%MM-2-%DD-2.log" 創建目錄:mkdir /var/lib/awstats/ 執行: 代碼: /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.abc.net 更新,update 後可以在瀏覽器中輸入 http://www.abc.net/awstats/awstats.pl 進行訪問了。 3,cronolog (基本不用什麼修改) 4,crontab的修改 在 crontab中添加如下 命令保證15分鐘更新一次,也可以根據你自己的需要修改更新的間隔 代碼: */15 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.abc.net 四,安全性考慮 1, 以上的設置由於要cgi支持,也增加了安全隱患可以用awstats 自帶的awstats_buildstaticpages.pl來 生成靜態頁面 可以添加到crontab中 代碼: */15 * * * * /usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=www.abc.net -lang=cn -dir=/db/htdocs/www/awstat/ -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl 這樣沒15分鐘在/db/htdocs/www/awstat/ 下生成各種靜態頁面 2,保護/db/htdocs/www/awstat/禁止未授權用戶訪問 在httpd.conf中添加 代碼: <Directory "/db/htdocs/www/awstat/"> AuthType Basic AuthName "Restricted Files" AuthUserFile /usr/local/apache2/passwd/passwords Require user loguser </Directory> 如果www.abc.net 虛擬主機 主目錄為/db/htdocs/www/ 則在瀏覽器中輸入http://www.abc.net/awstat/awstats.www.abc.net.html 就可以通過認真訪問靜態頁面 3,如果用靜態頁面就不要忘了註釋掉 LoadModule cgi_module modules/mod_cgi.so 五,獻給我最愛的飛飛。 六,由於本人是初學者,本文略顯粗糙,如有任何指點和問題歡迎和我聯繫,大家相互交流提高 :hoash2003@hotmail.com 歡迎大家複製,但請大家保留本文的完整,謝謝!! |
webasp.net |