posts - 156,  comments - 601,  trackbacks - 0
          常使用web服務(wù)器的朋友大都了解,一般的web server有兩部分日志:
              一是運(yùn)行中的日志,它主要記錄運(yùn)行的一些信息,尤其是一些異常錯(cuò)誤日志信息
              二是訪問日志信息,它記錄的訪問的時(shí)間,IP,訪問的資料等相關(guān)信息。
             
          現(xiàn)在我來和大家介紹一下利用tomcat產(chǎn)生的訪問日志數(shù)據(jù),我們能做哪些有效的分析數(shù)據(jù)?

          首先是配置tomcat訪問日志數(shù)據(jù),默認(rèn)情況下訪問日志沒有打開,配置的方式如下:
              編輯 ${catalina}/conf/server.xml文件.注:${catalina}是tomcat的安裝目錄
              把以下的注釋(<!-- -->)去掉即可。
                      <!--
                  <Valve className="org.apache.catalina.valves.AccessLogValve"
                           directory="logs"  prefix="localhost_access_log." suffix=".txt"
                           pattern="common" resolveHosts="false"/>
                  -->
              其中 directory是產(chǎn)生的目錄 tomcat安裝${catalina}作為當(dāng)前目錄
              pattern表示日志生產(chǎn)的格式,common是tomcat提供的一個(gè)標(biāo)準(zhǔn)設(shè)置格式。其具體的表達(dá)式為 %h %l %u %t "%r" %s %b
              但本人建議采用以下具體的配置,因?yàn)闃?biāo)準(zhǔn)配置有一些重要的日志數(shù)據(jù)無法生。
                  %h %l %u %t "%r" %s %b %T 
          具體的日志產(chǎn)生樣式說明如下(從官方文檔中摘錄):
              * %a - Remote IP address
              * %A - Local IP address
              * %b - Bytes sent, excluding HTTP headers, or '-' if zero
              * %B - Bytes sent, excluding HTTP headers
              * %h - Remote host name (or IP address if resolveHosts is false)
              * %H - Request protocol
              * %l - Remote logical username from identd (always returns '-')
              * %m - Request method (GET, POST, etc.)
              * %p - Local port on which this request was received
              * %q - Query string (prepended with a '?' if it exists)
              * %r - First line of the request (method and request URI)
              * %s - HTTP status code of the response
              * %S - User session ID
              * %t - Date and time, in Common Log Format
              * %u - Remote user that was authenticated (if any), else '-'
              * %U - Requested URL path
              * %v - Local server name
              * %D - Time taken to process the request, in millis
              * %T - Time taken to process the request, in seconds

          There is also support to write information from the cookie, incoming header, the Session or something else in the ServletRequest. It is modeled after the apache syntax:

              * %{xxx}i for incoming headers
              * %{xxx}c for a specific cookie
              * %{xxx}r xxx is an attribute in the ServletRequest
              * %{xxx}s xxx is an attribute in the HttpSession


          現(xiàn)在我們回頭再來看一下下面這個(gè)配置 %h %l %u %t "%r" %s %b %T 生產(chǎn)的訪問日志數(shù)據(jù),我們可以做哪些事?
          先看一下,我們能得到的數(shù)據(jù)有:
              * %h 訪問的用戶IP地址
              * %l 訪問邏輯用戶名,通常返回'-'
              * %u 訪問驗(yàn)證用戶名,通常返回'-'
              * %t 訪問日時(shí)
              * %r 訪問的方式(post或者是get),訪問的資源和使用的http協(xié)議版本
              * %s 訪問返回的http狀態(tài)
              * %b 訪問資源返回的流量
              * %T 訪問所使用的時(shí)間
             
          有了這些數(shù)據(jù),我們可以根據(jù)時(shí)間段做以下的分析處理(圖片使用jfreechart工具動(dòng)態(tài)生成):
            * 獨(dú)立IP數(shù)統(tǒng)計(jì)
            * 訪問請(qǐng)求數(shù)統(tǒng)計(jì)
            * 訪問資料文件數(shù)統(tǒng)計(jì)
            * 訪問流量統(tǒng)計(jì)
            * 訪問處理響應(yīng)時(shí)間統(tǒng)計(jì)
            * 統(tǒng)計(jì)所有404錯(cuò)誤頁面
            * 統(tǒng)計(jì)所有500錯(cuò)誤的頁面
            * 統(tǒng)計(jì)訪問最頻繁頁面
            * 統(tǒng)計(jì)訪問處理時(shí)間最久頁面
            * 統(tǒng)計(jì)并發(fā)訪問頻率最高的頁面



























          分析工具包括兩大部分,一個(gè)是后臺(tái)解釋程序,每天執(zhí)行一次對(duì)后臺(tái)日志數(shù)據(jù)進(jìn)行解析后保存到數(shù)據(jù)庫中。
          第二個(gè)是顯示程序,從數(shù)據(jù)庫中查詢數(shù)據(jù)并生成相應(yīng)的圖表信息。

          posted on 2008-04-14 08:11 x.matthew 閱讀(15768) 評(píng)論(80)  編輯  收藏 所屬分類: Application Server
          主站蜘蛛池模板: 湄潭县| 杭锦后旗| 灵丘县| 东乡族自治县| 墨竹工卡县| 尚义县| 永宁县| 德安县| 卢湾区| 平顶山市| 寿宁县| 轮台县| 铁岭市| 桃源县| 乌苏市| 长兴县| 星子县| 登封市| 九江市| 上栗县| 上高县| 和平区| 志丹县| 林芝县| 宜昌市| 黄石市| 柳林县| 海安县| 房山区| 芦山县| 桑日县| 天台县| 资中县| 云霄县| 文化| 济阳县| 江华| 成安县| 安远县| 青海省| 东明县|