日志系列--前端访问日志的统计分析

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 简介 很多个人站长在搭建网站时使用nginx作为服务器,为了了解网站的访问情况,一般有两种手段: 使用CNZZ之类的方式,在前端页面插入js,用户访问的时候触发js,记录访问请求。 分析nginx的access log,从日志中挖掘有用信息。

简介

很多个人站长在搭建网站时使用nginx作为服务器,为了了解网站的访问情况,一般有两种手段:

  1. 使用CNZZ之类的方式,在前端页面插入js,用户访问的时候触发js,记录访问请求。
  2. 分析nginx的access log,从日志中挖掘有用信息。

两种方式各有优缺点:

  1. CNZZ使用起来比较简单,各种指标定义清楚。但这种方式只能记录页面的访问请求,像ajax之类的请求是无法记录的,还有爬虫信息也不会记录。
  2. access log对所有的请求都有记录,可以说信息非常详细,但需要站长对访问日志具备详细的了解和动手能力。

两种手段相互补充,才能对网站的状况有更加深入的了解。

阿里云日志服务产品在最新版中增强查询分析功能(LogSearch/Analytics),支持对日志数据实时索引与查询分析,能够在秒级别对亿级别数据完成统计,极大的降低了站长们分析access log的门槛。本文将详细介绍如何使用日志服务分析access log中的各种指标。

一个典型的访问日志,包括了以下几点:

1. remote_addr : 客户端地址
2. remote_user : 客户端用户名
3. time_local : 服务器时间
4. request : 请求内容,包括方法名,地址,和http协议
5. http_host : 用户请求是使用的http地址
6. status : 返回的http 状态码
7. request_length : 请求大小
8. body_bytes_sent : 返回的大小
9. http_referer : 来源页
10. http_user_agent : 客户端名称
11. request_time : 整体请求延时

下面是一段访问日志的样例:

body_byte_sent:  81        hostname:  www.host.com    http_user_agent:  Mozilla/5.0 (Linux; U; Android 7.1.1; zh-CN; ONEPLUS A5000 Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.2214.89 UCBrowser/11.6.4.950 Mobile Safari/537.36        method:  GET        referer:  www.host0.com    remote_addr:  14.116.141.67    request_length:  196    request_time:  4.68status:  200    upstream_response_time:  3.94725168222    url:  /path9?k0=v7&k1=v1&

保存在日志服务中的日志:
image.png

统计样例

  1. 每分钟PV曲线

    *|select from_unixtime( __time__- __time__% 60) as t,       count(1) as pv        
    group by        order by t limit 60

    image.png

  2. 热门页面

    *|select url,count(1) as pv group by url order by pv desc limit 10

    image.png

  3. 各种HTTP状态码

    *| select status, count(1) as pv group by status

    image.png

  4. 来源页面统计

    *|select referer ,count(1) as pv group by  referer order by pv desc

    image.png

dashboard

日志服务提供dashboard展示所有的指标:

image.png
dashboard链接

试用日志服务

查询链接
dashboard链接

以下5个子帐号供试用,请随机选择一个登录,若登录不成功请换一个子帐号尝试:

登录地址 用户名 密码
链接 sls_reader1@1654218965343050 pnX-32m-MHH-xbm
链接 sls_reader2@1654218965343050 pnX-32m-MHH-xbm
链接 sls_reader3@1654218965343050 pnX-32m-MHH-xbm
链接 sls_reader4@1654218965343050 pnX-32m-MHH-xbm
链接 sls_reader5@1654218965343050 pnX-32m-MHH-xbm
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
移动开发 前端开发 JavaScript
VSCode设置类似Webstorm那样可以用本地局域网IP地址访问自己开发的测试项目,vs code 前端如何以服务器模式打开?
VSCode设置类似Webstorm那样可以用本地局域网IP地址访问自己开发的测试项目,vs code 前端如何以服务器模式打开?
VSCode设置类似Webstorm那样可以用本地局域网IP地址访问自己开发的测试项目,vs code 前端如何以服务器模式打开?
|
存储 Prometheus Kubernetes
轻量级日志可视化平台Grafana Loki接入nginx访问日志
轻量级日志可视化平台Grafana Loki接入nginx访问日志
1377 0
轻量级日志可视化平台Grafana Loki接入nginx访问日志
|
2月前
|
监控 前端开发
|
3月前
|
前端开发 JavaScript 网络安全
【面试题】 本地运行的前端代码,如何让他人访问?
【面试题】 本地运行的前端代码,如何让他人访问?
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置1
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置1
26 0
|
4月前
|
前端开发 JavaScript 网络安全
前端破圈Docker for Win11项目不能访问🏴‍☠️
前端破圈Docker for Win11项目不能访问🏴‍☠️
|
8月前
|
前端开发
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置4
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置4
28 0
|
9月前
|
运维 监控 前端开发
前端错误监控和日志记录的实践
在现代Web应用程序中,前端错误监控和日志记录是保障应用稳定性和用户体验的关键步骤。通过监控和记录前端错误,我们可以及时发现和解决潜在的问题,提高应用程序的质量。本文将介绍前端错误监控和日志记录的实践方法,并展示如何使用现有工具来实现这些功能。
373 0
|
9月前
|
监控 网络协议 前端开发
服务链路图(一)——客户访问到前端页面
服务链路图(一)——客户访问到前端页面
101 0
|
10月前
|
前端开发
前端学习笔记202303学习笔记第三天-Vue3.0-webpack访问自动打包生成的文件1
前端学习笔记202303学习笔记第三天-Vue3.0-webpack访问自动打包生成的文件1
34 0

相关产品

  • 日志服务