1. 程式人生 > >apache&tomcat access訪問日誌

apache&tomcat access訪問日誌

apache日誌一般有兩種:訪問日誌和錯誤日誌

錯誤日誌一般分位emerg、alert、crit、error、warn、notice、info、debug,緊急程度依次降低。一般工程出問題了都會選擇通過檢視錯誤日誌分析原因。

本次主要探討訪問日誌。。

如果你使用的是純Apache伺服器,那麼訪問日誌在Apache根目錄的conf資料夾內的httpd.conf檔案中配置。

如果你使用的是Apache tomcat伺服器,那麼訪問日誌在Apache根目錄的conf資料夾內的server.xml檔案中配置。

由於兩者並沒什麼大的差異,本文僅以tomcat為例。

tomcat中首先在server.xml檔案中配置如下:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="combined" prefix="localhost_access_log." suffix=".txt" fileDateFormat="yyyy-MM-dd.HH" resolveHosts="false"/>

className:直接照抄值org.apache.catalina.valves.AccessLogValve即可,Tomcat依靠此java類實現對訪問日誌檔案的控制。

directory:儲存的日誌檔案路徑,前提是相對於tomcat的當前路徑。可不設定,預設值是“logs”(相對於 $CATALINA_HOME)

prefix:儲存的日誌檔名字首。

suffix:儲存的日誌檔名字尾。

resolveHosts:如需將將遠端主機的IP地址通過DNS查詢轉換成主機名,則設為true。如果為false,忽略DNS查詢,直接報告遠端的IP地址。出於效能考慮最好設為false。

fileDateFormat:使用定製的日期格式決定日誌檔案翻轉的頻率。如此處設為yyyy-MM-dd.HH則每小時儲存一個。去掉的話。預設是一天。最好直接去掉即可,每天凌晨更新儲存一個當天的日誌檔案。

rotatable:預設值為true,用來決定日誌是否翻轉的標誌。如果為false,日誌檔案永遠不翻轉,並且忽略fileDataFormat。要謹慎使用。最好不要設定,直接使用預設值。否則日誌檔案永不翻轉,單一檔案過大無任何意義,還會給分析使用帶來極大不便。

pattern:屬性值由字串常量和pattern識別符號加上字首"%"組合而成。pattern識別符號加上字首"%",用來代替當前請求/響應中的對應的變數值。目前支援如下的pattern:

  • %a - 遠端IP地址
  • %A - 本地IP地址
  • %b - 傳送的位元組數,不包括HTTP頭,如果為零即沒有傳送位元組,使用"-"
  • %B - 傳送的位元組數,不包括HTTP頭
  • %h - 遠端主機名(如果resolveHost=false,遠端的IP地址)
  • %H - 請求協議
  • %l - 從identd返回的遠端邏輯使用者名稱(總是返回 '-')
  • %m - 請求的方法(GET,POST,等)
  • %p - 收到請求的本地埠號
  • %q - 查詢字串(如果存在,以 '?'開始)
  • %r - 請求的第一行,包含了請求的方法和URI
  • %s - 響應的狀態碼
  • %S - 使用者的session ID
  • %t - 日誌和時間,使用通常的Log格式
  • %u - 認證以後的遠端使用者(如果存在的話,否則為'-')
  • %U - 請求的URI路徑
  • %v - 本地伺服器的名稱
  • %D - 處理請求的時間,以毫秒為單位
  • %T - 處理請求的時間,以秒為單位
如果你不想自己理解上面的一長串定義,不必頭疼。你可以指定pattern的屬性值為common或者combined。 這兩個是已定義好的普遍使用的模式的名稱。分別對應如下:     common - %h %l %u %t "%r" %s %b
    combined - %h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" 

另外,還可以將request請求的查詢引數、session會話變數值、cookie值或HTTP請求/響應頭內容的變數值等內容寫入到日誌檔案。
它仿照了apache的語法:
    %{XXX}i xxx代表傳入的頭(HTTP Request)     %{XXX}o xxx代表傳出​​的響應頭(Http Resonse)
    %{XXX}c  xxx代表特定的Cookie名
    %{XXX}r  xxx代表ServletRequest屬性名     %{XXX}s xxx代表HttpSession中的屬性名

所以pattern可以寫成:

pattern="%{X-Forwarded-For-Pound}i %l %u %t "%r" %s %b %T"%{HTTP_X_UP_CALLING_LINE_ID}i" "%{x-up-calling-line-id}i""%{User-Agent}i""

或者直接使用最簡單的:

pattern="common"

注意:每次更改請重啟tomcat伺服器

我們可以參看一條例項進行具體分析:

pattern="common"  

