IOT/智慧裝置日誌解決方案(1):概述
系列文章:
- IOT/智慧裝置日誌解決方案(1):概述
- IOT/智慧裝置日誌解決方案(2):全方位資料採集
- IOT/智慧裝置日誌解決方案(3):上下游對接
- IOT/智慧裝置日誌解決方案(4):計算與分析
- IOT/智慧裝置日誌解決方案(5):線上問題調查
- IOT/智慧裝置日誌解決方案(6):實時監控
- IOT/智慧裝置日誌解決方案(7):搭建業務大盤
前言
2017年被業界稱為物聯網(IOT)元年,而未來IOT還將繼續高歌猛進。IDC預測全世界在IOT的開支在2018年預計至7725億美金,相比2017年的6740億美金有14.6%的上漲。IDC全球半年度IOT開銷指南預估在2017年~2021年間全球iOT開支保持在14.4%的CAGR(年複合增長率)在2020年超過1萬億美金,且在2021年達到11000億美金。 愛立信最新發布的資料顯示,到2020年預計會有500億件裝置互聯。麥肯錫預測,到2025年,物聯網將帶來高達11萬億美元的年度儲蓄和新收入。
下面我們再來看看智慧裝置:2017年,全球智慧家居裝置出貨量達4.331億臺,比上一年增長27.6%。展望未來,IDC預計2022年市場出貨量達到9.397億臺,預計複合年增長率(CAGR)將達18.5%。
無論是物聯網還是智慧裝置,規模都越來越大,產業分工也越來越明確,逐漸形成一整套的生態系統。而同時無論是物聯網還是智慧裝置的生態系統中,日誌資料永遠是不可缺少的一個重要環節。
日誌資料
首先我們需要明確:什麼是日誌資料。日誌並不僅僅是程式的Debug資料,此外還包括但不限於:使用者的操作日誌、計量計費資料、系統事件、感測器資料、系統/應用指標資料、審計相關資料、呼叫鏈日誌等等。
這麼多種類的日誌,看似功能並不關聯,但從我們的最終目的來看,無論哪種型別的資料都必不可少。而這個最終的目的也非常的直白淺顯:回報(錢)。為了更高的回報,我們需要利用這些資料去分析使用者的行為,去進行更有效的運營策略,提高使用者粘性;更精準的廣告投放,提高廣告點選率;利用全方位的日誌分析產品缺陷,進行產品優化和快速迭代...

日誌解決方案
一個標準的日誌解決方案主要包括以下幾個流程:
- 連線:連線主要分為裝置端(IOT/智慧裝置)和服務端(伺服器以及服務端應用)的資料採集。資料採集需連線分佈在全球各地的裝置和後臺服務,並將裝置、服務端的各種型別日誌資料統一採集到儲存端。為了便於上下游對接,這個儲存端通常使用訊息佇列作為中間的資料快取。
- 計算:各類資料採集到訊息佇列後,會進行多輪的計算工作,包括預處理、清洗、聚合等等,各輪的中間計算結果會繼續儲存到佇列中,用於下一輪次的輸入。同時計算的過程也可能由其他外部資料來源的參與,例如記錄裝置meta資料的資料庫等。
- 監控:為了更快速的發現異常,需要對佇列中實時進入的資料進行監控,包括裝置狀態以及後端服務狀態。後端服務監控技術通常較為成熟,裝置端狀態的遠端監控時效性較難保證。
- 分析:當資料計算處理完成後,會進行一些線上和離線的分析,線上分析通常基於流計算實現,離線分析通常會進入數倉進行。
- 利用:最後也是最重要的部分是如何更好的利用這些資料以及分析的結果,包括:智慧廣告推薦、使用者畫像構建、產品優化、商業決策支援等。最終這些結果會重新作用於裝置端,形成一個數據閉環。
IOT/智慧裝置日誌方案難點分析
搭建一個日誌解決方案並不難,網路上有很多開源日誌解決方案。但其中有一些問題,尤其是針對IOT/智慧裝置場景的問題難以解決,主要包括:
- 輕量級的日誌客戶端:日誌上傳需要在裝置端嵌入,通常使用SDK的方式。由於日誌採集只是系統中的的一個非核心業務模組,對於資源的佔用需儘可能的低,包括CPU、記憶體、網路等。最關鍵的是日誌採集SDK需要足夠的小,小到可以“塞”到各種各樣的裝置端。
- 全球資料採集網路:對於一款消費級/工業級產品,裝置遍佈全國/全球非常普遍,普通的資料採集網路只能依賴於公網,網路鏈路質量很難得到保證,資料採集也會存在一定的延遲和不可靠因素。如何建立起一張全球採集加速的網路對於裝置端日誌資料採集的時效性和穩定性非常重要,但同時該項工作也需極大的資源投入。
- 資料時效性:資料採集的時效性一般是從日誌產生到最終在服務端可檢索到的時間,通常的方案是資料到達佇列後,批量同步到數倉,一般需要1-2小時才能檢索到,最快也只能到分鐘級。這種時效性對於問題的及時發現和排查存在很大困難。若資料幾秒內可見,則可做的優化就非常多了:裝置新版本釋出時,可快速發現問題並及時回滾;客戶反饋問題時,客服可基於資料查詢系統幫助使用者實時的排查問題;根據使用者當前的操作資訊實時推薦類似內容...
- 前後端一體化:日誌採集不僅包括裝置端(前端),還包括後端(服務端)各類支撐應用的日誌,這兩部分日誌雖大有不同,但其中很多日誌只有前後關聯,才能形成完整的呼叫鏈分析。因此前後端日誌的採集、處理、分析應歸於一體。
方案實現
針對以上問題,我們專門推出了基於阿里雲日誌服務的IOT/智慧裝置日誌解決方案:
- 裝置端(IOT/智慧裝置)和服務端的日誌分別通過C Producer和Logtail統一採集到日誌服務中。C Producer最低只佔用4KB記憶體;針對全球資料採集場景,日誌服務專門提供了全球採集加速功能。
- 採集到日誌服務的資料,使用Blink進行資料清洗和迭代計算。Blink支援從日誌服務中讀取資料,處理完畢後還支援寫入日誌服務,因此可組合使用Blink、日誌服務進行多次的迭代計算。
- 對於清洗後的資料,可直接使用日誌服務的統計分析功能進行實時的資料統計。同時日誌服務還支援基於統計的結果快速建立報表以及告警,從客戶端產生資料到報表可見,延遲可控制在5秒內。
- 考慮到離線分析需要針對長時間範圍(數年)的資料進行統計,日誌服務還支援將資料投遞到OSS、MaxCompute進行歸檔,便於後續的離線分析。