LoaRunner性能测试系统学习教程:日志文件分析(8)

上期我们讲到LoaRunner性能测试MPM相关参数,这期我们讲LoaRunner性能测试日志文件分析。

日志文件分析

为了有效地管理web服务器,以及获取有关服务器活动和性能相关的数据反馈。Apache HTTP Server提供了非常全面和灵活的日志功能。主要介绍如何配置日志文件以及理解日志文件中所包含的内容。主要介绍的日志文件有两类:access_log日志文件和error_log日志文件。

access_log日志文件

access_log日志文件主要是记录客户端访问服务器的所有请求信息。access_log日志文件所在位置由customLog指令设置,其指令语法如下:  

CustomLog"logs/access_log"common  

设置access_log日志文件格式可以使用LogFormat指令

日志的格式设置参数如下:  

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

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

日志格式设置有两种:

common和combined

一般我们使用的是默认的common格式。  

上面是日志记录内容的格式定义,格式是由百分号和相关指令组成,每个指令都表示服务器的一条特定的日志信息,文字字符也以字符串复制到日志输出中,如果要表示引号字符必须使用反斜杠进行转义,以防止将其解释为格式字符串的结尾。

common格式的日志内容如下:  

192.168.40.134--[19/Oct/2019:16:23:19+0800]"GET/ecshop3/images/201605/thumb_img/62_thumb_G_1462952557730.jpgHTTP/1.1"2002064  

192.168.40.134--[19/Oct/2019:16:23:19+0800]"GET/ecshop3/data/afficheimg/1462958213922967180.jpgHTTP/1.1"200158999  

日志内容各部分的含义如下:  

192.168.40.134(%h)  

表示向服务器发出请求的客户端(远程主机)的IP地址。

如果将HostnameLookups指令设置为On,那么这个内容可能为主机名,而非IP地址。

但是,不建议使用此配置,因为它会显著降低服务器的速度。相反,最好使用日志后处理器(如logresolve)来确定主机名。  

需要注意的是我们看到日志文件内容中的IP地址不一定是用户所在机器的地址。如果在用户和服务器之间存在代理服务器,则该地址将是代理的地址,而不是始发机器的IP地址。  

-(%l)  

输出中出现的“-”字符,是连字符的意思,表示请求的信息不可用,这是由客户机的RFC1413本身的一些特性标识的,这种信息是很不可靠的,但是如果将IdentityCheck设置为On,那么apache服务器才会尝试去确定此信息。  

-(%u)  

这是访问服务器的用户ID,这个ID是由HTTP身份验证来确定的,这个值一般是保存到远程用户环境变量中的CGI脚本中。

如果服务器不信任此值,因为用户尚未通过身份验证。如果文档不受密码保护,则此部分将与前一部分一样为“-”。  

[19/Oct/2019:16:23:19+0800](%t)  

表示访问服务器时,服务器的时间。+0800表示服务器所处时区位于UTC之后的8小时。  