或者pattern="%h %l %u %t "%r" %s %b"

上文已經提到以上兩種配置含義相同,當pattern如此設定時實際的一條訪問記錄如下(此後均為轉載):

216.35.116.91 - - [19/Aug/2000:14:47:37 -0400] "GET / HTTP/1.0" 200 654


這行內容由7項構成,上面的例子中有兩項空白,但整行內容仍舊分成了7項
第一項資訊是遠端主機的地址,即它表明訪問網站的究竟是誰。在上面的例子中,訪問網站的主機是216.35.116.91。

上例日誌記錄中的第二項是空白,用一個“-”佔位符替代。實際上絕大多數時候這一項都是如此。這個位置用於記錄瀏覽者的標識,這不只是瀏覽者的登入名字,而是瀏覽者的email地址或者其他唯一識別符號。

日誌記錄的第三項也是空白。這個位置用於記錄瀏覽者進行身份驗證時提供的名字。當然,如果網站的某些內容要求使用者進行身份驗證,那麼這項資訊是不會空白的。

日誌記錄的第四項是請求的時間。這個資訊用方括號包圍,而且採用所謂的“公共日誌格式”或“標準英文格式”。因此,上例日誌記錄表示請求的時間是2000年8月19日星期三14:47:37。時間資訊最後的“-0400”表示伺服器所處時區位於UTC之前的4小時。

第五項資訊或許是整個日誌記錄中最有用的資訊,它告訴我們伺服器收到的是一個什麼樣的請求。該項資訊的典型格式是“METHOD RESOURCE PROTOCOL”,即“方法 資源 協議”。在上例中,METHOD是GET,其他經常可能出現的METHOD還有POST和HEAD。此外還有不少可能出現的合法METHOD,但主要就是這三種。在這個例子中,瀏覽者請求的是/指向DocumentRoot目錄的index.html文件,但根據伺服器配置的不同它也可能指向其他的檔案。PROTOCOL通常是HTTP,後面再加上版本號。版本號或者是1.0,或者是1.1,但出現1.0的時候比較多。我們知道,HTTP協議是Web得以工作的基礎,HTTP/1.0是HTTP協議的早期版本,而1.1是最近的版本。當前大多數Web客戶程式仍使用1.0版本的HTTP協議。

日誌記錄的第六項資訊是狀態程式碼。它告訴我們請求是否成功,或者遇到了什麼樣的錯誤。大多數時候,這項值是200,它表示伺服器已經成功地響應瀏覽器的請求,一切正常。此處不準備給出狀態程式碼的完整清單以及解釋它們的含義,請參考相關資料瞭解這方面的資訊。但一般地說,以2開頭的狀態程式碼表示成功,以3開頭的狀態程式碼表示由於各種不同的原因使用者請求被重定向到了其他位置,以4開頭的狀態程式碼表示客戶端存在某種錯誤,以5開頭的狀態程式碼表示伺服器遇到了某個錯誤。

日誌記錄的第七項表示傳送給客戶端的總位元組數它告訴我們傳輸是否被打斷(即,該數值是否和檔案的大小相同)。把日誌記錄中的這些值加起來就可以得知伺服器在一天、一週或者一月內傳送了多少資料。


相關推薦

apache&tomcat access訪問日誌

apache日誌一般有兩種:訪問日誌和錯誤日誌 錯誤日誌一般分位emerg、alert、crit、error、warn、notice、info、debug,緊急程度依次降低。一般工程出問題了都會選擇通過檢視錯誤日誌分析原因。 本次主要探討訪問日誌。。 如果你使用的是純A

python統計apache、nginx訪問日誌IP訪問次數並且排序(顯示前20條)

als apache orm item lambda roo oot ipaddr str 前言:python統計apache、nginx訪問日誌IP訪問次數並且排序(顯示前20條)。其實用awk+sort等命令可以實現,用awk數組也可以實現,這裏只是用python嘗試下

tomcat-Dockerfile:可配置tomcat訪問日誌

1.需求    tomcat的容器啟動時,可以通過引數命令來決定容器中tomcat的server.xml的訪問日誌是否開啟。 2.tomcat-Dockerfile    FROM openjdk:8-jre ENV CATALINA_HOME

apache tomcat 預設訪問專案(直接輸入IP就能訪問專案)

轉自;http://blog.csdn.net/haolyj98/article/details/21937191  不知道願作者是誰        最近遇到一個問題,客戶那邊只能通過敲擊IP來訪問專案,不能輸入埠號和專案名稱。

配置Tomcat訪問日誌格式化輸出

