新聞中心
在高效地支撐蘇寧互聯(lián)網(wǎng)相關(guān)業(yè)務(wù)的過程中,各系統(tǒng)間的交互也變得如圖 1 一樣錯(cuò)綜復(fù)雜,下圖中的點(diǎn)代表各個(gè)應(yīng)用系統(tǒng),連線代表系統(tǒng)間的交互。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的金林網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
圖 1:系統(tǒng)交互圖
以上錯(cuò)綜復(fù)雜的特性主要由以下兩個(gè)原因?qū)е拢?/p>
- 系統(tǒng)和服務(wù)的復(fù)雜性:體系數(shù)量龐大:4000+ 系統(tǒng),10w+ 服務(wù);系統(tǒng)間調(diào)用方式復(fù)雜:大部分使用 RSF,也有其他的方式,如 HESSIAN,ESB等。
- 業(yè)務(wù)的復(fù)雜:既有線上新業(yè)務(wù)又有線下老業(yè)務(wù),這些業(yè)務(wù)系統(tǒng)之間會有大量的關(guān)聯(lián)。
基礎(chǔ)環(huán)境的復(fù)雜性:多數(shù)據(jù)中心,每個(gè)數(shù)據(jù)中心會劃分多個(gè)邏輯機(jī)房和部署環(huán)境;一個(gè)系統(tǒng)服務(wù)器規(guī)模往往會很大,例如,緩存服務(wù)器就可能有上千臺。
為解決上述復(fù)雜性問題和更加有效的支撐整個(gè)業(yè)務(wù)的發(fā)展,我們提出了立體式監(jiān)控解決方案。
所謂立體式監(jiān)控,是由傳統(tǒng)的單點(diǎn)系統(tǒng)監(jiān)控演化而來,在復(fù)用當(dāng)前監(jiān)控探針的前提下,由單點(diǎn)發(fā)展為對業(yè)務(wù)全鏈路的監(jiān)控。
并根據(jù)采集而來的監(jiān)控?cái)?shù)據(jù)進(jìn)行多維度、甚至任意維度的分析,實(shí)現(xiàn)多維空間的監(jiān)控,便于快速預(yù)判和定位系統(tǒng)或者業(yè)務(wù)故障,提升業(yè)務(wù)支撐效率。
監(jiān)控體系建設(shè)
蘇寧監(jiān)控一體化解決方案旨在為用戶提供從系統(tǒng)監(jiān)控、問題定位、實(shí)時(shí)告警到?jīng)Q策分析、故障自愈的一站式解決方案。即全力為用戶打造從“監(jiān)”到“控”的全方位一體化 APM/CPM 解決方案。
從移動 App、PC/WAP端、網(wǎng)絡(luò)端、服務(wù)端、調(diào)用鏈各個(gè)級別進(jìn)行應(yīng)用性能分析。
能夠深入到應(yīng)用、數(shù)據(jù)庫自動捕獲應(yīng)用性能異常,自動識別有問題的應(yīng)用組件和代碼,利用關(guān)鍵業(yè)務(wù)性能剖析進(jìn)行故障原因深度分析,非 IT 專家也能夠快速定位問題原因所在。
采用新一代的應(yīng)用監(jiān)控技術(shù),將企業(yè)數(shù)據(jù)中心基礎(chǔ)資源監(jiān)測數(shù)據(jù)、用戶體驗(yàn)監(jiān)測數(shù)據(jù)、應(yīng)用代碼性能分析數(shù)據(jù)、網(wǎng)絡(luò)性能數(shù)據(jù)、系統(tǒng)運(yùn)行日志等各類異構(gòu)、海量的 IT 監(jiān)測數(shù)據(jù)進(jìn)行集中收集和處理,融合蘇寧大數(shù)據(jù)能力,構(gòu)建更加高效、更加智能的 IT 故障分析能力。
立體式監(jiān)控體系整體架構(gòu)圖如圖 2 所示:
圖 2:蘇寧立體式監(jiān)控概覽
第一個(gè)維度
從左到右,是從監(jiān)控的思路進(jìn)行構(gòu)建的:
- 左邊一塊為監(jiān)測產(chǎn)品,主要用來發(fā)現(xiàn)問題。
- 問題發(fā)送給智能告警平臺和決策分析平臺,定位問題根源,反饋給研發(fā)團(tuán)隊(duì)及時(shí)進(jìn)行處理,以及服務(wù)治理系統(tǒng)進(jìn)行治理。
- 右邊是自動化的干預(yù)處理,最后再回到最左的流程中進(jìn)行監(jiān)測。
第二個(gè)維度
從上到下,從前端到后端。我們現(xiàn)在的監(jiān)控主要面對的是蘇寧一些核心應(yīng)用,比如蘇寧易購手機(jī)端、蘇寧金融易付寶等等。
這些應(yīng)用用戶數(shù)量多、范圍廣、使用頻次高,會不斷地反饋應(yīng)用或服務(wù)的問題。
先從用戶角度,對用戶體驗(yàn)進(jìn)行監(jiān)控,一旦發(fā)現(xiàn)問題,會立刻針對數(shù)據(jù)進(jìn)行溯源,到客戶端通過 SDK 或 JS 抓取一些傳統(tǒng)標(biāo)準(zhǔn)做法采集數(shù)據(jù),再通過多維度分析,將數(shù)據(jù)問題反饋給研發(fā)。
同時(shí)我們會對服務(wù)端進(jìn)行性能監(jiān)控,前面也說服務(wù)端的系統(tǒng)相對而言要復(fù)雜得多,因此我們往往會想辦法串起前后端,做到分鐘級甚至秒級調(diào)用,所以我們對調(diào)用鏈也進(jìn)行了監(jiān)控。
而調(diào)用鏈監(jiān)控依然是在中間件層面,也可能是基礎(chǔ)設(shè)置的波動導(dǎo)致了問題的產(chǎn)生,所以在底層對基礎(chǔ)設(shè)施構(gòu)建了監(jiān)控。
第三個(gè)維度
從數(shù)據(jù)層面:
- 首先是 Metric 指標(biāo),這個(gè)指標(biāo)可以是從基礎(chǔ)設(shè)施而來的,可以是業(yè)務(wù)層面定義的,也可以來自性能監(jiān)控,這是評估性能的一個(gè)重要指標(biāo)。
- 還有一個(gè)是 Event 事件,日志監(jiān)控承載了非常重要的能力,事件幫助系統(tǒng)定位問題。
- 第三個(gè)指標(biāo) Trace,來源于調(diào)用鏈。三個(gè)指標(biāo)會產(chǎn)生交集,輔助定位、排查問題。
根據(jù)目前監(jiān)控體系的現(xiàn)狀,為了滿足日益復(fù)雜的監(jiān)控需求,打造基于 AI 的監(jiān)控體系,實(shí)現(xiàn)面向用戶體驗(yàn)的無人化智能服務(wù)解決方案目標(biāo),我們提出了面向現(xiàn)代監(jiān)控的體系規(guī)劃。
詳細(xì)的規(guī)劃如圖 3 所示:
圖 3:面向現(xiàn)代監(jiān)控的體系規(guī)劃
在該體系中,通過引入自然語言處理、建立知識圖譜和圖像識別等 AI 技術(shù),讓監(jiān)控實(shí)現(xiàn)無人值守,用戶可以更簡單便利地與監(jiān)控系統(tǒng)機(jī)器人進(jìn)行交互,獲取所需的監(jiān)控信息。
在問題分析和決策領(lǐng)域,將通過建立計(jì)算模型生成不同維度的指標(biāo),實(shí)現(xiàn)多維度的關(guān)聯(lián)分析和異常檢測,并且動態(tài)計(jì)算出告警閾值,生成告警事件推送給用戶。
監(jiān)控技術(shù)實(shí)現(xiàn)
監(jiān)控產(chǎn)品介紹
立體式監(jiān)控體系由一系列的監(jiān)控產(chǎn)品構(gòu)成,每種監(jiān)控產(chǎn)品都存在獨(dú)特的特性,但同時(shí)也和其他產(chǎn)品有著相互協(xié)調(diào)的關(guān)聯(lián)關(guān)系,從而形成一個(gè)監(jiān)控生態(tài)體系。
監(jiān)控主要產(chǎn)品如圖 4 所示:
圖 4:監(jiān)控體系主要產(chǎn)品及其關(guān)系
用戶體驗(yàn)監(jiān)控(UOM)
UOM 是一個(gè)可以對用戶產(chǎn)品端進(jìn)行全方位、多種維度進(jìn)行監(jiān)控和分析的平臺。
通過將監(jiān)控采集 SDK 無侵入或者較少侵入的植入用戶端中,獲取用戶在使用產(chǎn)品時(shí)對用戶造成體驗(yàn)影響的調(diào)用鏈異常數(shù)據(jù),并基于此進(jìn)行分析、預(yù)測和告知該產(chǎn)品的相關(guān)運(yùn)維人員。
通過采用無侵入和較少侵入的方式,將采集 SDK 植入用戶應(yīng)用,實(shí)現(xiàn)對用戶應(yīng)用的系統(tǒng)異常、業(yè)務(wù)異常、用戶信息進(jìn)行采集。
對異常數(shù)據(jù)進(jìn)行建模,形成相應(yīng)的異常數(shù)據(jù)趨勢圖和用戶軌跡,實(shí)現(xiàn)迅速地對用戶應(yīng)用問題進(jìn)行定位。
通過態(tài)勢感知計(jì)算模型動態(tài)計(jì)算異常增長率,根據(jù)不同維度的規(guī)則配置,實(shí)現(xiàn)對應(yīng)用異常問題進(jìn)行告警。
UOM 機(jī)器人可滿足用戶在豆芽中,通過自然語言方式直接和機(jī)器人交流,實(shí)現(xiàn)快速獲取問題根本原因。
圖 5:UOM 系統(tǒng)技術(shù)架構(gòu)
日志統(tǒng)計(jì)分析
離線日志統(tǒng)計(jì)分析是運(yùn)用大數(shù)據(jù)技術(shù),海量歷史日志分析的一種解決方案。專注于幫助使用者發(fā)現(xiàn)并解決系統(tǒng)性能問題。
通過分析各類訪問日志,得到各系統(tǒng)使用過程中請求量、響應(yīng)時(shí)間、錯(cuò)誤率、命中率等性能指標(biāo),可以通過分析來源 IP 判斷是否遭受攻擊等。
圖 6:離線分析
實(shí)時(shí)日志統(tǒng)計(jì)分析是一個(gè)在 E(Elasticsearch)F(Flume)K(Kibana4)的基礎(chǔ)上進(jìn)行二次開發(fā)的平臺。
它集成了蘇寧內(nèi)部的賬號體系和系統(tǒng)基礎(chǔ)數(shù)據(jù),實(shí)現(xiàn)準(zhǔn)實(shí)時(shí)日志的檢索、統(tǒng)計(jì)分析。
圖 7:實(shí)時(shí)分析
調(diào)用鏈監(jiān)控
完全采用 OpenTracing 標(biāo)準(zhǔn),對系統(tǒng)異常和業(yè)務(wù)異常進(jìn)行全鏈路監(jiān)控。采用字節(jié)碼技術(shù)實(shí)現(xiàn)監(jiān)控 SDK 植入,對業(yè)務(wù)系統(tǒng)功能不會造成影響。同時(shí)提供及時(shí)關(guān)閉、自動升級功能,節(jié)省人工、降低風(fēng)險(xiǎn)。
并可以應(yīng)用于各領(lǐng)域應(yīng)用系統(tǒng)服務(wù)和調(diào)用鏈監(jiān)控,為 IT 研發(fā)人員檢測系統(tǒng)健康、定位解決問題提供可靠依據(jù)。
根據(jù)異常棧詳情,用戶可以直觀了解到操作的頁面軌跡以及服務(wù)端系統(tǒng)的調(diào)用鏈路。
系統(tǒng)利用機(jī)器學(xué)習(xí)分析異常數(shù)據(jù)并做出預(yù)判,提供一站式的預(yù)警、排查、告警和問題解決策略。
圖 8:調(diào)用鏈監(jiān)控模塊
監(jiān)控組件介紹
通過之前的介紹,我們了解了很多目前蘇寧監(jiān)控體系中的產(chǎn)品,這些監(jiān)控產(chǎn)品如何無侵入式的植入各個(gè)應(yīng)用中,如何實(shí)現(xiàn)對監(jiān)控?cái)?shù)據(jù)的采集,請參考圖 9。
圖 9:無侵入式數(shù)據(jù)采集
具體過程如下:
- 通過字節(jié)碼攔截請求,創(chuàng)建調(diào)用上下文、生成埋點(diǎn)。
- 調(diào)用上下文保存在 ThreadLocal,對應(yīng)用透明。
- 調(diào)用上下文包含了 TraceId、RpcId、調(diào)用類型等數(shù)據(jù)。
- 調(diào)用上下文隨著 Http 調(diào)用在網(wǎng)絡(luò)間傳輸。
“源頭型”:生成 TraceId,創(chuàng)建調(diào)用鏈,結(jié)束調(diào)用鏈。
“單項(xiàng)型”:僅客戶端,生成日志(服務(wù)端未埋點(diǎn))。
“雙向型”:客戶端+服務(wù)端,傳輸上下文,生成日志。
根據(jù)以上的實(shí)現(xiàn)方式,無侵入式監(jiān)控?cái)?shù)據(jù)采集的整體調(diào)用順序如圖 10 所示:
圖 10:監(jiān)控?cái)?shù)據(jù)采集時(shí)序圖
在時(shí)序圖中,我們可以看到請求發(fā)送到前端應(yīng)用時(shí),將會調(diào)用 StartTrace 生成一個(gè)全局唯一的 TraceId,TraceId 使用了 IP + Timestamp + 順序數(shù) + 進(jìn)程號的方式保證唯一性。
其次通過對 StartRpc 的調(diào)用生成相應(yīng)的 RpcId,它標(biāo)識著一次請求的順序和嵌套關(guān)系,各個(gè)系統(tǒng)間傳遞,調(diào)用關(guān)系是同步、異步還是一對多調(diào)用。
通過使用 TraceId + RpcId 組合的方式完成整個(gè)調(diào)用鏈的異常數(shù)據(jù)標(biāo)識和采集。
在監(jiān)控?cái)?shù)據(jù)采集過程中,也遇到過相關(guān)的難點(diǎn),但是經(jīng)過努力,也都一一解決,以下是我歸納的一些早前所遇到的問題和解決方法,可供大家參考。
愿景
未來,蘇寧將全面打造 AI 監(jiān)控生態(tài)云平臺,對全生態(tài)監(jiān)控體系實(shí)現(xiàn)無人值守的監(jiān)控。
用戶可通過多種方式(語音、文本、動作)與機(jī)器人進(jìn)行交互,機(jī)器人將給出用戶需要的分析數(shù)據(jù),并能根據(jù)結(jié)果數(shù)據(jù)給出相應(yīng)的解決方案。
以用戶為導(dǎo)向,形成用戶行為分析閉環(huán),實(shí)現(xiàn)資源智能地分配與回收,讓監(jiān)控改變世界。
作者:湯泳
簡介:蘇寧易購 IT 總部數(shù)據(jù)云公司監(jiān)控研發(fā)中心總監(jiān),蘇寧一體化智能監(jiān)控體系首席架構(gòu)師。15 年從業(yè)背景,數(shù)學(xué)與計(jì)算機(jī)科學(xué)系畢業(yè),師從中科院自然語言處理黃和燕導(dǎo)師,主導(dǎo)“云穆“立體式智能監(jiān)控產(chǎn)品研發(fā)。這些產(chǎn)品服務(wù)于蘇寧控股集團(tuán)八大產(chǎn)業(yè) 4000+ 系統(tǒng)、10W+ 服務(wù),保障電商平臺日常和大促時(shí)段線上系統(tǒng)平穩(wěn)運(yùn)行。目前,致力于蘇寧 AIOps 能力建設(shè)。
【原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為.com】
文章名稱:4000+系統(tǒng),10w+服務(wù)的立體式監(jiān)控是如何煉成的?
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/dhocegp.html


咨詢
建站咨詢
