专栏首页软件测试架构师俱乐部性能测试之nginx访问日志分析

性能测试之nginx访问日志分析

首先需要介绍一下基于linux的文本分析的一些命令工具;

awk:

  awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,

  awk在其对数据分析并生成报告时,显得尤为强大。

  简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

  它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

awk工作流程:

  读入有"\n"换行符分割的一条记录,然后把记录按照指定的域分隔符划分域,填充域

0表示所有的域,1表示第一个域,以此类推

  默认域分隔符是空白键或者tab键

sort:

将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

uniq:

用于去除有序文件中的重复行并将结果输出到标准输出。uniq经常和sort合用,为了使uniq起作用,所有的重复行必须是相邻的

wc:

利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

Nginx 日志分析,我直接用的我机器上的nginx日志,默认的都是可以的,列举几个简单常用的, 如果不清楚你的nginx日志地址,查看nginx.conf文件即可,看下我这边的日志截图:

awk '{print $1}' access.log       # IP 地址  ($remote_addr)  如下图所示,其他不再截图示意,大家自行操作
awk '{print $4,$5}' access.log    # 日期和时间  ([$time_local])
awk '{print $7}' access _log      # URI ($request)
awk '{print $9}' access _log      # 状态码 ($status)
awk '{print $10}' access _log     # 响应大小 ($body_bytes_sent)
awk '{print $12}' access _log     # 代理
存在日志格式有出入,命令需求调整,但思路是一致的
1.列举一些组和命令,根据访问IP统计UV
 
awk '{print $1}'  access.log|sort | uniq -c |wc -l
 
2.统计访问URL统计PV
 
awk '{print $7}' access.log|wc -l
 
3.查询访问最频繁的URL
 
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
 
4.查询访问最频繁的IP
 
awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more
 
5.访问最多的10个ip及访问次数
 
awk '{print $1}' 日志地址 | sort | uniq -c | sort -n -k 1 -r | head -n 10

本文分享自微信公众号 - 软件测试架构师俱乐部(gh_03227f9a322f),作者:cctester

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 十篇python笔记带你走向测试开发之路-第一篇

    大家好,我是鲲鹏,在职测试开发,分享知识,利人利己,下面我将会整理十篇左右的python笔记帮助大家走上测试开发之路,还请大家多多指教,有问题,请加入QQ群:2...

    cctester
  • Mysql性能优化全揭秘-庖丁解牛

    一直想写数据库相关的文章,最直接的原因是数据库这块我们工作中每天都会用到,也是面试求职绕不开的话题,无论你是何种测试,优秀的数据库能力都会非常加分,最近我在总结...

    cctester
  • 一步一步学做测试工具(Spring Boot版)之三

    MC/DC(Modified Condition/Decision Coverage)是一种软件结构覆盖率测试准则, 通过最少N+1(N为Condition个数...

    cctester
  • Linux Shell命令速查表

    使用 awk 从 Nginx 日志中逐行统计 URL 访问计数,然后使用 sort 对结果进行排名

    憧憬博客
  • 【IP相关统计】Nginx Access Log日志统计分析常用命令

    java乐园
  • 性能工具之linux常见日志统计分析命令

    在上文中性能工具之linux三剑客awk、grep、sed详解,我们已经详细介绍 linux 三剑客的基本使用,接下来我们看看具体在性能测试领域的运用,本文主要...

    高楼Zee
  • Nginx日志常用统计分析命令

    在nginx log中最后一个字段加入$request_time 列出传输时间超过 3 秒的页面,显示前20条

    神秘的寇先森
  • Nginx 分析access日志文件

    超蛋lhy
  • 最全的nginx日志统计分析

    咻一咻
  • SAP CRM WebClient UI交互式报表的Gross Value工作原理

    SAP CRM WebClient UI交互式报表(Interactive Report)的Gross Value工作原理

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券