前言
Apache 允許使用者通過 LogFormat 來自定義日誌格式。以下是介紹在 apache 設定檔中的一些常用的日誌欄位,可用於追蹤更詳細的資訊。
Apache 日誌格式簡介
Apache日誌內容
Apache提供了幾種預設的日誌格式,例如:common和combined。
- common格式:記錄了用戶端的 IP 位址、請求時間、HTTP 狀態碼及回應大小等資訊。
- combined格式:在 common的基礎上增加了引用頁面和使用者資訊。
日誌欄位
客戶端相關
- %v:虛擬主機名
- %p:伺服器 port
- %h:客戶端的 IP 地址
- %l:遠端用戶識別
- %u:已驗證的用戶名
請求和響應相關
- %t:請求時間 (時間格式:%d/%b/%Y:%H:%M:%S %z)
- \"%r\":請求行(GET / HTTP/1.1)
- %s:響應狀態碼
- %O:響應大小(以字節為單位,包括 HTTP 標頭)
- %D:請求處理時間(以微秒為單位)
- %T:請求處理時間(以秒為單位)
HTTP 標頭相關
- \"%{Referer}i\":引用網址
- \"%{User-Agent}i\":用戶代理
- %{Cookie}i:請求中的 Cookie
- %{Set-Cookie}o:響應中的 Cookie
- %{Host}i:請求中的 Host 標頭
新增、修改欄位範例
查看 apache 設定檔內容
vim /etc/apache2/apache2.conf
可以看到其中設定參數 LogFormat 的部分
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %D" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %D" combined LogFormat "%h %l %u %t \"%r\" %>s %O %D" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent
產生出的 apache access log 內容則會呈現以下情況
10.99.1.253 - - [23/Jul/2024:13:57:03 +0800] "GET / HTTP/1.1" 200 3460 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" 10.99.1.253 - - [23/Jul/2024:13:57:04 +0800] "GET /icons/ubuntu-logo.png HTTP/1.1" 200 3607 "http://10.99.1.248/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" 10.99.1.253 - - [23/Jul/2024:13:57:04 +0800] "GET /favicon.ico HTTP/1.1" 404 489 "http://10.99.1.248/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
新增欄位資訊
vim /etc/apache2/apache2.conf
在設定參數 LogFormat 的尾端加入請求時間 %D
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %D" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %D" combined LogFormat "%h %l %u %t \"%r\" %>s %O %D" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent
產生的 apache access log 尾端則會新增時間欄位 (毫秒)
10.99.1.117 - - [24/Jul/2024:12:03:48 +0800] "GET / HTTP/1.1" 200 3460 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" 2388 10.99.1.117 - - [24/Jul/2024:12:03:48 +0800] "GET /icons/ubuntu-logo.png HTTP/1.1" 200 3607 "http://10.99.1.248/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" 562 10.99.1.117 - - [24/Jul/2024:12:03:48 +0800] "GET /favicon.ico HTTP/1.1" 404 489 "http://10.99.1.248/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" 389