天天看點

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

數字化營運基礎

在如今“雙十一”不再是線上活動的代名詞,而逐漸變為一場線上線下同時進行的消費者盛宴。銷售、營運、物流、生産商等都在開足馬力在各大管道備戰,據統計:

  • 消費者在期間被平均推送200+活動消息
  • 消費者會花幾個小時比較、提前篩選自己中意産品
  • 除了線上外,90%線下店鋪都挂出針對雙十一營運活動

雙十一觸客管道也呈現多樣化,例如:網絡店鋪、短信、郵件、微信公衆賬号、派單與Kitty闆、自提櫃、智能裝置(例如天貓精靈點單)、多媒體裝置(例如電視或機頂盒購物)等。

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

面對如此多的管道和銷售方式,營運和銷售如何有效掌控,并通過數字化方式進行營運是一項硬能力。讓我們來看幾個例子:

例子1:新使用者引流

網際網路經典書籍《上瘾:建構習慣養成的産品》把使用者擷取過程分為4個階段:觸發、行動、獎勵、投入。作為最開始的觸發環節,給使用者群發消息是最有效的手段之一。但如何衡量轉化效果呢?

我們可以在推廣資訊中做一個埋點,把使用者點選短信帶上關聯資訊,例如設計一個如下的URL,其中放入2個關鍵參數:

  • t: 代表發送的批次編号,也可以作為管道的辨別
  • m:代表發送的短信号碼
html://mywebsite.com/new?t=1002&m=13860394XX           
數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

當使用者點點選消息通路站點時,我們在服務端通路日志中會自動記錄對應資訊:

202.168.1.209 - - [02/Feb/2016:17:44:13+0800] "GEThtml://mywebsite.com/new?t=1002&m=13860394XX  HTTP/1.1" 200 209 - "Mozilla/5.0(Macintosh; Intel Mac OS X10_11_3) AppleWebKit/537.36(KHTML, like Gecko)Chrome/48.0.2564.97 Safari/537.36"           

這樣我們就能獲得推廣效果和轉化率:

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

例子2:線上購買意圖捕捉

在擷取客戶後,下一步是讓使用者付諸于行動。使用者在浏覽商品時,會有頁面的停留,閱讀,比較和加入購物車等操作。可以借助Web Tracking和Serve端埋點來進行靜态與動态資料采集。

在靜态網頁和浏覽器埋點:

<img src=‘http://${project}.${sls-host}/logstores/${logstore}/track_ua.gif?APIVersion=0.6.0&key1=val1&key2=val2’/>            

通過JS埋點:

varlogger = new window.Tracker('cn-hangzhou.log.aliyuncs.com','ali-test-tracking','web-tracking');
logger.push('customer','zhangsan');
logger.push('product','iphone6s');
logger.push('price',5500);
logger.logger();           

在完成資料埋點後,我們可以在日志服務分析功能中,獲得每個環節的點選數和轉化數字,以衡量購買階段的效果。

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後
Web Tracking連結: https://help.aliyun.com/document_detail/31752.html 服務端埋點連結: https://help.aliyun.com/document_detail/28979.html

資料采集挑戰

從上面例子來看,資料采集是數字化IT的基礎。讓我們來看一個典型的資料采集架構:

  1. 購買一批機器搭建網絡伺服器
  2. 為伺服器搭建負載均衡裝置
  3. 在網絡伺服器(例如Nginx)子產品中使用Kafka等中間件寫入資料
數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

該方案通過無狀态設計解決了高可用,按需擴容等問題,也是衆多廠商采用的方案,在理想狀态下運作得非常好。但在現實過程中,往往會遇到如下挑戰:

步驟 子產品 挑戰 成本
協定封裝與用戶端開發 需要開發衆多SDK,例如Android、IOS、嵌入式等 研發成本、運維
用戶端傳輸 面向網絡不可用 斷點續傳功功能
傳輸過程中安全問題 HTTPS協定支援與證書
用戶端更新 用戶端如果有Bug如何更新 運維成本
傳輸 網絡品質差 購買昂貴專線
地域與合規 使用者資料不能出國,例如歐盟等協定 在全球建各資料中心
網絡選擇 營運商速度、品質不一,品質差 購買第三方加速服務
服務端 擴容 流量上漲時,如何自動擴容 購買伺服器、手動運維
防攻擊 采集伺服器可能被DDOS 運維伺服器
認證 進行使用者認證與管理 開發負責的認證與管理子產品
資料加工 資料到服務端後,增加來源IP、服務端時間等字段 服務端開發成本
上下遊對接 對接各種流計算、離線處理系統 硬體采購、程式開發與維護

