美文网首页
性能测试——Nginx日志分析

性能测试——Nginx日志分析

作者: 成功在于实践 | 来源:发表于2020-07-05 15:00 被阅读0次

问题

Nginx有访问日志access.log,用户的每一次HTTP请求,都会在access.log中写入一条记录,记录中包含了请求ip、请求时间、接口url、HTTP状态码、客户端浏览器等信息。

access.log格式如下

10.0.0.4 - - [29/Jul/2018:03:31:57 +0800] "GET /PerfTeach/login.jsp HTTP/1.1" 200 1034 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "2.51"

10.0.0.4 - - [29/Jul/2018:03:31:57 +0800] "GET /PerfTeach/style/bootstrap.min.css HTTP/1.1" 200 19445 "http://10.0.0.7/PerfTeach/login.jsp" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "6.14"

要求使用一条Linux命令,分析access.log,统计日志中每个HTTP请求的访问次数,并且列出前10个访问次数最多的请求。

PS:access.log网盘地址

https://pan.baidu.com/s/1OdegH1r214bAnQdOmNn88Q

分析

首先对题目需求进行拆题

1、 过滤出每一行日志中的目标请求url

2、 统计每个url出现的次数

3、 按照url的次数进行倒序排列

4、 将排序后的结果取前10个

介绍几个相关的Linux命令

cat:展示文本文件中的所有数据

awk:对文本行数据进行过滤

uniq:统计连续重复数据出现的次数

sort:排序命令

head:获取前N个数据

接下来使用上述命令一步步进行文件处理

第一步

浏览access.log中所有数据

cat access.log

第二步

将上一步文件中所有的数据通过管道符传递给awk进行过滤处理

cat access.log | awk -F " '{print $2}'

其中,-F ”是指定行的分隔符为”{print $2}是指打印分隔符分隔后的第二段字符串(就是url)

第三步

将上一步的过滤结果通过管道符传递给sort,sort命令可以按照字母顺序进行排序

cat access.log | awk -F " '{print $2}' | sort

第四步

将上一步的结果传递给uniq命令,uniq命令可以统计某行数据连续出现的次数,-c参数可以将次数打印出来

cat access.log | awk -F " '{print $2}' | sort | uniq -c

第五步

将上一步的结果再次传递给sort命令

cat access.log | awk -F " '{print $2}' | sort | uniq -c | sort -rn

-rn 参数意思是按照数字倒序排列

第六步

将上一步结果传递给head命令

cat access.log | awk -F " '{print $2}' | sort | uniq -c | sort -rn | head -10

-10代表打印前10行

最终效果如下:

17 GET /PerfTeach/style/bootstrap.min.css HTTP/1.1

17 GET /PerfTeach//bootstrap.min.js HTTP/1.1

17 GET /PerfTeach/login.jsp HTTP/1.1

14 GET /TestOA/style/blue/pageCommon.css HTTP/1.1

13 GET /TestOA//pageCommon.js HTTP/1.1

13 GET /TestOA//jquery_validate/jquery.validate.js HTTP/1.1

13 GET /TestOA//jquery_validate/jquery.metadata.js HTTP/1.1

13 GET /TestOA//jquery.js HTTP/1.1

13 GET /TestOA//PageUtils.js HTTP/1.1

参考文章:

https://www.sohu.com/a/389452586_371153

相关文章

  • 性能测试——Nginx日志分析

    问题 Nginx有访问日志access.log,用户的每一次HTTP请求,都会在access.log中写入一条记录...

  • GC 日志分析工具列表

    gc日志分析工具 性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图...

  • 基于Hadoop的海量广告日志分析系统的设计与实现_章伟星.ca

    基于Hadoop的海量广告日志分析系统的设计与实现_章伟星.caj // // //p73 单元测试 //性能测试

  • nginx相关资料

    nginx负载均衡及配置 服务器Nginx并发压力测试工具AB测试WordPress站点 如何对Nginx日志文件...

  • 日志分割

    nginx日志放在 /var/log/nginx 下配置/etc/logrotate.d/nginx 测试分割/u...

  • 玩转电商应用性能调优

    第1章 入门篇—性能测试基础知识 什么性能测试 性能测试类型 性能测试基本流程 性能测试需求分析 性能测试指标

  • nginx笔记

    出现错误分析步骤 查看日志 nginx命令 热加载nginx nginx -s reload 关闭nginx服务 ...

  • Nginx-性能优化-ab压力测试工具

    章节目录 nginx 性能优化的点 当前系统性能的评估 ab 压力测试工具使用 1.nginx 性能优化的点 当前...

  • 性能测试流程与调优

    性能测试流程与调优 概述 分析性能需求 制定性能测试计划 设计场景 编写脚本和程序初始化配置 执行性能测试 分析结...

  • NGINX----应用----误删nginx.pid

    在测试的时候我想看nginx日志都记录了什么,但是测试虚拟机nginx已经运行了一段时间,日志记录了很多东西,所以...

网友评论

      本文标题:性能测试——Nginx日志分析

      本文链接:https://www.haomeiwen.com/subject/vnsvqktx.html