1. 程式人生 > >Apache 日誌管理

Apache 日誌管理

apache 以及 完成 路徑 值範圍 acc ota 大小 錯誤

日誌參數

技術分享圖片
%% 百分號(Apache2.0.44或更高的版本)
%a 遠端IP地址
%A 本機IP地址
%B 除HTTP頭以外傳送的字節數
%b 以CLF格式顯示的除HTTP頭以外傳送的字節數,也就是當沒有字節傳送時顯示’-‘而不是0。
%{Foobar}C 在請求中傳送給服務端的cookieFoobar的內容。
%D 服務器處理本請求所用時間,以微為單位。
%{FOOBAR}e 環境變量FOOBAR的值
%f 文件名
%h 遠端主機
%H 請求使用的協議
%{Foobar}i 發送到服務器的請求頭Foobar:的內容。
%l 遠端登錄名(由identd而來,如果支持的話),除非IdentityCheck設為”On“,否則將得到一個”-”。
%m 請求的方法 %{Foobar}n 來自另一個模塊的註解Foobar的內容。 %{Foobar}o 應答頭Foobar:的內容。 %p 服務器服務於該請求的標準端口。 %P 為本請求提供服務的子進程的PID。 %{format}P 服務於該請求的PID或TID(線程ID),format的取值範圍為:pid和tid(2.0.46及以後版本)以及hextid(需要APR1.2.0及以上版本) %q 查詢字符串(若存在則由一個”?“引導,否則返回空串) %r 請求的第一行 %s 狀態。對於內部重定向的請求,這個狀態指的是原始請求的狀態,—%>s則指的是最後請求的狀態。 %t 時間,用普通日誌時間格式(標準英語格式)
%{format}t 時間,用strftime(3)指定的格式表示的時間。(默認情況下按本地化格式) %T 處理完請求所花時間,以秒為單位。 %u 遠程用戶名(根據驗證信息而來;如果返回status(%s)為401,可能是假的) %U 請求的URL路徑,不包含查詢字符串。 %v 對該請求提供服務的標準ServerName。 %V 根據UseCanonicalName指令設定的服務器名稱。 %X 請求完成時的連接狀態: X= 連接在應答完成前中斷。 += 應答傳送完後繼續保持連接。 -= 應答傳送完後關閉連接。
日誌參數 技術分享圖片
通用日誌格式(CLF)
“%h %l %u %t \”%r\” %>s %b”

帶虛擬主機的通用日誌格式
“
%v %h %l %u %t \”%r\” %>s %b” NCSA擴展/組合日誌格式 “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-agent}i\”" Referer日誌格式 “%{Referer}i -> %U” Agent(Browser)日誌格式 “%{User-agent}i”
日誌常見的格式串 技術分享圖片
# 訪問日誌參數
Customlog 日誌創建目錄 調用日誌格式

# 錯誤日誌參數
Errorlog 日誌創建目錄
日誌調用參數

日誌簡要說明

訪問日誌:apache2/logs/access_log 錯誤日誌:/usr/local/apache2/logs/error_log
查看訪問IP 用戶 時間段 GET動作行為 URL 狀態碼 大小
192.168.1.151 - - [24/Dec/2017:14:09:10 +0800] "GET /static/image/admincp/scrollu.gif HTTP/1.1" 200 335
192.168.1.151 - - [24/Dec/2017:14:09:09 +0800] "GET /static/image/admincp/scrolld.gif HTTP/1.1" 200 335
192.168.1.151 - - [24/Dec/2017:14:09:10 +0800] "GET /static/image/admincp/bg_repno.gif HTTP/1.1" 200 5117

添加日誌格式

1、修改主配置文件、添加xsk日誌格式

vim apache2/conf/httpd.conf

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

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

    LogFormat "%h %l %u %t \"%r\" %>s %b" xsk
註:訪問日誌權限參數,每個字段代表一個含義。
   Referrer         可識訪問用戶來源。
   User-agent    可查看識別設備信息瀏覽器信息。

註:combined與common是默認的。

註:添加完成後可直接在 虛擬主機內調用。

  

虛擬主機添加日誌

1、修改虛擬主機文件、添加日誌配置

技術分享圖片
# 添加日誌
<VirtualHost *:80>
    DocumentRoot "/usr/local/html"
    ServerName www.server.com
    Customlog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/server_access_%Y%m%d.log 86400 " xsk env=!image-request
    Errorlog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/server_error_%Y%m%d.log 86400 "
<Directory /usr/local/html>
    require all granted
</Directory>
</VirtualHost>
配置文件
說明:

# 訪問日誌參數
Customlog

# 調用rotatelogs日誌管理命令
|/usr/local/apache2/bin/rotatelogs -l 

# 日誌名稱 絕對路徑 年月日.log                
/usr/local/apache2/logs/server_access_%Y%m%d.log

# 每86400秒(1天) 切割一次日誌 
86400

# 調用日誌格式
xsk

# 捕獲日誌信息,如果為圖片就 輸出image-request
env=!image-request

Apache 日誌管理