Apache Log 欄位格式調整教學

瀏覽人次: 118
2024-07-29 更新

前言

Apache 允許使用者通過 LogFormat 來自定義日誌格式。以下是介紹在 apache 設定檔中的一些常用的日誌欄位,可用於追蹤更詳細的資訊。


Apache 日誌格式簡介

Apache日誌內容

Apache提供了幾種預設的日誌格式,例如:common和combined。

  1. common格式:記錄了用戶端的 IP 位址、請求時間、HTTP 狀態碼及回應大小等資訊。
  2. 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
快速跳轉目錄

✦ 集先鋒 Bimap – 企業建置高速穩定的海量日誌分析平台✦

集中不同的結構化資料和非結構化日誌,並進行關聯性的大數據整合,客製化儀表版、自訂事件告警、機器學習等等,以滿足各種大數據的應用場景和解決方案。