题目描述:
针对ngix中的access访问日志进行分析,统计以下3个指标
1:PV
2:UV
3:访问次数最多的前10个IP以及访问的次数
针对日志数据中核心字段的介绍
27.19.74.143 - - [30/May/2013:17:38:20 +0800] "GET /static/image/common/faq.gif HTTP/1.1" 200 1127
- 27.19.74.143:IP
- /static/image/common/faq.gif :具体请求的URL地址,最后是以.gif结尾的,说明请求的是一个图片地址
- 200:HTTP状态码
测试数据在git中,地址:https://git.imooc.com/class-102/bigdata_course_materials/src/master/linux/access_2020_04_30.log下载地址.txt
效果:
1:PV最终返回的是一个数值,例如:300
2:UV最终返回的是一个数值,例如:30
3:访问次数最多的前10个ip以及访问的次数,结果如下:
注意:最终返回的结果类似这样,但是具体的ip和次数这里只是一个样例。
第一列是IP出现的次数,第二列是具体的IP
989 192.168.32.23
820 10.23.14.56
430 32.23.34.2
382 27.19.74.143
309 110.52.250.126
210 8.35.201.166
208 21.35.201.156
197 57.19.74.146
86 50.23.17.103
36 18.27.12.34
任务要求:
1:过滤掉日志中的无效数据,包括针对图片、js、css的请求,具体的后缀为:.jpg .png .css .js .gif
2:过滤掉HTTP状态码不是200的数据
任务提示、思路分析:
1:需要区分出PV和UV的区别,如果不了解的,建议通过互联网查找相关资料
2:在统计数值的时候,需要先过滤掉异常数据,然后在结合sort、uniq、wc、head等命令统计需要的结果