1. 程式人生 > >大資料實時階段_Day05_日誌分析

大資料實時階段_Day05_日誌分析

課程名稱:

日誌監控告警系統 課程目標: 1、 掌握Storm程式設計的應用場景及程式設計模型 2、 掌握Storm開發生態圈各知識點 3、 掌握簡訊和郵件告警功能 課程大綱: 1、 背景知識 2、 需求分析 3、 功能分析 4、 架構設計 5、 程式碼開發

點選流日誌資訊行為軌跡

1.2、如何進行點選流日誌分析

1) 使用者訪問http://yun.itheima.com/open/c-139.html 是否可以理解為是從‘雲端計算大資料’標籤過來的? 答案:不一定,因為使用者可以從其他地方訪問這個url。 解決:最好的辦法,當用戶點選了‘雲端計算大資料’的標籤,通過js程式碼向後臺傳送一個數據,這個資料就記錄了使用者點選過這個標籤。 User info、標籤唯一標識、點選事件、瀏覽器尺寸等等。 2) 如何給網頁中一個標籤設定一個唯一的標誌? 京東:在京東上,通過給每個標籤設定一個clstag用來標誌標籤的唯一性。 在這裡插入圖片描述

蘇寧:蘇寧是通過在每個標籤上設定一個cms-name屬性來標誌標籤的唯一性 在這裡插入圖片描述 國美:國美是通過在每個標籤上這是一個data-code屬性來標誌標籤的唯一性 在這裡插入圖片描述 淘寶:疑似通過data-groupid進行唯一標誌 在這裡插入圖片描述 3) 如何通過js程式碼傳送日誌 京東:當用戶點選或者瀏覽某個頁面的時候,後臺有js會發送類似於以下的資訊給伺服器。 在這裡插入圖片描述 4) 解析出點選流日誌中的欄位資訊 1、來源URL ref 2、當前URL req http://www.itcast.cn/121212.html 3、請求時間 reqTime (使用者開啟網站的時間) 4、操作型別 type (0:瀏覽操作,1:點選操作) 9、頁面停留時間 10、使用者IP地址 11、sessionID 12、使用者的賬號資訊 13、點選什麼東西 clstag

5、作業系統 6、瀏覽器的資訊 br 7、螢幕尺寸 8、滑鼠點選的位置

1.3、一些簡單的資料分析需求

在這裡插入圖片描述

新的挑戰 雖然通過sql語句可以很好的計算各種資料分析的需求 但是,一個網站需要風險的頁面會很多需要分析,很多表情需要計算指標 在這裡插入圖片描述

storm程式設計思路分析

在這裡插入圖片描述

在這裡插入圖片描述

1.4、業務邏輯梳理

1)Storm部分 主要計算pv,uv KafkaSpout:讀取點選流收集系統收集的日誌資訊。不同公司的日誌資訊不一樣,需要通過nginx+lua對日誌進行標準化。 \t分割。 EtlBolt :將資料解析成一個Java物件。Java物件中有很多欄位,這些欄位名稱會顯示在網頁,給產品經理去選擇。 ProcessBolt:讀取資料庫的所有Job資訊,判斷Job是否被觸發(所有條件是否被滿足)。如果觸發了Job,就開始為Job計算pv,uv。 將結果儲存到Redis中

2)app部分 主要計算增量資料 計算每個Job的pv的增量資料、uv的增量資料。以便展示在網頁上稱為一個趨勢圖。 1) 讀取資料庫中所有的Job資訊。得到JobId,通過一定的規則生成redis的key,去獲取最新的值。 2) 用最新的值,減去上一個時間點(分鐘、十五分鐘、半小時、1小時)的值。得到差值之後,將資料儲存到資料庫。

作用:解放了程式設計師的雙手。要分析指標的時候,只需要產品經理在網頁配置一下即可。

  • 程式碼結構 在這裡插入圖片描述