1. 程式人生 > >對微服務監控系統分層和監控架構的理解

對微服務監控系統分層和監控架構的理解

對微服務監控系統分層和監控架構的理解

 

目錄

 

 

1. 簡介

監控的重要性不言而喻, 微服務架構的特點決定了其監控實現更具有挑戰性與難度,從以下方面理解微服務的監控相關(非特別指明的監控都是指的微服務架構體系下的監控): 
1. 簡介 
2. 為什麼需要監控體系 
3. 與單體應用有什麼區別 
4. 要監控什麼 
5. 監控體系和分層 
6. 監控架構和主流技術棧

2. 為什麼需要監控體系

以問題的形式來理解為什麼需要監控體系,也是我們需要監控體系的理由

  • 分散在各個伺服器上的日誌如何處理
  • 業務流程出現問題,如何快速的定位問題發生在哪個環節、哪個點
  • 如何跟蹤業務流的處理順序和處理結果
  • 如何實現事故的預警,如資源不足
  • 如何分析系統的效能瓶頸

3. 與單體應用有什麼區別

  • 單體應用環境下,所有的業務都在同一個伺服器上,如果出現錯誤和異常,只需要聚焦於伺服器這一點,往往就可以快速定位和解決問題

  • 微服務架構下,大部分功能模組都是單獨部署、獨立執行的,彼此通過介面互動,都是無狀態的服務,業務流會涉及多個服務,複雜度會高很多

4. 要監控什麼

  • 服務概覽資訊:如服務名稱、服務部署所在機房、主機、服務包含的API、服務相關配置資訊、服務負責人、開發人員、運維人員資訊等
  • 服務效能指標:如響應實現、流量、成功、失敗數、請求頻率等
  • 服務拓撲關係:服務之間的呼叫關係
  • 服務呼叫鏈:服務的整個呼叫鏈監控
  • 服務版本資訊:服務版本,客戶端版本等
  • 服務治理狀態:服務註冊情況、服務狀態、熔斷等
  • 元件內部狀態:活躍執行緒數、處理請求數等

5. 監控體系和分層

從底到上分為:基礎設施監控、系統層監控、應用層監控、業務層監控、端使用者體驗監控

監控體系

6. 監控架構和主流技術棧

暫時沒有具體的實踐和使用,先做理解

監控架構

架構理解

  • 對主機的監控包括基礎設施層監控、系統層監控
  • 對微服務監控包括應用層監控、業務監控,以及部分端使用者體驗監控
  • 端使用者體驗監控需要埋點方式蒐集資訊補充完善

技術棧理解

  • kafka:基於釋出訂閱模式的分散式訊息佇列,將資訊的蒐集與處理解耦
  • sensu:由 Sonian 公司開發的一種監控框架,主要用於擁有大規模節點的雲端計算平臺的檢查與監控。可與時序資料庫以及Grafana結合實現基礎設施、系統監控從資料收集到圖形化展示
  • ELK(Elasticsearch + Kibana + Logstash) 
    • ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。
    • Kibana是一個開源的分析與視覺化平臺,設計出來用於和Elasticsearch一起使用的。你可以用kibana搜尋、檢視、互動存放在
    • Logstash 是開源的伺服器端資料處理管道,能夠同時從多個來源採集資料、轉換資料,然後將資料傳送到您最喜歡的 “儲存庫” 中。 
      Elasticsearch索引裡的資料,使用各種不同的圖表、表格、地圖等kibana能夠很輕易地展示高階資料分析與視覺化。
  • InfluxDB:是一個開源的沒有外部依賴的時間序列資料庫。適用於記錄度量,事件及執行分析。
  • Grafana:是用於視覺化大型測量資料的開源程式,他提供了強大和優雅的方式去建立、共享、瀏覽資料。dashboard中顯示了你不同metric資料來源中的資料。一般與時序資料庫(InfluxDB)結合使用