高可用——網站運行監控

「不容許沒有監控的系統上線」,這是許多網站架構師在作項目上線評審時常說的一句話。瀏覽器

網站運行監控對於網站運維和架構設計優化相當重要,運維沒有監控的網站,因爲駕駛沒有儀表的飛機。服務器

 

1、監控數據採集架構

廣義上的網站監控涵蓋全部非直接的業務行爲的數據採集與管理,框架

包括共數據分析師和產品設計師使用的網站用戶行爲日誌、業務運行數據,以及供運維工程師和開發工程師使用的系統性能數據等。運維

1.用戶行爲日誌收集工具

用戶行爲日誌指用戶在瀏覽器上所作的全部操做及其所在的操做環境,性能

包括用戶操做系統和瀏覽器版本信息、IP地址、頁面訪問路徑、頁面停留時間等優化

這些數據對統計網站PV/UV指標、分析用戶行爲、優化網站設計、個性化營銷與推薦等等很是重要。網站

 

具體用戶行爲日誌收集手段有兩種。spa

(1)服務器端日誌收集

這個方案比較簡單,Apache等幾乎全部Web服務器都具有日誌記錄功能,能夠記錄大部分日誌行爲日誌,開啓Web服務器的日誌記錄功能便可。

其缺點是可能會出現信息失真,如IP地址是代理服務器地址而不是用戶真實IP;沒法識別訪問路徑等。

 

(2)客戶端瀏覽器日誌收集

利用頁面嵌入專門的JavaScript腳本能夠收集用戶真實的操做行爲,所以比服務器日誌收集更加精準,

其缺點是比較麻煩,須要在頁面嵌入特定的Javascript腳原本完成。

 

此外,大型網站的用戶日誌數據量驚人,數據處理與計算壓力很大,

目前許多網站逐步開發基於實時計算框架Storm的日誌統計與分析工具。

 

2.服務器性能監控

收集服務器性能指標,如系統Load、內存佔用、磁盤IO等儘早作出故障預警,及時判斷應用情況,防範於未然,將故障扼殺在萌芽時期很是重要。

此外根據性能監控數據,運維工程師能夠合理安排服務器集羣規模,架構師即便改善系統性能,調整伸縮性策略。

 

目前網站使用比較普遍的開源性能監控工具是Ganglia,它支持大規模服務器集羣,並支持以圖形的方式在瀏覽器展現實時性能曲線。

 

3.運行數據報告

除了服務器系統性能監控,網站還須要控制一些與具體業務場景相關的技術和業務指標,

好比緩衝命中率、平均響應延遲時間、每分鐘發送郵件數目、待處理的任務總數等。

 

對於服務器性能監控,網站運維人員能夠在初始化系統時統一部署,應用程序開發徹底不關心服務器性能監控。

而運行數據須要在具體程序中採集報告,彙總後統一顯示,應用程序須要在代碼中處理運行數據採集的邏輯。

 

2、監控管理

監控數據採集後,除了用做系統性能評估、集羣規模伸縮性預測等,還能夠根據實時監控數據進行風險預警,

並對服務器進行失效轉移,自動負載調整,最大化利用集羣全部機器的資源。

1.系統報警

在服務器正常運行的狀況下,在各項監控指標都維持在一個特定水平,若是這些指標超過某個閥值,

就意味着系統可能將要出現故障,這時就須要對相關人員報警,及時採起措施,在故障還未發生時就將其扼殺在萌芽狀態。

 

監控管理系統能夠配置報警閥值和值守人員的聯繫方式,報警方式除了郵件,即時通訊工具,

還能夠配置手機短信、語音報警,系統發生報警時,工程師即便在千里以外也能及時被通知。

 

2.失效轉移

除了應用程序訪問失敗進行失效轉移,監控系統還能夠在發現故障的狀況下主動通知應用,進行失效轉移。

 

3.自動優雅降級

優雅降級是指網站爲了應付忽然爆發的訪問高峯,主動關閉部分功能,釋放部分系統資源,保證網站核心功能正常訪問的一個手段。

網站在監控管理基礎上實現自動優雅降級,是網站柔性架構的理想狀態:

監控系統實時監控全部服務器的運行情況,根據監控參數判斷應用訪問負載狀況,

若是發現部分應用負載太高,而部分應用負載太低,就會適當卸載負載應用部分服務器,

從新安裝啓動部分高負載應用,使應用負載總體均衡,若是全部應用負載都很高,而負載壓力還在繼續,就會自動關閉部分非重要功能,保證核心功能的正常運行。

相關文章
相關標籤/搜索