監控系統到底都監控什麼?QoS與SLA又將如何得以保障?

目錄

1、傳統應用監控

2、業務應用監控,簡稱SSM

3、Kubernetes容器應用監控方案——Prometheus+Grafana監控系統

Prometheus可以做什麼

4、基於Pinpoint應用性能監控

5、NPM網絡性能監控

6、微服務的全鏈路監控(Google Dapper)

7、智能監控(AI、人工智能、大數據)

高性能日誌分析(DOLA)


業務高速發展,服務質量(QoS)與系統服務等級協議(SLA)指標如何得以保障呢?全方位立體式監控,一站式服務,助力企業快速發現並定位問題,提升服務質量,達到服務高可用指標。

從監控歷程看,大概分爲一下幾部分:

1、傳統應用監控

由於開放式平臺標準化產品的特點,通過使用IBM tivoli、HP OpenView、Oracle EM等標準化的商用監控產品,數據中心能夠方便快捷地實現面向主機、服務器、網絡、存儲、環境動力、操作系統、數據庫、中間件等標準化軟硬件產品的監控,並實現了各個專業的監控事件和容量性能數據的集中展現和處理。

以下是中間件監控視圖(Redis、Mysql等)

2、業務應用監控,簡稱SSM

SSM是指對關鍵業務應用的監測和優化,提高業務應用的可用性和可靠性指標,在提供更優質服務的前提下,降低運維的投入和工作量,爲用戶帶來更多的商業利益和客戶體驗。

業務運維,實現業務和ID的雙向驅動。從業務視角實時感知業務系統運行狀態,確保業務連續性,持續提升業務效能。業務監控的核心價值主要體現在以下幾方面:

  • 監控業務表現
  • 確保業務連續性
  • 全渠道業務管控
  • 完善數字化KPI

如何實現業務監控,業務監控指標是關鍵。Four Golden Signals是Google針對大量分佈式監控的經驗總結,4個黃金指標可以在服務級別幫助衡量終端用戶體驗、服務中斷、業務影響等層面的問題。主要關注與以下四種類型的指標:延遲,通訊量,錯誤以及飽和度。

延遲:服務請求所需時間。

記錄用戶所有請求所需的時間,重點是要區分成功請求的延遲時間和失敗請求的延遲時間。 例如在數據庫或者其他關鍵禍端服務異常觸發HTTP 500的情況下,用戶也可能會很快得到請求失敗的響應內容,如果不加區分計算這些請求的延遲,可能導致計算結果與實際結果產生巨大的差異。除此以外,在微服務中通常提倡“快速失敗”,開發人員需要特別注意這些延遲較大的錯誤,因爲這些緩慢的錯誤會明顯影響系統的性能,因此追蹤這些錯誤的延遲也是非常重要的。

通訊量:監控當前系統的流量,用於衡量服務的容量需求。

流量對於不同類型的系統而言可能代表不同的含義。例如,在HTTP REST API中, 流量通常是每秒HTTP請求數;

錯誤:監控當前系統所有發生的錯誤請求,衡量當前系統錯誤發生的速率。

對於失敗而言有些是顯式的(比如, HTTP 500錯誤),而有些是隱式(比如,HTTP響應200,單實際業務流程依然是失敗的)。
對於一些顯式的錯誤如HTTP 500可以通過在負載均衡器(如Nginx)上進行捕獲,而對於一些系統內部的異常,則可能需要直接從服務中添加鉤子統計並進行獲取。

飽和度:衡量當前服務的飽和度。

主要強調最能影響服務狀態的受限制的資源。 例如,如果系統主要受內存影響,那就主要關注系統的內存狀態,如果系統主要受限與磁盤I/O,那就主要觀測磁盤I/O的狀態。因爲通常情況下,當這些資源達到飽和後,服務的性能會明顯下降。同時還可以利用飽和度對系統做出預測,比如,“磁盤是否可能在4個小時候就滿了”。

摘自作者:奚落大神

3、Kubernetes容器應用監控方案——Prometheus+Grafana監控系統

