web服务器中获取统计数据-猜测

web请求中,web服务器的日志中会留有一些信息,这些信息可以供后续数据分析只有。常用的有apache和nginx服务器,两者日志格式相差不是很多。日志格式可以配置,具体配置方式不详细介绍,网上肯定很多。

常见的分析方式有两种:

(1)在服务器上通过shell或者python脚本分析,将结果数据搞到数据库

(2)将服务器上的原始文件拉到特定的分析服务器,分析服务器对于结果分析,然后搞到数据库

两种方式各有利弊,第一种的话获取结果的脚本需求部署到每台机器上去,好处是减少网络传输,第二种的话好处是服务器不需要部署脚本,直接拖数据到分析服务器即可,缺点是网络传输消耗比较大。

 

apache和nginx中常见的日志信息(下面是两个日志配置)

nginx:"$remote_addr $request_time_usec $http_x_readtime [$time_local] \"$request_method http://$host$request_uri\" $status $body_bytes_sent \"$http_referer\" \"$http_user_agent\"";

apace:"%h %D %{X_READTIME}i %t \"%m http://%V%U%q\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

可以获取的信息有以下几个(基本上是基于http协议的一下信息)

(1)来源ip

(2)请求响应时间

(3)请求时间点

(4)请求URL(包含get或者post信息)

(5)返回的http状态码

(6)返回的信息的大小

(7)来源URL(refer信息)

(8)浏览器和操作系统数据

 

基于这些基本数据,我们可以做哪些分析(做了简单的描述)?

(1)统计每秒请求的数量(即QPS)以及特定时间内的总请求书

(2)统计每秒请求的用户数(UV),但是理论上是IPV

(3)统计系统的平均响应时间(基于每次请求的时间做平均)

(4)用户在页面上的停留时间,这个需要结合refer以及时间点,可能会有些许不准确

(5)用户路径分析,分析refer数据,例如A>B点数据,refer是A,那用户先到A页面再到B页面

 

基于web服务器获取的数据毕竟有限,想要获取更多用户的行为或者统计数据,还看一怎么做?

(1)页面通过js来进行埋点

用户的行为会触发浏览器对被统计页面的一个http请求,,页面中的埋点javascript片段会被执行,用过相关工具的朋友应该知道,一般网站统计工具都会要求用户在网页中加入一小段javascript代码,这个代码片段一般会动态创建一个script标签,并将src指向一个单独的js文件,此时这个单独的js文件会被浏览器请求到并执行,这个js往往就是真正的数据收集脚本。

(2)在服务端代码中添加埋点

将埋点的统计数据临时放置在内存中,然后将数据定时的写入磁盘,之后基于这些信息来进行分析。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值