熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

Apache 服務器Log分析應用實例

2013-11-15 12:21:36  來源: PHP編程 

  所用軟件及工具
  
  Apache服務器 官方網址
  
  awstats 日志分析軟件 官方網址
  
  cronolog 日志截取軟件 官方網址
  
  環境構架
  
  RedHat AS
  
  Apache
  
  /configure –prefix=/usr/local/apache/ ——enableso
  
  make
  
  make install
  
   awstats
  
  直接tar到 /usr/local/awstats
  
  cronolog
  
  /configure –prefix=/usr/local/cronolog
  
  make
  
  make install
  
   配置
  
   apache
  
  a讓apache中的某個虛擬主機產生日志
  
  全局環境變量設置
  
  代碼LogFormat %h %l %u %t \%r\ %>s %b \%{Referer}i\ \%{UserAgent}i\ combined
  
  SetEnvIf Request_URI \gif$ gifimage
  
  SetEnvIf Request_URI \GIF$ gifimage
  
  SetEnvIf Request_URI \jpg$ gifimage
  
  SetEnvIf Request_URI \JPG$ gifimage
  
  SetEnvIf Request_URI \png$ gifimage
  
  SetEnvIf Request_URI \swf$ gifimage
  
  SetEnvIf Request_URI \SWF$ gifimage
  
  SetEnvIf Request_URI \css$ gifimage
  
  SetEnvIf Request_URI \CSS$ gifimage
  
  SetEnvIf Request_URI \js$ gifimage
  
  SetEnvIf Request_URI \JS$ gifimage
  
  SetEnvIf Request_URI \ico$ gifimage
  
  產生日志但不包括 圖片
  
  虛擬主機日志設置
  
  代碼<VirtualHost >
  
  ServerAdmin
  
  DocumentRoot /db/htdocs/www
  
  ServerName
  
  CustomLog |/usr/local/cronolog/sbin/cronolog /db/logs/www%Y%m%dlog combined env=!gifimage
  
  #用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/cgibin/
  
  #
  
  # This is to permit URL access to scripts/files in AWStats directory
  
  #
  
  <Directory /usr/local/awstats/wwwroot>
  
  Options None
  
  AllowOverride None
  
  Order allowdeny
  
  Allow from all
  
  </Directory>
  
  該配置在運行awstats/tools/awstats_configurepl 後會自動產生所以不用手動添加
  
  cawstats需要cgi的支持如果沒有添加cgi可以現在添加
  
  代碼
  
  /apxs c i /usr/local/src/_cgic
  
  再在 中添加
  
  代碼
  
  LoadModule cgi_module modules/mod_cgiso
  
  d為了保護日志統計信息需要對某些目錄進行認證設置需要認證模塊的支持
  
  代碼
  
  /apxs c i /usr/local/src/……/mod_authc
  
  再在 中添加
  
  代碼
  
  LoadModule auth_module modules/mod_authso
  
  配置需要認證的目錄
  
  代碼
  
  <Directory /db/htdocs/www/awstat/>
  
  AuthType Basic
  
  AuthName Restricted Files
  
  AuthUserFile /usr/local/apache/passwd/passwords
  
  Require user loguser
  
  </Directory>
  
  其中在 /usr/local/apache/passwd/下產生passwords 的密碼文件
  
  運行如下代碼產生用戶名為loguser用戶及其密碼
  
  代碼
  
  /usr/local/apache/bin/htpasswd c /usr/local/apache/passwd/passwords loguser
  
  注意先要在 /usr/local/apache/下建passwd目錄
  
  Awstats
  
  運行 /usr/local/awstats/tools/awstats_configurepl
  
  主要設置的是需要輸入做統計的主機名的配置文件名如
  
  接著修改 剛才配置是產生的awstats配置文件 默認位置在
  
  /etc/awstats/con 主要做指定log位置
  
  代碼
  
  LogFile=/db/logs/www%YYYY%MM%DDlog
  
  創建目錄mkdir /var/lib/awstats/
  
  執行
  
  代碼
  
  /usr/local/awstats/wwwroot/cgibin/awstatspl update config=
  
  更新update 後可以在浏覽器中輸入 進行訪問了
  
  cronolog (基本不用什麼修改)
  
  crontab的修改
  
  在 crontab中添加如下 命令保證分鐘更新一次也可以根據你自己的需要修改更新的間隔
  
  代碼
  
  */ * * * * /usr/local/awstats/wwwroot/cgibin/awstatspl update config=
  
  安全性考慮
  
   以上的設置由於要cgi支持也增加了安全隱患可以用awstats 自帶的awstats_buildstaticpagespl來 生成靜態頁面 可以添加到crontab中
  
  代碼
  
  */ * * * * /usr/local/awstats/tools/awstats_buildstaticpagespl update config= lang=cn dir=/db/htdocs/www/awstat/ awstatsprog=/usr/local/awstats/wwwroot/cgibin/awstatspl
  
  這樣沒分鐘在/db/htdocs/www/awstat/ 下生成各種靜態頁面
  
  保護/db/htdocs/www/awstat/禁止未授權用戶訪問
  
  在中添加
  
  代碼
  
  <Directory /db/htdocs/www/awstat/>
  
  AuthType Basic
  
  AuthName Restricted Files
  
  AuthUserFile /usr/local/apache/passwd/passwords
  
  Require user loguser
  
  </Directory>
  
  如果 虛擬主機 主目錄為/db/htdocs/www/ 則在浏覽器中輸入 就可以通過認真訪問靜態頁面
  
  如果用靜態頁面就不要忘了注釋掉
  
  LoadModule cgi_module modules/mod_cgiso
From:http://tw.wingwit.com/Article/program/PHP/201311/20802.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.