轉自http://www.infoq.com/cn/news/2015/08/monitoring-applications-category
在基于云的服務中,正常運行時間應該是最為重要的運維指標之一。服務如果頻繁地中斷,不僅會導致正常使用的中斷,還會對品牌帶來負面影響。99.9%或99.99%已經算不上高水準的高可用性了,用戶期望的是100%的可用性。為了達到這一點,我們不僅需要遵循良好的設計模式并保持服務的可擴展性,同時還要保證硬件、應用服務器以及數(shù)據庫服務器的健康運行。
近日,來自Zephyr的CTO Shailesh Mangal撰文總結了各種監(jiān)控類型以及所需的工具。Zephyr致力于為開發(fā)和QA團隊提供解決方案,幫助交付高質量的軟件,他們所提供的企業(yè)級測試管理產品能夠與各種工具集成,實現(xiàn)測試的實時管理。
在Shailesh Mangal的文章中,他總結了核心基礎設施監(jiān)控、應用級別監(jiān)控、微服務監(jiān)控以及多租戶日志監(jiān)控的工具以及各自的指標,為我們進行應用的全方位監(jiān)控提供了指導。
核心基礎設施監(jiān)控(Core Infrastructure Monitoring****,CIM****)
在目前的云基礎設施中,出現(xiàn)硬件故障是難以避免的。核心基礎設施監(jiān)控會探測硬件瓶頸相關的早期跡象并捕獲硬件故障信號,在出現(xiàn)更大的問題之前對其進行應對。基礎設施監(jiān)控的范圍包括機器的健康狀況、CPU使用、內存消耗以及網絡帶寬,基于這些監(jiān)控信息,能夠判斷基礎設施的當前狀態(tài),從而進行必要的擴展。
有眾多的工具都能幫助我們獲取硬件的健康狀態(tài)。在大多數(shù)情況下,托管提供商(如Amazon AWS、Heroku)的工具基本上就能滿足這種監(jiān)控的需要。
CIM的指標包括:
- CPU的平均使用率
- CPU峰值的持續(xù)時間
- 內存的平均使用情況
- 帶寬的輸入輸出情況
應用級別監(jiān)控(Application Level Monitoring****,ALM****)
應用級別的監(jiān)控涉及到監(jiān)控各種服務器的狀態(tài),如數(shù)據庫服務器、應用服務器、分析服務器以及Hadoop集群,而要監(jiān)控的參數(shù)則是與應用或工具相關的。
應用監(jiān)控方面有不少偉大的工具,如Datadog和New Relic。
應用監(jiān)控的指標包括:
- JVM進程的內存
- 內部線程的數(shù)量
- 磁盤IO
- 索引的讀取/寫入操作
微服務監(jiān)控(Micro Service Monitoring****,MSM****)
微服務是現(xiàn)代云架構的組成部分,是實現(xiàn)水平擴展的關鍵。不管你運行的是傳統(tǒng)的單塊系統(tǒng)還是設計良好且組織精密的微服務,這些系統(tǒng)都會有不同的API端點,遵循不同的協(xié)議,滿足不同的SLA需求。微服務監(jiān)控就是要監(jiān)控每個服務的吞吐量和性能,進而確保在任何時間都能滿足SLA的需求。這種類型的監(jiān)控一般都需要對應用進行instrument操作,讓instrumentation是可配置的,通過收集器(collector)收集應用的狀態(tài),并階段性地將這些狀態(tài)發(fā)送到永久存儲、分析器和預警系統(tǒng)中。此類監(jiān)控往往會產生大量的數(shù)據,因此有可能會影響到性能,因此需要仔細設計。
微服務監(jiān)控的工具方面,存儲引擎可以選擇GraphiteDB或InfluxDB,可視化工具可以選擇Kibana或Grafana。
微服務監(jiān)控的指標包括:
- 請求所需的最大時間
- 請求所需的平均時間
- 每分鐘請求的平均速度
- 每天峰值的請求速度
多租戶日志監(jiān)控(Multitenant Log Monitoring****,MLM****)
對于多租戶部署的系統(tǒng)來講,很大的一個挑戰(zhàn)就是監(jiān)控日志并推斷系統(tǒng)的內部情況,或者當出現(xiàn)問題時識別出根本的原因。無數(shù)的客戶端會產生大量的日志,因此對于日志隔離來說,有唯一的標識(如tenantId)是第一步。除此之外,日志還需要根據請求分組,如果請求要跨多個服務時,這一點尤為重要,每個服務都產生一些日志信息將會有助于識別問題。
多租戶日志監(jiān)控中有非常經典的工具,也就是ELK(Elasticsearch, Logstash, Kibana)技術棧。
多租戶日志監(jiān)控的指標包括:
- 每個租戶的日志
- 每個請求的日志
- 每天總的錯誤數(shù)量
總而言之,好的監(jiān)控要涉及到系統(tǒng)各個方面,從硬件、應用再到服務。如果需要構建多租戶應用的話,使用配置恰當?shù)腅LK技術棧也有助于快速診斷問題。
目前,隨著云服務和移動應用的發(fā)展,在國內外APM(Application Performance Management)相關的服務得到了空前的關注,希望Shailesh Mangal的這篇文章能夠幫助讀者對該領域有一個宏觀的了解和掌握。