在tomcat的server.xml檔案中,host主機配置區域找到類似如下(紅色部分)即為訪問日誌的配置:  <Host name="localhost"  appBase="webapps"             unpackWARs="true" autoDe

Tomcat訪問日誌-localhost_access_log和記錄Post請求引數

tomcat的日誌分類 http://blog.csdn.net/fly910905/article/details/78463909 tomcat產生的訪問日誌

tomcat訪問access日誌配置和記錄Post請求引數

一、配置與說明 tomcat訪問日誌格式配置,在config/server.xml裡Host標籤下加上 1 2 3 <Valve className="org.apache.catalina.valves.AccessLogValve" dire

apache訪問日誌access.log的解析以及如何將其匯入mysql

mysql> select * from apache_log limit 3; +----+-----------------+---------+--------------+-----------------------+-----------+--------+-----------------

Apache伺服器訪問日誌access.log中各項資料的具體解釋

一、訪問日誌資訊 當瀏覽器請求伺服器時,如果在伺服器上設定了訪問日誌,就會記錄下使用者的訪問記錄。 例如我訪問本地apache所產生的一條預設的日誌: 127.0.0.1 - - [03/Feb/2015:23:14:24 +0800] "GET / HTTP/1.1" 200 2        分為7個部分

出現錯誤日誌:The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path

div 錯誤日誌 a.out library logs openss product arc nec tomcat6出現錯誤日誌: 信息: The APR based Apache Tomcat Native library which allows optimal pe

apache訪問日誌 logstash 配置文件實例1

windows 配置文件 cookie chrome 日誌格式: LogFormat "%{clientip}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{clientip}i.%{cookie}n\""

LAMP-Apache訪問日誌

日誌文件 訪問日誌,記錄了網站訪問者的信息。在一些特殊情況,我們可以通過訪問日誌提取出我們需要的信息。如:網站受攻擊時發起源、統計訪問用戶大數據分布等。一、網站訪問日誌1、訪問日誌配置[[email protected]/* */ ~]# vi /usr/local/apache2.4/co

11.18 Apache用戶認證 - 11.19/11.20 域名跳轉 - 11.21 Apache訪問日誌

11.18 apache用戶認證 - 11.19/11.20 域名跳轉 - 11.21 apache訪問日誌- 11.18 Apache用戶認證 - 11.19/11.20 域名跳轉 - 11.21 Apache訪問日誌 - 擴展 - apache虛擬主機開啟php的短標簽 http://ask.apele

tomcat訪問日誌詳解

tomcat訪問日誌詳解tomcat日誌 tomcat日誌配置在server.xml裏的<host>標簽下加上<Valve className="org.apache.catalina.valves.AccessLogValve"directory="logs" prefix="localh

Apache用戶認證、域名跳轉、Apache訪問日誌

lamp架構Apache用戶認證1、編輯文件[root@centos7 ~]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf#打開網頁時,讓你輸入Apache認證的用戶名,密碼<VirtualHost *:80> DocumentR

LAMP架構(apache用戶認證,域名重定向,apache訪問日誌

apache用戶認證 域名重定向 apache訪問日誌 一、apache用戶認證用戶認證就是打開一個網站。會讓你輸入用戶名和密碼。對了才會讓你訪問HTTP,vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf編輯內容如下<Director

LAMP架構(apache訪問日誌不記錄靜態文件,靜態元素過期時間,apache日誌切割)

訪問日誌不記錄靜態文件 靜態文件過期 apache日誌切割 一、apache訪問日誌不訪問靜態文件瀏覽器打開後按f12會會出現一個界面,點network,會出現很多請求,訪問日誌裏會記載,有些靜態的圖片或者文件也會記載,太浪費磁盤空間和磁盤io。所以我們要讓日誌不記錄靜態文件[root@abc ~

apache訪問日誌管理

apache訪問日誌管理1.訪問日誌在之前的虛擬主機配置文件中,有兩行日誌相關的配置,末尾的combined是日誌的格式類型 ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" c

Apache的用戶認證、域名跳轉、Apache訪問日誌

Linux 學習筆記 Apache的用戶認證 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把111.com那個虛擬主機編輯成如下內容 <VirtualHost *:80>DocumentRoot "/data/w

Apache(httpd)配置--用戶認證,域名跳轉和訪問日誌配置

用戶認證 域名跳轉 訪問日誌 一、用戶認證 用戶認證功能就是在用戶訪問網站的時候,需要輸入用戶名密碼才能進行訪問。一些比較好總要的站點和網站後臺都會加上用戶認證,以保證安全。實例:下面對zlinux.com站點來做一個全站的用戶認證: 步驟1:編輯虛擬主機配置文件 [root@zlinux ~]#