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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
简介: 简介 很多个人站长在搭建网站时使用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日志并进行多维度分析。
目录
相关文章
|
1月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
35 2
|
1月前
|
监控 前端开发 开发者
前端代码规范 - 日志打印规范
前端代码规范 - 日志打印规范
|
2月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
2月前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
2月前
|
存储 前端开发 安全
【海贼王航海日志:前端技术探索】CSS你了解多少?(三)
【海贼王航海日志:前端技术探索】CSS你了解多少?(三)
31 2
|
2月前
|
Web App开发 前端开发
【海贼王航海日志:前端技术探索】CSS你了解多少?(二)
【海贼王航海日志:前端技术探索】CSS你了解多少?(二)
26 2
|
2月前
|
缓存 前端开发 JavaScript
【海贼王航海日志:前端技术探索】CSS你了解多少?(一)
【海贼王航海日志:前端技术探索】CSS你了解多少?(一)
24 2
|
2月前
|
前端开发 JavaScript 数据安全/隐私保护
【海贼王航海日志:前端技术探索】HTML你学会了吗?(二)
【海贼王航海日志:前端技术探索】HTML你学会了吗?(二)
32 1
|
2月前
|
网络安全
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
|
2月前
|
前端开发 Java 编译器
【前端学java】类中的访问权限详解,通俗易懂(5)
【8月更文挑战第9天】类中的访问权限详解,通俗易懂(5)
43 0

相关产品

  • 日志服务