大資料實時階段_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用來標誌標籤的唯一性。
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小時)的值。得到差值之後,將資料儲存到資料庫。
作用:解放了程式設計師的雙手。要分析指標的時候,只需要產品經理在網頁配置一下即可。
- 程式碼結構