Apache紀錄檔格式


Apache紀錄檔提供有助於檢測伺服器常見問題的詳細資訊。要記錄網站的存取紀錄檔,必須啟用mod_log_configmodule

apache組態檔案中有三個指令,即 -

  • TransferLog:建立紀錄檔檔案。
  • LogFormat:指定自定義格式。
  • CustomLog:建立和格式化紀錄檔檔案。

TransferLog指令在apache組態檔案中可用,它根據設定引數輪轉虛擬主機紀錄檔檔案。

<VirtualHost www.example.com>

  ServerAdmin [email protected]
  DocumentRoot /usr/www/example/httpd/htdocs/
  ServerName www.example.com
  ServerAlias example.com www.example
  ErrorLog /usr/www/example/httpd/logs/error_log
  TransferLog /usr/www/example/httpd/logs/accesslog
  CustomLog /usr/www/example/httpd/logs/accesslog combined

</VirtualHost>

兩種型別的Apache紀錄檔格式

  • 通用紀錄檔格式
  • 組合紀錄檔格式

可以通過編輯apache組態檔案來啟用它們,即apache2.conf(Debian/ubuntu)或httpd.conf(基於rpm的系統)檔案。

通用紀錄檔格式

LogFormat "%h %l %u %t \"%r\" %>s %b" common

CustomLog logs/access_log.log common

Apache生成的通用紀錄檔內容範例如下 -

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

組合紀錄檔格式

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

CustomLog log/access_log.log combined

在上面格式中,

  • %h是遠端主機
  • %l是由identd確定的使用者的身份
  • %u是HTTP身份驗證確定的使用者名
  • %t是伺服器處理完請求的時間。
  • %r是來自用戶端的請求行(「GET/HTTP/1.0」)。
  • %> s是從伺服器傳送到用戶端的狀態程式碼(500,404等)
  • %b是用戶端響應的大小(以位元組為單位)
  • Referer是連結到此URL的頁面。

使用者代理是瀏覽器標識字串。

Apache生成的組合紀錄檔:

199.180.11.91 - - [06/Mar/2019:04:22:58 +0100] "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"

自定義紀錄檔為伺服器上的每個虛擬主機建立單獨的紀錄檔檔案。它需要在組態檔案的虛擬主機部分中指定。

可以看到下面提到的虛擬主機組態,生成的紀錄檔將為該虛擬主機自定義,並且將組合格式。