作為使用者最終的目标是為了分析資料。但這些問題的存在,需要在業務、規模與增長上消耗大量人力、精力和物力,幹了不一定幹得好。

日志服務LogHub功能

阿裡雲日志服務(Log Service,/原SLS)

是針對實時資料一站式服務,其中的LogHub子產品就是專為資料采集定制的功能,該功能有如下特點:

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

1. 30+實時采集手段

LogHub提供

30+種開箱即用的資料采集手段

,包括直接和雲産品打通的日志、移動端、服務端、程式、SDK、網頁、嵌入端等,以下我們分别介紹下最常用的四種與試用場景:

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後
方式 應用場景 目前規模 優勢
Logtail X86伺服器采集 百萬-千萬 功能強
Android/IOS SDK 移動端資料采集、手機、POS機等 千萬DAU 斷點續傳
C Producer Library 硬體資源受限的系統(如 IoT、嵌入式、RTOS等) 千萬-億級 資源消耗低
Web Tracking 網頁靜态資料采集 輕量級,無驗證

1.1 Logtail(部署量最大Agent)

Logtail安裝在X86裝置上,通過中央伺服器進行管控,隻需點點滑鼠或API就能夠在幾秒鐘内對百萬機器下達資料采集指令。Logtail目前每天有幾百萬的運作執行個體,适配所有Linux版本、Window、Docker、K8S等環境;支援幾十種資料源對接,關于Logtail功能可以參見

介紹文檔

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

得益于阿裡巴巴集團場景的不斷錘煉,Logtail和開源Agent(例如Fluentd、Logstash、Beats)相比,性能、資源消耗、可靠性和多組合隔離等硬名額上較為領先。可以滿足國内最大的直播網站、最大的教育類網站、最大的金融類網站的苛刻要求。和開源Agent主要差距在于日志格式的豐富性(目前Logtail版本已支援Logstash、Beats協定,既可以将這些開源插件無縫跑在Logtail之上)。

2018年Logtail針對Docker/K8S等場景做了非常多的适配工作,包括:

  • 一條指令一個參數即可實作部署,資源自動初始化
  • 支援CRD方式配置,支援K8S控制台、kubectl、kube api等,與K8S釋出、部署無縫內建
  • K8S RBAC鑒權,日志服務STS鑒權管理

可以自豪地說,Logtail方案是K8S下所有Agent中最全,最完整的之一,感興趣可以參見

LC3視角:Kubernetes下日志采集、存儲與處理技術實踐

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

1.2 C Producer Library系列(面向嵌入式裝置新秀)

​ 除X86機器外,我們可能會面對各種更底層IoT/嵌入式裝置。針對這種場景,LogHub推出C Producer Library系列SDK,該SDK可以定位是一個“輕量級Logtail”,雖沒有Logtail實時配置管理機制,但具備除此之外70%功能,包括:

  • 多租戶概念:可以對多種日志(例如Metric,DebugLog,ErrorLog)進行優先級分級處理,同時配置多個用戶端,每個用戶端可獨立配置采集優先級、目的project/logstore等
  • 支援上下文查詢:同一個用戶端産生的日志在同一上下文中,支援檢視某條日志前後相關日志
  • 并發發送,斷點續傳:支援緩存上線可設定,超過上限後日志寫入失敗

    專門為IoT準備功能:

  • 本地調試:支援将日志内容輸出到本地,并支援輪轉、日志數、輪轉大小設定
  • 細粒度資源控制:支援針對不同類型資料/日志設定不同的緩存上線、聚合方式
  • 日志壓縮緩存:支援将未發送成功的資料壓縮緩存,減少裝置記憶體占用
數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後
關于C Producer Library的更多内容參見目錄: https://yq.aliyun.com/articles/304602

目前針對不同的環境(例如網絡伺服器、ARM裝置、以及RTOS等裝置)從大到小我們提供了3種方案:

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

​ 在X86以及ARM裝置測試場景中,C-Producer系列SDK能在穩定服務情況下,極大優化性能和記憶體空間占用,勝任隻有4KB運作記憶體的火火兔場景(Brick版本)。

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

使用C Producer系列的客戶有: 百萬日活的天貓精靈、小朋友們最愛的故事機火火兔、 遍布全球的碼牛、釘釘路由器、 相容多平台的視訊播放器、 實時傳輸幀圖像的攝像頭等。

