日誌作爲性能需求的依據以及性能分析的基礎,起着重要的作用。偶是菜鳥級別,一切從基礎開始。以下是IIS以及Apache日誌相關的一些資料,僅作記錄,以便後來查閱。
日誌分析
定義測試目標過程中,需要通過結構方面獲得系統的性能需求:
1.通過用戶提供的數據進行分析
2.通過系統日誌。當進行舊系統升級的時候,歷史數據即系統日誌的方式是獲得真實用戶需求最有效的參考數據。作爲常用的Web服務器IIS或者Apache,當用戶通過客戶端發送請求到Web服務器的時候,IIS或者Apache都會在訪問日誌中記錄下來。
IIS默認支持4中日誌格式:Microsoft IIS日誌文件格式,NCSA共用日誌文件格式,W3C擴展日誌文件格式,ODBC日誌記錄。如果使用IIS作爲Web服務器,建議使用W3C擴展日誌文件格式。
Apache服務器的訪問日誌格式支持自定義,打開Apache下的httpd.conf文件,使用LogFormat命令來查找系統默認的日誌格式,也可以自定義需要的日誌格式。以下爲httpd.conf中關於日誌格式的設置:
<IfModule log_config_module>
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
#
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
#
CustomLog "logs/access.log" common
以下爲access.log中一條記錄
127.0.0.1 - frank [07/Jun/2011:21:18:40 +0800] "GET /appach_pb.gif HTTP/1.1" 200 2326
127.0.0.1(%h)
記錄發送請求到服務器的客戶IP地址。如HostnameLookups設爲On,則服務器會嘗試解析這個IP地址的主機名並替換此處的IP地址,但不建議這樣做,他會明顯拖慢服務器,最好使用一個日誌後續處理器來判斷主機名。如果客戶和服務器之間存在代理,那麼記錄中的這個IP地址就是代理的IP地址。
-(%l)
這是由客戶端identd進程判斷RFC1413身份,輸出符號“-”代表此處的信息無效。除非在嚴格控制的內部網格中,此信息通常很不可靠,不應該被使用,只有在將IdentityCheck指令設置爲On的時候,Appache纔會試圖得到這項信息。
frank(%u)
這是HTTP認證系統得到的訪問該網頁的客戶標識(userid),環境變量REMOTE_USER會被設爲該值並提供給CGI腳本。如果狀態碼是401,表示客戶未通過認證。如果網頁沒有設置密碼保護,此項將是“-”。
[07/Jun/2011:21:18:40 +0800]這是服務器完成請求處理時的時間,其格式:【日/月/年:時:分:秒 時區】
"GET /appach_pb.gif HTTP/1.1" (\“%r\”)
引號中是客戶端發出的包含許多有用信息的請求行。另外,格式字符串“%m%U%q%H”會記錄動作,路徑,查詢字符串,協議,其輸出和“%r”一樣
200(%>s)指服務器返回給客戶的狀態碼
2326(%b)最後這項是返回給客戶端的不包含響應頭的字節數。如沒有信息返回,則此項應該是“-”,如果希望記錄爲“0”,就應該用%B
首先使用LogFormat命令LogFormat“%h%l%u%t\”%r\”%>s%b”common定義日誌格式,然後通過Customlog命令CustomLog”c:/logs/access.log”common爲日誌設置存放的地址。
日誌分析工具WebLog Expert
IIS日誌默認存放在inetpub\logs\LogFiles下