Apache 日誌管理
阿新 • • 發佈:2018-01-27
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 日誌管理