上一篇博文给大家介绍了几种常用的性能需求获取方法,多数方法主要依靠读者的沟通和分析能力以获取需求。相比之下,“通过服务器日志获取需求”的方法则比较具体和有效。一方面,它需要大家比较熟悉服务器日志。另一方面,由于有明确的真实数据做依托,较其他方法更加真实有效。因此,接下去,对“通过服务器日志获取需求”的方法进行重点讲解。
采用该方法的前提是:用户没有给出明确的性能需求;同时,系统的旧版本已经运行过一段时间;这段时间不能过短,期间所积累的数据应足以分析出客户业务使用情况才行。只有这样,才可借助该方法分析出客户的主要业务、点击量、用户访问数量等。
本篇博文以下的讲解主要针对Apache服务器的日志进行。大家可能从未接触过Apache服务器日志,因此,首先对此进行阐述。
Apache的日志功能主要是指其在运行中对服务器活动进行的记录。日志内容主要涵盖了服务器访问者身份、访问时间、具体访问情况及服务器运行错误信息等。显然,Apache的日志功能对于读者进一步了解服务器运行情况提供了有力帮助。
在Apache采用默认方式安装并运行后,将在安装目录的logs文件夹下生成如图所示的access.log和error.log两种日志文件。
图中左侧为access.log文件,记录所有访问者对服务器进行的详细操作;右侧为error.log文件,记录服务器运行期间,出现的错误与异常等。在此,研究服务器日志的主要目的是获取性能测试需求,即需要了解所有访问者对服务器的具体访问情况。因此,重点关注Apache的access.log文件。
注意:
Apache配置文件为httpd.conf,在配置文件中通过CustomLog命令可以设置日志文件存放路径,如“CustomLog /usr/local/apache/logs/access_log common”。
前面图中所示的access.log中各行内容均为什么含义呢?下面,结合其中的一条记录(如下图)来揭示谜底。
如上图,第一部分为127.0.0.1;第二、三部分用“-”进行标识;第四部分为[02/Jun/2009:22:12:30+0800];第五部分为”GET /HTTP/1.0”;第六部分为200;第七部分为40283。下面,依次对这七个部分进行介绍。
第一部分:远程主机的地址,标明访问者来源。第2个图中,来自于127.0.0.1的用户进行了一次网站访问,该项信息的格式用%h来表示。
第二部分:访问者的email地址或者其他唯一性标识。基于安全考虑,通常用“-”替代。该项信息的格式用%l来表示。
第三部分:访问者的用户名。基于安全考虑,通常也用“-”替代。该项信息的格式用%u来表示。
第四部分:访问请求发生的时间。该项信息的格式用%t来表示。
第五部分:访问请求的类型。此信息的典型格式为“方法-资源-协议”。方法包括GET、POST等;资源是指浏览者向服务器请求的文档或URL等;协议通常是HTTP+版本号。该项信息的格式用\"%r"\来表示。
第六部分:服务器返回的状态码,标明请求的结果。如“200”为请求成功,“404”为页面未找到,“500”为服务器内部错误等,对于各类状态码明确含义,有兴趣的读者请参阅相关资料深入学习。该项信息的格式用%s来表示。
第七部分:响应给客户端的总字节数。该项信息的格式用%b来表示。
值得一提的是,读者可在Apache的配置文件httpd.conf中,通过配置LogFormat的参数来自行定制日志文件的记录格式。如:LogFormat "%h %l %u %t \"%r\" %>s %b" common表示日志中记录上述七部分内容。
注意:
由于我们的目的是让大家了解日志内容,帮助大家更好的开展性能测试,所以内容介绍较为概括,有兴趣的读者可参考相关资料进一步学习。
终于清楚日志中内容的含义了!但是日志中有那么多的请求记录信息,如何进行统计分析以得出性能需求呢?难道一条条逐一统计?当然不是!这样做的效率未免太低了。下面讲解的WebLog Expert工具可以帮助我们方便地进行日志分析,这就是下篇博文跟大家仔细讨论问题了。