日志作为性能需求的依据以及性能分析的基础,起着重要的作用。偶是菜鸟级别,一切从基础开始。以下是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下