GET/ecshop3/images/201605/thumb_img/62_thumb_G_1462952557730.jpgHTTP/1.1(\"%r\")  

表示访问服务器的资源的相关信息,包括请求方式、服务器资源位置、客户端向服务器发送请求时的协议和协议版本信息。  

200(%>s)  

这表示客户端请求服务器后返回的状态码,此信息非常有价值,它揭示了请求是否成功以及失败的。关于HTTP响应状态码的详细可以查看HTTP规范RFC2616第10节内容。 

2064(%b)  

表示服务器发送给客户端的字节数,但这个字节数,不包括响应头的信息

如果服务器没有向客户端发送任何内容,则该值为“-”,若记录为0则表示不记录任何内容。  

Combined格式的日志内容如下:  

127.0.0.1-frank[10/Oct/2000:13:55:36-0700]"GET/apache_pb.gifHTTP/1.0"2002326"http://www.example.com/start.html""Mozilla/4.08[en](Win98;I;Nav)"  

Combined日志内容与common日志内容信息差不多

只是多出了以下两个字段:  

"http://www.example.com/start.html"(\"%{Referer}i\")  

表示客户端所访问资源的引用站点。如实例中表示是所访问资源apache_pb.gif的链接或包含apache_pb.gif的页面。  

"Mozilla/4.08[en](Win98;I;Nav)"(\"%{User-agent}i\")  

表示发送HTTP请求的客户端自身的标识信息。 

error_log日志文件

error_log记录两类错误信息:一是文档类的错误信息;二是CGI编译类的错误信息;是最要的日志文件之一,错误日志命名和位置是由ErrorLog指令来设置,error_log日志文件会记录处理请求时遇到的任何错误相关信息,当启动服务器或服务器操作出现问题时,首先会分析error_log日志文件,分析错误的详细信息以及如何解决问题。  

error_log错误日志路径设置如下:  

ErrorLog"logs/error_log"  

错误日志的格式由ErrorLogFormat指令定义

您可以使用该指令自定义记录的值。如果不指定格式,则默认为“格式定义”。典型的日志消息如下:  

[FriSep0910:42:29.9020222011][core:error][pid35708:tid4328636416][client72.15.99.187]Filedoesnotexist:/usr/local/apache2/htdocs/favicon.ico  

第一部分内容表示记录错误日志信息的日期和时间。  

第二部分内容表示引起错误信息的是模块,以及该错误信息的严重级别。  

第三部分内容表示产生错误信息的进程号和线程号。  

第四部分内容表示发送请求的客户端信息。  

第五部分内容表示错误的详细信息,这种情况表示找不到资源,所访问的资源不存在。  

在linux或unix操作系统下,如果需要动态查看日志信息变化情况可以使用以下命令:  

tail-ferror_log  

但这个命令不具体统计功能,如果需要对日志文件进行相关的统计的话,使用上面的命令是不够的。关于如果分析日志文件在下面的小节中我们会详细介绍。

 日志文件分析工具或指令

上面介绍了两种常见的日志文件,在工作中很多人可能会使用tail-f命令来查看日志文件。但这个命令是不具体统计功能的,它只能实时的看到最后几行日志信息进行变化。并且在实际工作中这个日志文件可能会很多,有的数据量比较多的时候可能一天会产生几个TB的日志信息,这样给统计工作带来难度,那么如果我们需要日志文件进行分析和统计那怎么处理呢?  

一般分析日志文件有两种方法:一是使用分析工具ApacheLogsViewer;二是使用命令进行统计。  

1)ApacheLogsViewer  

ApacheLogsViewer(ALV)是一个免费且功能强大的工具,可让您更轻松地监视,查看和分析Apache/IIS/nginx日志。它为日志文件提供搜索和筛选功能,并根据其状态代码突出显示各种HTTP请求。该工具还带有生成报告功能,因此您可以在几秒钟内生成一个饼图/条形图。与此相关的还有统计信息,您可以设置相关的筛选条件对日志信息进行筛选和统计。  

关于分析服务器相关日志信息的工具其实也不少,不是只有这款工具,大家有兴趣的话可以在网上找到不少关于这类日志文件的分析工具。  

关于ApacheLogsViewer工具如何使用我们就做介绍了,这个使用比较简单,大家安装好就会使用,ApacheLogsViewer主界面如图所示。

2)Unix/Linux命令统计  

除了使用工具统计外还可以使用一些常见的命令对日志文件进行分析与统计。以下是一些常见的用于监控和统计日志文件的命令。  

动态查看日志文件  

tail-faccess_log  

查看apache的进程数  

psaux|grep'httpd'|wc-l  

分析某天一共的请求数  

cataccess_log|grep'15/Jun/2019'|awk'{print$2}'|sort|uniq-c  

分析某天指定的IP访问的URL情况  

cataccess_log|grep'15/Jun/2019'|grep'192.168.40.134'|awk'{print$7}'|sort|uniq-c|sort-nr  

查看当天访问排行前10的url  

cataccess_log|grep'15/Jun/2019'|awk'{print$7}'|sort|uniq-c|sort-nr|head-n10  

查看访问次数最多的时间点  

awk'{print$4}'access_log|cut-c14-18|sort|uniq-c|sort-nr|head 

小结

主要介绍了Apache服务器的监控与调优。不管是什么类型的web服务器还是应用服务器,我们做性能测试首先应该掌握如何监控服务器,主要介绍了两种监控服务器的方法:status和apachtop两种。监控服务器是为了得到服务器的实时数据,为分析做准备。

但仅仅是监控还是不够的,我们必须知道Apache工作原理

分析那些指令会影响服务器的信息,当然对Apache服务器来说,其调优最核心的就是MPM相关参数的设置,这些参数设置的如何会直接影响服务器的性能。所以必须对MPM的工作原理和参数有深入的了解。

最后才是分析日志文件,通过分析日志文件来确定请求的相关信息,协助判断结果,分析日志的文件通常会有两种一是使用工具分析日志文件;二是使用相关的linux命令来分析和统计日志文件。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354

推荐阅读更多精彩内容