运维监控系列(1)- IT监控系统简介
運維監控系統
監控系統是實現自動化運維的基礎,在一個IT環境中會存在各種各樣的設備,例如,硬件基礎設施需要監控;軟件運行狀態需要監控;程序中的API需要監控;程序執行腳本需要監控;以及數據庫的慢查詢需要監控等等。
包含組件
一個完整的運維監控平臺,應該包含以下功能:
- 指標數據采集(抓取)
- 指標數據存儲
- 指標數據趨勢分析及可視化
- 告警
監控體系(自底向上)
- 系統層監控
- 系統監控:CPU、Load. Memory、 Swap、Disk IO、 Processes. Kernel Parameters
- 網絡監控:網絡設備、工作負載、網絡延遲、丟包率等
- 中間件及基礎設施類系統監控
- 消息中間件:Kafka、RocketMQ和RabbitMQ等
- Web服務容器:Tomcat和Jetty等
- 數據庫及緩存系統:MySQL、PostgreSQL、 MogoDB、ElasticSearch和Redis等
- 數據庫連接池:ShardingSpere等
- 存儲系統:Ceph、minIO、FastDFS等
- 應用層監控
- 用于衡量應用程序代碼的狀態和性能
- 業務層監控
- 用于衡量應用程序的價值,例如電子商務網站上的銷售量
- QPS、DAU日活、轉化率
- 業務接口:登錄數、注冊數、訂單量、搜索量和支付量等
云原生時代可觀測性
在云原生時代,基礎設施與應用的部署構建都發生了極大變化,傳統的監控方式已經無法適應云原生的場景。在這個背景下,社區引入了云原生可觀測性這一理念。可觀測性概念最早由Apple 的工程師 Cindy Sridharan 提出,作為監控的進一步延伸,可觀測性與監控的區別可以總結為:“監控告訴我們系統的哪些部分是工作的。可觀測性告訴我們哪里為什么不工作了”。
當前,主流可觀測性系統主要基于Metrics、Traces、Logs三大數據類型構建,圍繞著這三種數據類型,開源社區構建了多種多樣的開源產品,像Prometheus, Cortex, Fluentd, ELK, Loki, Jaeger等。這些開源產品極大的豐富了人們在云原生可觀測性實踐中的選擇。然而,這些開源組件大多專注于解決某個特定場景的可觀測性問題,應對復雜業務場景往往會讓開發運維人員陷入困境。
可觀測性系統:
- 指標監控(Metics):隨時間推移產生的一些與監控相關的可聚合數據點;
- 日志監控(Logging):離散式的日志或事件;
- 鏈路跟蹤(Tracing):分布式應用調用鏈跟蹤;
CNCF將可觀測性和數據分析歸類一個單獨的類別,且劃分成了4個子類
- 監控系統:以Prometheus等為代表;
- 日志系統:以ElasticStack和PLG Stack等為代表;
- 分布式調用鏈跟蹤系統:以Zipkin.Jacger.SkyWalking.Pinpoint等為代表;
- 混沌工程系統:以ChaosMonkey和ChaosBlade等為代表;
可觀測性業界動態
AWS
從CloudWatch到AMP/AMG,全面擁抱開源。
CloudWatch一直以來都是AWS最主要的監控服務,包含了監控、告警、日志、事件等功能。為了應對云原生可觀測性場景,CloudWatch推出了Container Insights功能,并支持Prometheus指標接入。Container Insights為用戶構建了Prometheus指標面板,應用性能監控、集群拓撲圖等功能。
阿里云ARMS
以應用監控為核心,構建全鏈路監控能力。
阿里云ARMS主要能力圍繞應用監控構建,包括前端監控、后端監控、移動端監控、業務監控,云撥測等。整體功能如下圖:
為了補足云原生可觀測性能力,ARMS又陸續發布了Prometheus監控、容器監控(Container Insights)等功能。
Azure Monitor
Azure Monitor是Azure統一的監控服務,支持Metrics, Logs, Traces等多種數據類型接入,為客戶提供可視化、分析、告警、洞察等功能。總體功能如下圖:
Vmware Tanzu
Wavefront是Vmware收購的云計算監控初創公司,以滿足VMware將其監控功能擴展到云和容器應用程序的愿景。收購Wavefront也給Vmware帶來大量的用戶,包括Box、思杰、Clover、Groupon、Intuit、Lyft、SpaceApe、Snowflake和Yammer等。
Wavefront定位為高性能流式分析平臺,支持metrics, histograms, traces/spans等多種數據類型,同時也對容器洞察做了專門支持。Wavefront架構圖如下:
著名的監控方法論
Google的四個黃金指標
常用于在服務級別幫助衡量終端用戶體驗、服務中斷、業務影響等層面的問題
,適用于應用及服務監控。
主要關注與以下四種類型的指標:延遲,通訊量,錯誤以及飽和度:
1、延遲:服務請求所需時間。
記錄用戶所有請求所需的時間,重點是要區分成功請求的延遲時間和失敗請求的延遲時間。 例如在數據庫或者其他關鍵禍端服務異常觸發HTTP 500的情況下,用戶也可能會很快得到請求失敗的響應內容,如果不加區分計算這些請求的延遲,可能導致計算結果與實際結果產生巨大的差異。除此以外,在微服務中通常提倡“快速失敗”,開發人員需要特別注意這些延遲較大的錯誤,因為這些緩慢的錯誤會明顯影響系統的性能,因此追蹤這些錯誤的延遲也是非常重要的。
2、通訊量:監控當前系統的流量,用于衡量服務的容量需求。
流量對于不同類型的系統而言可能代表不同的含義。例如,在HTTP REST API中, 流量通常是每秒HTTP請求數;
3、錯誤:監控當前系統所有發生的錯誤請求,衡量當前系統錯誤發生的速率。
對于失敗而言有些是顯式的(比如, HTTP 500錯誤),而有些是隱式(比如,HTTP響應200,單實際業務流程依然是失敗的)。
對于一些顯式的錯誤如HTTP 500可以通過在負載均衡器(如Nginx)上進行捕獲,而對于一些系統內部的異常,則可能需要直接從服務中添加鉤子統計并進行獲取。
4、飽和度:衡量當前服務的飽和度。
主要強調最能影響服務狀態的受限制的資源。 例如,如果系統主要受內存影響,那就主要關注系統的內存狀態,如果系統主要受限與磁盤I/O,那就主要觀測磁盤I/O的狀態。因為通常情況下,當這些資源達到飽和后,服務的性能會明顯下降。同時還可以利用飽和度對系統做出預測,比如,“磁盤是否可能在4個小時候就滿了”。
Netflix的USE方法
USE方法由Netflix的內核和性能工程師Rendan Gregg提出,主要用于分析系統性能問題。
1、使用率(Utilization)
關注系統資源的使用情況。這里的資源主要包括但不限于:CPU,內存,網絡,磁盤等等100%的使用率通常是系統性能瓶頸的標志。
2、飽和度(Saturation)
例如CPU的平均運行排隊長度,這里主要是針對資源的飽和度(注意,不同于4大黃金信號),任何資源在某種程度上的飽和都可能導致系統性能的下降。
3、錯誤(Errors)
錯誤計數
例如:“網卡在數據包傳輸過程中檢測到的以太網網絡沖突了14次”。
RED方法
RED方法是Weave Cloud在基于Google的4個黃金指標的原則下結合。
Prometheus以及Kubernetes容器實踐,細化和總結的方法論,特別適合于云原生應用以及微服務架構應用的監控和度量。
在四大黃金指標的原則下,RED方法可以有效地幫助用戶衡量云原生以及微服務應用下的用戶體驗問題。
RED方法主要關注以下3種關鍵指標:
- (Request)Rate:每秒鐘接收的請求數;
- (Request)Errors:每秒失敗的請求數;
- (Request)Duration:每個請求所花費的時長;
開源解決方案
1. zabbix
Zabbix 是一個企業級分布式開源監控解決方案。
Zabbix 軟件能夠監控眾多網絡參數和服務器的健康度、完整性。Zabbix 使用靈活的告警機制,允許用戶為幾乎任何事件配置基于郵件的告警。這樣用戶可以快速響應服務器問題。Zabbix 基于存儲的數據提供出色的報表和數據可視化能。這些功能使得 Zabbix 成為容量規劃的理想選擇。
2. Prometheus
Prometheus是一個開源監控系統,它前身是SoundCloud的警告工具包。從2012年開始,許多公司和組織開始使用Prometheus。該項目的開發人員和用戶社區非常活躍,越來越多的開發人員和用戶參與到該項目中。目前它是一個獨立的開源項目,且不依賴與任何公司。為了強調這點和明確該項目治理結構,Prometheus在2016年繼Kurberntes之后,加入了Cloud Native Computing Foundation。
3. Nagios
Nagios是一款開源的企業級監控系統,能夠實現對系統CPU、磁盤、網絡等方面參數的基本系統監控,以及 SMTP,POP3,HTTP,NNTP等各種基本的服務類型。另外通過安裝插件和編寫監控腳本,用戶可以實現應用監控,并針對大量的監控主機和多個對象 部署層次化監控架構。
4. anglia
Ganglia是加州大學伯克利分校發起的一個開源集群監控項目,設計之初是用于監控數以千計的網絡節點。Ganglia是一個跨平臺可擴展的,高性能計算系統下的分布式監控系統。它已被廣泛移植到各種操作系統和處理器架構上。
5. Open-falcon
Open-falcon是小米運維團隊從互聯網公司的需求出發,根據多年的運維經驗,結合SRE、SA、DEVS的使用經驗和反饋,開發的一套面向互聯網的企業級開源監控產品。
總結
以上是生活随笔為你收集整理的运维监控系列(1)- IT监控系统简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爱立信与RDK管理公司宣布将MediaF
- 下一篇: Rhapsody集成引擎之RDK篇(二)