IOT/智能設備日誌解決方案(1):概述

系列文章:

前言

image.png | center | 793x524

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數據,此外還包括但不限於:用戶的操作日誌、計量計費數據、系統事件、傳感器數據、系統/應用指標數據、審計相關數據、調用鏈日誌等等。
這麼多種類的日誌,看似功能並不關聯,但從我們的最終目的來看,無論哪種類型的數據都必不可少。而這個最終的目的也非常的直白淺顯:回報(錢)。爲了更高的回報,我們需要利用這些數據去分析用戶的行爲,去進行更有效的運營策略,提高用戶粘性;更精準的廣告投放,提高廣告點擊率;利用全方位的日誌分析產品缺陷,進行產品優化和快速迭代...


7f458aa3602838c89b71c0a6ba651658.png

日誌解決方案

image.png | left

一個標準的日誌解決方案主要包括以下幾個流程:

  1. 連接:連接主要分爲設備端(IOT/智能設備)和服務端(服務器以及服務端應用)的數據採集。數據採集需連接分佈在全球各地的設備和後臺服務,並將設備、服務端的各種類型日誌數據統一採集到存儲端。爲了便於上下游對接,這個存儲端通常使用消息隊列作爲中間的數據緩存。
  2. 計算:各類數據採集到消息隊列後,會進行多輪的計算工作,包括預處理、清洗、聚合等等,各輪的中間計算結果會繼續保存到隊列中,用於下一輪次的輸入。同時計算的過程也可能由其他外部數據源的參與,例如記錄設備meta數據的數據庫等。
  3. 監控:爲了更快速的發現異常,需要對隊列中實時進入的數據進行監控,包括設備狀態以及後端服務狀態。後端服務監控技術通常較爲成熟,設備端狀態的遠程監控時效性較難保證。
  4. 分析:當數據計算處理完成後,會進行一些在線和離線的分析,在線分析通常基於流計算實現,離線分析通常會進入數倉進行。
  5. 利用:最後也是最重要的部分是如何更好的利用這些數據以及分析的結果,包括:智能廣告推薦、用戶畫像構建、產品優化、商業決策支持等。最終這些結果會重新作用於設備端,形成一個數據閉環。

IOT/智能設備日誌方案難點分析

搭建一個日誌解決方案並不難,網絡上有很多開源日誌解決方案。但其中有一些問題,尤其是針對IOT/智能設備場景的問題難以解決,主要包括:

  1. 輕量級的日誌客戶端:日誌上傳需要在設備端嵌入,通常使用SDK的方式。由於日誌採集只是系統中的的一個非核心業務模塊,對於資源的佔用需儘可能的低,包括CPU、內存、網絡等。最關鍵的是日誌採集SDK需要足夠的小,小到可以“塞”到各種各樣的設備端。
  2. 全球數據採集網絡:對於一款消費級/工業級產品,設備遍佈全國/全球非常普遍,普通的數據採集網絡只能依賴於公網,網絡鏈路質量很難得到保證,數據採集也會存在一定的延遲和不可靠因素。如何建立起一張全球採集加速的網絡對於設備端日誌數據採集的時效性和穩定性非常重要,但同時該項工作也需極大的資源投入。
  3. 數據時效性:數據採集的時效性一般是從日誌產生到最終在服務端可檢索到的時間,通常的方案是數據到達隊列後,批量同步到數倉,一般需要1-2小時才能檢索到,最快也只能到分鐘級。這種時效性對於問題的及時發現和排查存在很大困難。若數據幾秒內可見,則可做的優化就非常多了:設備新版本發佈時,可快速發現問題並及時回滾;客戶反饋問題時,客服可基於數據查詢系統幫助用戶實時的排查問題;根據用戶當前的操作信息實時推薦類似內容...
  4. 前後端一體化:日誌採集不僅包括設備端(前端),還包括後端(服務端)各類支撐應用的日誌,這兩部分日誌雖大有不同,但其中很多日誌只有前後關聯,才能形成完整的調用鏈分析。因此前後端日誌的採集、處理、分析應歸於一體。

方案實現

image.png | left

針對以上問題,我們專門推出了基於阿里雲日誌服務的IOT/智能設備日誌解決方案:

  1. 設備端(IOT/智能設備)和服務端的日誌分別通過C Producer和Logtail統一採集到日誌服務中。C Producer最低只佔用4KB內存;針對全球數據採集場景,日誌服務專門提供了全球採集加速功能。
  2. 採集到日誌服務的數據,使用Blink進行數據清洗和迭代計算。Blink支持從日誌服務中讀取數據,處理完畢後還支持寫入日誌服務,因此可組合使用Blink、日誌服務進行多次的迭代計算。
  3. 對於清洗後的數據,可直接使用日誌服務的統計分析功能進行實時的數據統計。同時日誌服務還支持基於統計的結果快速創建報表以及告警,從客戶端產生數據到報表可見,延遲可控制在5秒內。
  4. 考慮到離線分析需要針對長時間範圍(數年)的數據進行統計,日誌服務還支持將數據投遞到OSS、MaxCompute進行歸檔,便於後續的離線分析。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章