如何分析accesslog

一.简介

accesslog是apache或者nginx等web service生成的日志,对应于网页的每一次请求,包含有大量的信息,分析好accesslog可以对网站的运行情况有一个整体的认识,在出现问题的情况下,也可以通过对accesslog的数据分析结果,大致定位出问题所在。负责网站的运维、架构相关的工程师需要对accesslog非常熟悉,策略效果相关的工程师也可以通过对accesslog的分析,得到用户的行为数据。

二.查看accesslog的工具

xlog

三.简介

一条典型的accesslog:

101.226.166.254 - - [21/Oct/2013:20:34:28 +0800] "GET /movie_cat.php?year=2013 HTTP/1.1" 200 5209 "http://www.baidu.com" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; Tablet PC 2.0); 360Spider"

下面我们来说说这一行记录的意思:

1)101.226.166.254:(用户IP)

2)[21/Oct/2013:20:34:28 +0800]:(访问时间)

3)GET:http请求方式,有GET和POST两种

4)/movie_cat.php?year=2013:当前访问的网页是动态网页,movie_cat.php即请求的后台接口,year=2013为具体接口的参数

5)200:服务状态,200表示正常,常见的还有,301永久重定向、4XX表示请求出错、5XX服务器内部错误

6)5209:传送字节数为5209,单位为byte

7)"http://www.baidu.com":refer:即当前页面的上一个网页

8)"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; Tablet PC 2.0); 360Spider": agent字段:通常用来记录操作系统、浏览器版本、浏览器内核等信息

四.数据统计及分析

接口请求频次:分接口、按天和小时分别统计。了解网站的运行情况,每个接口的请求频次,用户的行为习惯等。

响应时间:一天的平均响应时间、分接口的平均响应时间、分接口按小时统计平均响应时间。响应时间过长的请求可能说明服务性能上存在缺陷,就需要对相应的接口进行优化了。

异常分析:状态码非200的请求、响应时间超过一定域值的请求。大量的404不利用SEO,应该尽量避免。

具体参数统计:对于动态页面,一个接口通常带有多个参数,其中某个或者某几个参数特别重要,可以进一步细化,产生接口对应的参数的统计结果

ip来源的统计:可以统计出网页访问的ip来源,进一步通过ip定位,可以产生网站按地域的访问情况,同时对ip的统计,也可以对一些可能的攻击或者黑客行为进行识别。

蜘蛛抓取情况分析:搜索引擎的蜘蛛通常会设置agent字段,通过分析agent字段,可以得到网站一天被百度、谷歌等搜索引擎抓取的次数,以及哪些网页经常被spider爬过,这也是SEO的基础。

五.注意事项

可以通过apache或者nginx的配置可以加上响应时间,默认accesslog是没有输出响应时间。

时间: 2024-10-24 22:23:49

如何分析accesslog的相关文章

python分析accesslog并排序

最近面试的一个问题,面的时候脑子卡壳了,面完刚出公司就想起来,很尴尬.于是记录一下. 数据是这样的: 121.31.95.182 - - [06/Aug/2015:08:04:41 +0800] "GET /user.php?do=GetGiftAward&phpp=ANDROID_91&phpl=ZH_CN&pvc=1.5.3&pvb=2014-10-22%2017%3a17%3a26&v=9099 HTTP/1.1" 200 250 &quo

学点算法搞安全之apriori

前言 在企业安全建设专题中偶尔有次提到算法的应用,不少同学想深入了解这块,所以我专门开了一个子专题用于介绍安全领域经常用到的机器学习模型,从入门级别的SVM.贝叶斯等到HMM.神经网络和深度学习(其实深度学习可以认为就是神经网络的加强版). 关联规则挖掘 关联规则挖掘通常是无监督学习,通过分析数据集,挖掘出潜在的关联规则,最典型的一个例子就是尿布和啤酒的故事.相传沃尔玛的数据分析人员通过分析大量购物清单发现相当一部分消费者会同时购买尿布和啤酒,结果他们把尿布和啤酒赫然摆在一起出售,结果销量又双双

tomcat 访问日志源码分析与应用

tomcat 日志可以分为两类: 1.访问日志,记录访问的时间.来源.资料等相关信息(ServletRequest 可以获取的信息,都可以记录): 2.运行日志,记录tomcat 运行.异常.错误信息. tomcat 的日志记录常会被 log4j 或 slf4j 取代,不过这里不讨论另外日志组件,很纯粹地说一下tomcat 原生的访问日志.关于运行日志的分析,有机会再另写一篇.对于访问日志,tomcat 定义了以下接口: public interface AccessLog { // 记录访问日

万分之一错误率问题的分析及定位

本文主要描述网关上线的一次异常排查,分析排查问题的思路及过程. 通过本文,可以较好的了解网络,netty及http协议. 1问题背景 1 网关上线后有二万分之一的请求报500的错误. 2 升级了几个网关的业务域,但是只有一个业务域报错,其他业务域正常. 2基础知识 2.1 netty的worker模型 Netty的线程模型主要为Boss线程组和worker线程组. Boss线程负责接收连接,在tcp连接创建好后,会通过一定策略将连接(channel)绑定到worker线程上面. Worker线程

tomcat accesslog日志扩展

由于工作需要,最近对tomcat的日志进行了一些研究,发现其日志大致可以分为两类,一类是运行日志,即平常我们所说的catalina.out日志,由tomcat内部代码调用logger打印出来的:另一类是accesslog访问日志,即记录外部请求访问的信息.处理这两类日志,tomcat默认采用了不同的方式,运行类日志默认采用的是java.util.logging框架,由conf下的logging.properties负责配置管理,也可以支持切换到log4j2(具体可参看我的前一篇博文:升级tomc

线上日志分析与其他一些脚本

对一些线上常用的脚本进行了一下总结和说明,免得以后忘记了~ 一·线上发布API集群的代码脚本: #!/bin/bash #Author CCC host=' 10.44.22.113 10.44.22.113 10.44.22.112 10.44.22.112 10.44.22.113 10.44.22.113 10.44.22.114 10.44.22.114 10.44.22.115 10.44.22.115 10.44.22.119 10.44.22.119 ' #basePath='/v

motan源码分析四:客户端调用服务

在第一章中,我们分析了服务的发布与注册,本章中将简单的分析一下客户端调用服务的代码及流程,本文将以spring加载的方式进行分析. 1.在DemoRpcClient类的main()方法中加载类: ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"classpath:motan_demo_client.xml"}); MotanDemoService service = (MotanDemo

Tomcat AccessLog 格式化

有的时候我们要使用日志分析工具对日志进行分析,需要对日志进行格式化,比如,要把accessLog格式化成这样的格式 c-ip s-ip x-InstancePort date time-taken x-Protocol cs-method cs-uri sc-status x-ResponseSize bytes x-Referrer x-UserAgent 在tomcat的conf/server.xml加入配置: <Valve className="org.apache.catalina

Azure应用程序网关常见问题场景分析

Azure应用程序网关常见问题场景分析 场景一:WAF功能对应用程序网关性能的影响 在开启了WAF功能后,WAF功能模块运行会占据很大一部分系统负载.以下针对有安全性合规需求的前提(必须开启WAF)做进一步性能分析: 开启了WAF后,随之会有基于一些列OWASP规则的HTTP层的安全扫描,这些扫描会产生大量的CPU开销,涉及前后文规则匹配,评分计算,执行动作等等逻辑.因此,规则匹配是消耗CPU的主要因素. 这里需要注意两点: 所有有效且网络上已经到达应用程序网关的http请求均会被WAF模块做安