1. 程式人生 > >使用者行為日誌概述

使用者行為日誌概述

寫在前面

什麼是使用者行為日誌呢?其實也叫做使用者行為軌跡,流量日誌等。簡單來說,就是使用者每次訪問網站產生的行為資料(訪問,瀏覽,搜尋,點選等)。基本上,只要你訪問了任何一個網站,該網站都會有你的行為記錄。

當然,日誌也是一個很大的概念,任何程式都有可能輸出日誌:作業系統核心、各種應用伺服器等等。日誌的內容、規模和用途也各不相同,很難一概而論。這裡我想主要說的就是,Web日誌。即,web伺服器記錄的日誌。常見的就像nginx日誌。

通常,我們的nginx會配置不同使用者行為引數來記錄每次使用者的訪問行為,如下: 配置方法:可以參考這片文章

一組真實的nginx日誌:

223.104.25.1 - - [21/Nov/2017:20:34:16 +0800] "GET / HTTP/1.1" 200 94 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1" "-"
223.104.25.1 - - [21/Nov/2017:20:34:16 +0800] "GET / HTTP/1.1" 200 94 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1" "-"
156.151.199.137 - - [21/Nov/2017:20:34:19 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36" "-"

從日誌中我們可以獲取: 在這裡插入圖片描述

從上圖中可以看到,可以獲取訪問者的IP、訪問的時間、訪問的目標網頁、來源的地址以及訪問者所使用的客戶端的UserAgent資訊等。

如果需要更多的資訊,則要用其它手段去獲取,常見的操作就是埋點,埋點也是很大的東西,簡單理解就是,可以使用諸如Ajax請求的東西,將更多資訊非同步傳送到自己的伺服器儲存,這一操作對使用者是完全透明的。

使用者行為日誌分析的意義

  • 網站的眼睛,referer
  • 網站的神經 網頁佈局是否合理,使用者體驗
  • 網站的大腦

毫無疑問,Web日誌中包含了大量產品分析人員會感興趣的資訊: 最簡單的,我們可以從中獲取網站每類頁面的PV值(PageView,頁面訪問量)、獨立IP數(即去重之後的IP數量)等; 稍微複雜一些的,可以計算得出使用者所檢索的關鍵詞排行榜、使用者停留時間最高的頁面等,從而進行精準推薦營銷; 更復雜的,構建廣告點選模型、分析使用者行為特徵等等。

總之,一句話,使用者行為日誌分析能夠為公司帶來很好的收益。這才是主要的。哈哈哈

使用者行為日誌分析的方法

  • 資料量比較小的情況 在這種情況下我們使用單機版本就是完全可以解決的,也許是幾十MB、幾百MB或者幾十GB。 總之就是在單機處理尚能忍受的時候。一切都很好辦,現成的各種Unix/Linux工具——awk、grep、sort、join等都是日誌分析的利器,如果僅僅是想知道某個頁面的PV,一個wc+grep就能搞定。如果有稍複雜的邏輯,那就使用各種指令碼語言,尤其是perl,配合偉大的正則表示式,基本就可以解決所有的問題。

  • 大資料場景

當我們的單機無法忍受,這個時候,就該我們大資料裡面的元件來處理了。常見的處理步驟是這樣的:

在這裡插入圖片描述

在這裡插入圖片描述