案例一:網路日誌使用者行為分析
授課教師:王濤
工具:modeler 14.1
原始字段:
字段說明 字段
描述date
日期time
時間c-ip
客戶端ip位址
cs-username
使用者名稱s-sitename
服務名稱
s-computername
伺服器名稱
s-ip
伺服器ip位址
s-port
伺服器端口
cs-method
請求方法
cs-uri-stem
uri資源
cs-uri-query
uri查詢
sc-status
協議狀態
sc-substatus
協議子狀態
sc-win32-status
win32狀態
sc-bytes
傳送的位元組數
cs-bytes
接收的位元組數
time-taken
所用時間
cs-version
協議版本
cs-host
主機cs(user-agent)
使用者**
cs(cookie)
cookie
cs(referer)
引用**
操作流程1. 資料準備_識別使用者訪問
操作目的:識別網頁型別、識別同一訪問
將日誌檔案匯入modeler資料流中,將用不到的字段過濾掉,對剩下的字段重新命名,並根據date和time欄位生成時間戳。
其中date_in_days(date)函式返回從基線日期到date的天數,乘以一天中的86400秒,將其換算成秒,time_in_secs(time)函式返回從零時到time的秒數。
根據ip位址和時間戳排序
每條記錄都以』.htm』、』.jpg』、』.gif』等檔案字尾名結尾,將這些字尾名作為我們要識別的網頁型別。
首先生成乙個lastdot欄位,表示page欄位中最後乙個』.』所在的位置。
其中locchar_back(`.`,length(page),page)表示從page欄位的最後位置由後往前查詢第乙個出現的』.』的座標,注意第乙個引數要用反向單引號,在主鍵盤數字1的旁邊。
接下來生成乙個page_type欄位,表示提取出的網頁型別,並將lastdot欄位過濾掉。
其中substring(lastdot+1, length(page)-lastdot, page)函式提取子字串,lastdot+1表示從最後乙個』.』的後一位字元開始,length(page)-lastdot計算出網頁型別字元的長度,表示要提取多少位字元。
將這三個節點封裝為超節點
最後對各網頁的型別進行彙總排序,並輸出。
在進行其他分析之前,先過濾掉對gif、jpg型別網頁的訪問,這是因為型別網頁的訪問數明顯高於其他型別,而在一般網頁中佔了絕大多數,在我們的後續分析中也沒有用到型別網頁的資料。當然在其他的分析中,這些檔案資料資訊非常有用,例如可以研究不同大小是否對使用者瀏覽網頁或者購買行為產生影響。
在選擇節點中,丟棄網頁型別為gif和jpg記錄。
接下來識別多次訪問中的同一訪問,首先定義什麼是同一訪問,什麼是不同訪問。滿足下列條件之一,則認為是不同訪問,否則,認為是同一訪問:
(1) 客戶端ip位址發生了變化
(2) 使用者**發生了變化時
(3) 間戳相差30分鐘(1800秒)以上
生成乙個visit_number欄位,用於記錄不同訪問的次數,從0開始計數,當滿足以上三個條件之一時,就增加1。
其中,@offset(ip,1)/= ip or @offset(browser,1) /= browseror (time_stamp - @offset(time_stamp,1))> 1800 分別代表上面列出的三個條件,@offset(ip,1)表示當前記錄的前一位記錄的ip欄位的值。
生成乙個visit_id欄位,用於表示不同訪問的編號,並將visit_number欄位過濾掉。
visit_id的格式為』visit_』加上visit_number的值,』>
將上面三個節點封裝成乙個超節點
連線乙個彙總節點,計算各訪問的動作數,並繪製直方圖
執行得到上面的結果,可以看出每次訪問產生的動作數大部分是1到4次,反映出使用者在每次訪問時並不會做出太多的動作,考慮到這一點,在設計**時不應設計得太過複雜,應盡量縮短使用者到達想要的內容的路徑。
最後將每次訪問的動作數合併進來,過濾掉無用字段。
得到如下的示例資料:
最後連線乙個匯出節點,將處理好的資料儲存為weblog_visit.dat,用於後續的分析。
整個資料流如下:
PowerShell 抓取網路日誌
豆子今天想看看powershell是否有像winsock之類的方式抓包,不過很遺憾,他有乙個netevenpacketcapture的模組,但是他不像wireshark那樣可以直接抓取tcp ip包,他獲取的是windows的網路日誌。優點是我可以直接用get winevent來分析內容了,缺點是我...
flume 網路日誌收集
channels 記憶體 sink 本地 a1.sources s1 a1.channels c1 a1.sinks k1 tcp協議 a1.sources.s1.type syslogtcp a1.sources.s1.port 5140 a1.sources.s1.host wangfutai ...
PowerShell 抓取網路日誌
豆子今天想看看powershell是否有像winsock之類的方式抓包,不過很遺憾,他有乙個netevenpacketcapture的模組,但是他不像wireshark那樣可以直接抓取tcp ip包,他獲取的是windows的網路日誌。優點是我可以直接用get winevent來分析內容了,缺點是我...