閱讀307 返回首頁    go 英雄聯盟


技術架構__產品簡介_業務實時監控服務 ARMS-阿裏雲

技術架構概述

ARMS的技術架構由下麵幾個模塊組成

arch_work_flow

在完整的一個監控任務中,數據流依次經過以下技術棧:

  1. 從數據源流入數據通道,作統一管理和緩存作用。
  2. 從數據通道流入實時計算引擎進行實時計算。
  3. 計算結果流入持久化存儲平台作統一存儲。
  4. 通過數據展示層對數據進行各類導出,包括,OpenAPI直接讀取,報表展示,報警通知,等。

以下對每個涉及到的技術棧作說明。

數據源

在ARMS中,數據源負責為ARMS提供數據輸入。數據源包括以下幾種方式:

  • 雲服務器ECS數據源: 應用直接將數據在ECS上輸出到相應的日誌文件上,再通過ECS上的ARMS Agent (也就是SLS Agent)將日誌數據傳輸到ARMS計算節點中。通過ECS方式獲取數據的應用需要在相應的ECS上安裝和配置ARMS Agent,並在某些情況下要求應用就相關數據日誌進行改造。
  • LogHub數據源:也叫做SLS日誌源。ARMS可以通過重用用戶在阿裏雲上的SLS-日誌服務來直接拉去SLS中的數據。
  • API數據源:通過提供API接口來為用戶進行數據收集。用戶可以將API集成到各類不方便收集日誌的終端進行數據收集。典型場景如各類移動終端的數據收集。
  • DRDS(敬請期待): 通過解析DRDS或者RDS的Binlog,將指定的數據傳輸到ARMS計算節點。該種方式可以有效即時獲取數據庫中增、刪、改的數據。
  • MQ(敬請期待): 通過配置MQ相應Topic的接收端,將指定的數據以消息方式傳輸到ARMS計算節點。

ARMS在收集數據時,需要在已定義的數據源中通過建立數據采集規則來實現數據采集。以ECS方式為例,采集規則包括從哪些數據源中收集,對應的文件路徑,等。

數據通道

從數據源中流出的數據首先進入數據通道。數據通道在ARMS中其實是一個類似於Kafka的數據隊列。它主要起到以下作用:

  • 保證從數據源中流出的數據能立即被ARMS接收到,以為下遊的實時計算層充當緩衝層。
  • 當計算節點出現任何異常時,相應時間點數據能統一從日誌通道重新發送給計算層,以保證所有數據至少被實時計算層處理過一次。

日誌通道在ARMS上對於用戶是透明不可見的。用戶僅能控製數據源和實時計算層的計算邏輯。日誌通道的各類管理由ARMS自動完成。

實時計算

在數據通道中的數據會被ARMS計算層節點實時讀取。ARMS實時計算層的實時計算能力由基於阿裏內部開發且開源的實時計算引擎JStorm提供,並實現毫秒級的流式計算處理能力。

ARMS的實時計算層雖然基於JStorm,但是並不要求用戶基於編寫JStorm的流式計算任務。在ARMS中,用戶隻需要基於交互界麵做以下事情:

  • 定義數據的清洗邏輯:例如一行日誌數據是以”|”或是”;”符號進行切分(清洗的一種邏輯),切分後的Key-Value設定等。
  • 定義數據集的聚合計算邏輯:例如數據以何種維度進行聚合(Group By),聚合的計算方式(Sum, Max, etc)等。

在監控任務中,用戶通過定義清洗和聚合計算邏輯來產出計算結果,最終的結算結果形成一個個特定的數據集,被持久化的存儲層。

持久化存儲

作為一款致力於提供端到端實時監控解決方案的產品,ARMS除了提供實時計算能力以外,同時將計算結果持久化以供下遊使用的能力。

在ARMS中,持久化存儲通過特質的列式存儲實現,以達到高吞吐和高擴展的性能要求。在實時計算中產生的一個個數據集以ARMS特定優化的數據結構方式存儲在HBase中。存儲具體結構對外部透明,而並不需要用戶幹預。用戶隻需要在實時計算中通過控製產生的數據集和相關屬性(索引鍵,保存周期,等)來控製哪些數據需要進行持久化存儲,以及對應的存儲空間。

ARMS持久化到後端列式存儲的數據結構對外部透明。用戶通過訪問數據展示層來間接訪問列式存儲的數據結果。

數據展示層

ARMS的監控數據結果一般可通過以下三種方式被用戶利用。

  • RestAPI: 最直接的方式。通過RestAPI基於數據集定義的各類查詢Key對數據結果進行訪問。
  • 報表控件: 每個報表控件基於特定的一個或一組數據集。用戶通過將報表控件嵌入到自己的展示頁麵(盡情期待)或者直接在ARMS的大盤中進行交互式訪問。
  • 報警通知: 通過定義報警策略,定期對數據集結果進行抓取和匹配,對符合特征的事件進行包括Email, 短信方式的報警。

最後更新:2016-11-23 16:04:15

  上一篇:go 典型場景__產品簡介_業務實時監控服務 ARMS-阿裏雲
  下一篇:go 關鍵組件和流程__產品簡介_業務實時監控服務 ARMS-阿裏雲