閱讀88 返回首頁    go 阿裏雲 go 技術社區[雲棲]


日誌係列---前端訪問日誌的統計分析

簡介

很多個人站長在搭建網站時使用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

查詢鏈接

統計樣例

  1. 每分鍾PV曲線

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

    image

  2. 熱門頁麵

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

    image

  3. 各種HTTP狀態碼

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

    image

  4. 來源頁麵統計

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

    image

最後更新:2017-08-31 23:32:40

  上一篇:go  日誌係列--賬單日誌的統計分析
  下一篇:go  日誌係列--行車軌跡日誌的統計分析