目前對於kubernetes的主流監控方案主要有以下幾種:

Heapster+InfluxDB+Grafana
每個K8S節點的Kubelet內含cAdvisor,暴露出API,Heapster通過訪問這些端點得到容器監控數據。它支持多種儲存方式,常用的是InfluxDB。這套方案的缺點是數據來源單一、缺乏報警功能以及InfluxDB的單點問題,而且Heapster也已經在新版本中被deprecated(被metrics server取代)了。這種實現方案的詳細介紹請見這篇文章。
Metrics-Server+InfluxDB+Grafana
k8s從1.8版本開始,CPU、內存等資源的metrics信息可以通過 Metrics API來獲取,用戶還可以通過kubectl top直接獲取這些metrics信息。Metrics API需要部署Metrics-Server。
各種Exporter+Prometheus+Grafana
通過各種export採集不同維度的監控指標,並通過Prometheus支持的數據格式暴露出來,Prometheus定期pull數據並用Grafana展示,異常情況使用AlertManager告警。本方案下文詳細敘述。

原文鏈接:https://blog.csdn.net/liukuan73/article/details/78881008

Prometheus可以做什麼

  • 在業務層用作埋點系統
    Prometheus支持各個主流開發語言(Go,java,python,ruby官方提供客戶端,其他語言有第三方開源客戶端)。我們可以通過客戶端方面的對核心業務進行埋點。如下單流程、添加購物車流程。

  • 在應用層用作應用監控系統
    一些主流應用可以通過官方或第三方的導出器,來對這些應用做核心指標的收集。如redis,mysql

  • 在系統層用作系統監控
    除了常用軟件, prometheus也有相關係統層和網絡層exporter,用以監控服務器或網絡。

  • 集成其他的監控
    prometheus還可以通過各種exporte,集成其他的監控系統,收集監控數據,如AWS CloudWatch,JMX,Pingdom等等。

4、基於Pinpoint應用性能監控

基於端到端交易鏈路細化追蹤分析代碼及SQL執⾏性能,提供應用拓撲及代碼層事務追蹤。

  • 端到端業務系統拓撲

  • 分佈式跨應用交易追蹤

  • 代碼級性能問題診斷

  • 輕便智能的採集探針

5、NPM網絡性能監控

6、微服務的全鏈路監控(Google Dapper)

隨着微服務架構的流行,服務按照不同的維度進行拆分,一次請求往往需要涉及到多個服務。互聯網應用構建在不同的軟件模塊集上,這些軟件模塊,有可能是由不同的團隊開發、可能使用不同的編程語言來實現、有可能布在了幾千臺服務器,橫跨多個不同的數據中心。因此,就需要一些可以幫助理解系統行爲、用於分析性能問題的工具,以便發生故障的時候,能夠快速定位和解決問題。

  • 請求到來生成一個全局TraceID,通過TraceID可以串聯起整個調用鏈,一個TraceID代表一次請求。
  • 除了TraceID外,還需要SpanID用於記錄調用父子關係。每個服務會記錄下parent id和span id,通過他們可以組織一次完整調用鏈的父子關係
  • 一個沒有parent id的span成爲root span,可以看成調用鏈入口。
  • 所有這些ID可用全局唯一的64位整數表示;
  • 整個調用過程中每個請求都要透傳TraceID和SpanID
  • 每個服務將該次請求附帶的TraceID和附帶的SpanID作爲parent id記錄下,並且將自己生成的SpanID也記錄下。
  • 要查看某次完整的調用則 只要根據TraceID查出所有調用記錄,然後通過parent id和span id組織起整個調用父子關係

7、智能監控(AI、人工智能、大數據)

AIOPS實現IT運維智能化,充分利用AI和大數據技術,構建智能化運維管控模型,自動識別業務問題,簡化運維操作複雜度,持續改善業務健康狀況。

 

高性能日誌分析(DOLA)

基於大數據與AI,實現離散日誌數據的統一採集、處理、檢索、模式識別以及可視化分析。

智能超市、黑科技智能校服、智能交通、智能監獄等

參考文獻:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章