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