這些智能SDK每天DAU超百萬,遍布在全球各地的裝置上,一天傳輸百TB資料。關于C Producer Library 的細節可以參考這篇文章:

智能裝置日志利器:嵌入式日志用戶端(C Producer)釋出
數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

2. 服務端多地域支援

​ 用戶端問題解決了後,我們來看看服務端。LogHub 是阿裡雲化基礎設施,在

全球阿裡雲所有Region都有部署

。確定無論業務在哪個Region開展,都可以選擇就近的Region。

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

例如歐盟、新加坡等國家有相關的法律限制資料不能出境,對于這類場景我們可以選擇合适的資料中心來提供服務。對于同Region下ECS、Docker等服務,我們可以直接使用同Region服務進行處理,節省跨洋傳輸的成本。

3. 全球加速網絡

​ 對全球化業務而言,使用者可能分布在全球各地(例如遊戲,App、物聯網等場景),但在建構數倉業務的過程中,我們往往需要對資料進行集中化處理。例如一款移動App使用者散布在全國各省市

  • 将日志采集中心定在杭州,那對于西南(例如成都)使用者而言,遠端進行日志傳輸的延時和品質難以保障
  • 将日志采集中心定在成都,那對位于東部和東北使用者又難以權衡,更不用說中國的三大營運商鍊路品質的影響
數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

​ 2018年6月初LogHub 聯合 CDN 推出了一款全球自動上傳加速方案:“基于阿裡雲CDN硬體資源,全球資料就近接入邊緣節點,通過内部高速通道路由至LogHub,大大降低網絡延遲和抖動 ”。隻需簡單配置即可建構起快速、穩定的全球資料采集網絡,任意LogHub SDK都可以通過Global域名獲得自動加速的支援。

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

在我們測試case中,經過全球7個區域對比整體延時下降50%,在中東,歐洲、澳洲和新加坡等效果明顯。除了平均延時下降外,整體穩定性也有較大提升(參見最下圖,幾乎沒有任何抖動)。確定如何在世界各地,隻要通路一個統一域名,就能夠高效、便捷将資料采集到期望Region内。

4. 服務端彈性伸縮

​ 在解決網絡接入問題後,我們把問題聚焦在服務端流量這個問題上。熟悉Kafka都知道,通過Partition政策可以将服務端處理資源标準化:例如定義一個标準的單元Partition或Shard(例如每個Shard固定5MB/S寫,10MB/S讀)。當業務高峰期時,可以背景Split Shard以擷取2倍的吞吐量。

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

這種方法看起來很工程化,但在使用過程中有兩個難以繞開的現實問題:

  • 業務無法預測:事先無法準确預估資料量,預設多少個shard才合适呢
  • 人的反應滞後:資料量随時會突增,人不一定能夠及時處理,長時間超出服務端負載能力會有資料丢失風險

​ 針對以上情況,LogHub提供了全球首創Shard自動分裂功能:在使用者開啟該功能後,背景系統實時監控每個shard的流量,如果發現一個shard的寫入在一段時間内,有連續出現超過shard處理能力的情況,會觸發shard的自動分裂,時刻保障業務流量。

數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後
更多細節可以參考這篇文章: 支援Shard自動分裂

5. 豐富上下遊生态與場景支援

LogHub也提供豐富上下遊與生态對接,包括各種主流流計算、資料倉庫等引擎支援:

  • 采集端:Logstash、Beats、Log4J等
  • 實時消費端(流計算):Flink/Blink、Storm、Samza等
  • 存儲端(數倉):Hadoop、Spark、Presto、Hive等
數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

通過LogHub與日志服務其他功能+産品組合,可以輕松支撐安全、營運、運維和研發對于資料處理的各種場景需求,更多可以

參考學習路徑

使用者手冊
數字IT基礎-資料采集總線數字化營運基礎資料采集挑戰日志服務LogHub功能寫在最後

寫在最後

日志服務是阿裡自産自用的産品,在雙十一、雙十二和新春紅包期間承載阿裡雲/螞蟻全站、阿裡電商闆塊、雲上幾千商家資料鍊路,每日處理來自百萬節點幾十PB資料,峰值流量達到每秒百GB, 具備穩定、可靠、低成本,生态豐富等特性。

阿裡雲官網上提供

同款産品

,隻要5分鐘便可開通并開啟數字化IT之旅,歡迎試用。

繼續閱讀