tomcat日誌記錄用戶行爲

以前都利用apache的日誌來作分析統計的,因爲如今使用了阿里雲的SLB直接轉發到後端tomcat應用服務器.沒法查看到相關日誌行爲。web

查了度娘才知道原來tomcat自身日誌能夠記錄到用戶訪問IP,方式,狀態,流量等。apache


轉載引用下如下仁兄的博文,也給各位做個參考:後端

常使用web服務器的朋友大都瞭解,通常的web server有兩部分日誌:
一是運行中的日誌,它主要記錄運行的一些信息,尤爲是一些異常錯誤日誌信息
二是訪問日誌信息,它記錄的訪問的時間,IP,訪問的資料等相關信息。

如今我來和你們介紹一下利用 tomcat產生的訪問日誌數據,咱們能作哪些有效的分析數據?
首先是配置 tomcat訪問日誌數據,默認狀況下訪問日誌沒有打開,配置的方式以下:
編輯 ${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是產生的目錄 tomcat安裝${catalina}做爲當前目錄
pattern表示日誌生產的格式,common是 tomcat提供的一個標準設置格式。其具體的表達式爲 %h %l %u %t "%r" %s %b
但本人建議採用如下具體的配置,由於標準配置有一些重要的日誌數據沒法生。
%h %l %u %t "%r" %s %b %T?
具體的日誌產生樣式說明以下(從官方文檔中摘錄):
tomcat

%a - 遠端IP地址 服務器

%A - 本地IP地址 cookie

%b - 發送的字節數,不包括HTTP頭,若是爲0,使用"-" session

%B - 發送的字節數,不包括HTTP頭 併發

%h - 遠端主機名(若是resolveHost=false,遠端的IP地址) ide

%H - 請求協議 工具

%l - 從identd返回的遠端邏輯用戶名(老是返回 '-')

%m - 請求的方法(GET,POST,等)

%p - 收到請求的本地端口號

%q - 查詢字符串(若是存在,以 '?'開始)

%r - 請求的第一行,包含了請求的方法和URI

%s - 響應的狀態碼

%S - 用戶的session ID

%t - 日誌和時間,使用一般的Log格式

%u - 認證之後的遠端用戶(若是存在的話,不然爲'-')

%U - 請求的URI路徑

%v - 本地服務器的名稱

%D - 處理請求的時間,以毫秒爲單位

%T - 處理請求的時間,以秒爲單位

另外還能夠將cookie, 客戶端請求中帶的HTTP頭(incoming header), 會話(session)或是ServletRequest中的數據都寫到Tomcat的訪問日誌中,你能夠用下面的語法來引用。
%{xxx}i – 記錄客戶端請求中帶的HTTP頭xxx(incoming headers)
%{xxx}c – 記錄特定的cookie xxx
%{xxx}r – 記錄ServletRequest中的xxx屬性(attribute)
%{xxx}s – 記錄HttpSession中的xxx屬性(attribute)  


如今咱們回頭再來看一下下面這個配置 %h %l %u %t "%r" %s %b %T 生產的訪問日誌數據,咱們能夠作哪些事?
先看一下,咱們能獲得的數據有:
* %h 訪問的用戶IP地址
* %l 訪問邏輯用戶名,一般返回'-'
* %u 訪問驗證用戶名,一般返回'-'
* %t 訪問日時
* %r 訪問的方式(post或者是get),訪問的資源和使用的http協議版本
* %s 訪問返回的http狀態
* %b 訪問資源返回的流量
* %T 訪問所使用的時間

有了這些數據,咱們能夠根據時間段作如下的分析處理(圖片使用jfreechart工具動態生成):
* 獨立IP數統計
* 訪問請求數統計
* 訪問資料文件數統計
* 訪問流量統計
* 訪問處理響應時間統計
* 統計全部404錯誤頁面
* 統計全部500錯誤的頁面
* 統計訪問最頻繁頁面
* 統計訪問處理時間最久頁面

* 統計併發訪問頻率最高的頁面

根據本身需求:設置

 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
              prefix="localhost_access_log." suffix=".txt"
              pattern="%h %l %u %t &quot;%r&quot; %s %b %T" />

設置好後,從新啓動tomcat便可

查看localhost_access_log日誌以下:

192.168.1.215 - - [20/Mar/2014:15:33:54 +0800] "GET /sso/serviceValidate?service=http%3A%2F%2Fwww.cit.com%3A80%2Fchange%2Fparser.ctrl%3F%24action%3DsaveUserConfig&ticket=ST-45-5DAyuDeZeatCdrCrKHeA-sso&webServerIPandPort=http://192.168.1.215:8080 HTTP/1.1" 200 298 "-" "Java/1.6.0_13"


轉載自:http://blog.csdn.net/chengg0769/article/details/1741739

相關文章
相關標籤/搜索