小編的話
“品高云公開課”系列文章意在分享技術牛人的知識干貨,和大家一起交流學習云知識,每期主題都不一樣喲!期待各位讀者在文后發表留言,來一場技術上的交流和思想上的碰撞!2016年7月27日本期品高云公開課,由李志偉帶來“品高云監控預警體系初探”的分享。
分享嘉賓
李志偉目前就任品高廣州云架構產品部 BingoCloud平臺軟件開發工程師,從事云平臺開發工作7年,熟悉云平臺整體架構,參與多個云服務,如EC2、ELB、CW、AutoScaling、SNS等的開發。
分享正文
有人說,云計算拼的就是運維能力。隨著云平臺規模的不擴大,運維的難度也呈直線上升,云平臺的監控預警系統變得越來越重要。
提到監控預警系統,很多人的第一反應就是:可通過各種圖表查看各個監控項的狀態;可對監控項設置警報,達到一定閥值時告警,能通過郵件、短信等方式通知到管理員,等等。
這些確實是大多數監控系統的基本功能,但對于傳統的監控系統,更傾向于發現問題,通知管理員處理。在云計算的時代,監控能否做得更多呢?下面我將為大家介紹一下品高云的監控系統。
品高云作為一個自主研發的,遵循亞馬遜接口標準的云平臺,其監控系統也不例外。品高云的監控系統,即云監控服務,在兼容亞馬遜CloudWatch接口的基礎上,作了大量的優化與擴展,方便管理員和用戶的使用。
作為監控系統,首先要確定監控的內容,即監控指標。每一種云資源都會有內置的一些監控指標,如實例的CPU使用率、網絡I/O;存儲卷的磁盤I/O,讀寫操作數,等等。
管理員可查看、管理云平臺的各項監控指標。
(圖: 監控設置)
如果云平臺內置監控指標不能滿足需求,怎么辦呢?沒關系,我們支持自定義監控指標。只需要按要求撰寫好數據采集腳本、新建監控指標即可。
下面以監控MySQL連接數為例,展示如何在品高云監控服務自定義指標:
1. 撰寫數據采集腳本,并由管理員上傳到云平臺指定目錄:
(圖: 腳本)
2. 新建監控指標,填寫相關參數:
(圖: 新建指標)
數據采集腳本是在哪里運行的呢?這與監控指標的設置有關。監控指標的收集方式包括ec2config和controller。
ec2config是內置在云平臺鏡像里面的一個程序,可與云平臺交互,實現更多的功能。收集方式選擇ec2config,即是由該程序在實例內部運行采集腳本,并通過特定的URL匯報到云平臺。
controller,即由云平臺物理機運行采集腳本。
自定義監控指標默認都通過ec2config采集數據。
定義好監控指標,云平臺便會根據設定定時去收集、匯總數據。我們可以到各個資源的詳情頁面,查看該資源相關指標的監控數據。
(圖: 監控圖表)
有監控數據只是第一步,我們要如何利用這些數據去完成更多的操作呢?答案就是:監控警報。
對于亞馬遜CloudWatch,一個監控警報只對應一個云資源的一個監控指標;如果想監控100個實例的CPU使用率,必須重復建100遍。
品高云對此作出改進,將監控警報拆分為警報定義跟監控項。警報定義包括警報類型、觸發條件、觸發操作等通用定義,與具體云資源無關。
(圖:新建警報)
如果警報類型選擇的是任意實例、任意主機,則無需其他操作,警報自動對所有實例、主機(包括后續新建的)生效。
如果不是針對任意資源的警報,則還需要創建監控項,選擇具體需要監控的資源,綁定到相關的警報。
(圖: 新建監控項)
新建監控項時,還可以定義觸發操作。要注意的是:定義在監控警報的操作是通用的觸發操作,所有綁定到該警報的資源都會觸發;定義在監控項的操作則只對該監控項對應的資源生效。
監控警報能觸發的操作,目前主要包括三種:
1. 平臺消息:警報觸發后,往云平臺發送消息,用戶登錄時可以看到。
(圖:平臺消息)
2. 發送SNS主題:SNS即云平臺的另一個服務:簡單通知服務。用法是:根據需要創建一個SNS消息主題,當監控警報觸發時,將向該主題發布消息。
一個SNS消息主題可以添加多個消息訂閱。訂閱方式可以是Email、Email-JSON或HTTP。當有人向消息主題發布消息時,所有已確認的訂閱者都能收到消息。
如果是Email、Email-JSON的訂閱者,將收到郵件通知;如果是HTTP訂閱者,將收到POST請求(消息內容為JSON格式),用戶可根據需要作進一步的處理。
(圖:SNS訂閱)
3. 觸發彈性策略:彈性策略與云平臺另一個服務:彈性伸縮服務有關。
彈性伸縮服務可以讓用戶創建彈性組,通過指定啟動配置(包括使用的鏡像,網絡,是否使用負載均衡),最小、最大及當前需要的實例個數等來創建一組云資源。
服務本身會對實例進行健康檢查,確保健康的實例數量達到設置的需要值; 通過定義彈性策略加、減實例,再與云監控服務結合,達到通過監控數據的變化動態改為需要實例個數的目的。
(圖:彈性策略)
一個較為經典的應用場景是:以彈性組的方式部署一批WEB服務器,通過負載均衡對外提供服務。
對彈性組實例的平均網絡連接數建立兩個警報:
當并發連接數達到一個較高值時,觸發添加實例的彈性策略增強處理能力;當并發連接數下降到一個較低值時,觸發減少實例的彈性策略以節約資源,從而實現自動根據負載情況自動伸縮資源。
上述功能所有云平臺用戶都能使用。除此之外,品高云還有大量方便云平臺管理員運維使用的功能:
監控TOP:可以根據不同的監控指標,查看最近一段時間哪些資源該項指標最高,從而協助快速定位、排查問題;
(圖:監控top)
云平臺監控:針對云平臺各項資源使用率的監控,可根據使用率及其歷史數據的走勢,評估云平臺是否需要擴容,要擴多大;
(圖:云平臺監控)
服務狀態監控:針對云平臺各項服務的健康狀態的監控,可結合監控警報,在服務出現異常時第一時間通知管理員;
(圖:服務狀態監控)
資源監控:從計算、存儲、網絡三個層面監控資源使用情況。
(圖: 資源監控)
平臺綜合評分:從健康、風險、效率三個維度對云平臺資源使用情況進行評分,并可查看各物理主機的資源使用率、資源富裕、不足的物理主機。
(圖:平臺綜合評分)
(圖:主機資源使用率)
報表模塊:通過用戶、服務、服務組、標簽、軟件使用情況等維度,了解云平臺資源的使用情況,并可導出報表,方便運維人員的工作匯報。
(圖:用戶報表)
品高云監控服務現有的功能就介紹到這里。后續還會不斷地優化改進監控服務,計劃中的功能包括:
1. 通過同一個入口快速查看不同資源的不同的監控指標的監控圖表,可以在同一張圖表橫向對比多個指標的;
2.提供更多的監控維度,如云平臺事件,資源狀態變化,等等;
3.提供更多的觸發操作,如存儲卷擴容、更改網絡帶寬、遷移實例等等,讓云平臺更加自動、智能,減少運維壓力。
我今天的分享就到這里,感謝大家的收聽。
歡迎大家一起來交流!
品高云公開課部分目錄
20160720《淺談ELK日志分析平臺》
20160708《基于Docker容器的微服務架構實踐》
20160603《鬼影重重!云時代如何捍衛網絡安全》
20160527《面對免費網盤的關停,難道我們要去買移動硬盤?》
20160520《惠州市電子政務云平臺運維經驗談》
20160513《Java全棧式Web應用開發框架——LEAP的核心設計思想》
……
你想和更多志同道合的技術大咖一起交流嗎?你想收聽每周的“品高云微信群公開課”的直播嗎?
長按識別以下二維碼關注“品高云計算”微信公眾號,回復“公開課”,品高云公開課的最新咨詢、往期精彩回顧都在這里!