從監(jiān)控到診斷:數(shù)據(jù)的力量
監(jiān)控與診斷一直是數(shù)據(jù)庫(kù)運(yùn)維中的兩個(gè)十分重要的環(huán)節(jié),在傳統(tǒng)的運(yùn)維模式中,監(jiān)控與診斷都是以人為中心的,因此指標(biāo)與數(shù)據(jù)的采集也都要圍繞人來(lái)展開(kāi)。
監(jiān)控?cái)?shù)據(jù)是需要人來(lái)看的,通過(guò)人的查看,可以發(fā)現(xiàn)監(jiān)控?cái)?shù)據(jù)中存在的異?;蛘咧档镁璧牡胤?。不同水平的DBA能從數(shù)據(jù)中看出不同級(jí)別的風(fēng)險(xiǎn)。因?yàn)槭切枰丝?,所以展示的指?biāo)不能太多,否則監(jiān)控人員就眼花繚亂了。實(shí)際上,上圖的關(guān)鍵指標(biāo)的數(shù)量對(duì)于監(jiān)控來(lái)說(shuō)已經(jīng)太多了。
對(duì)于依靠人的監(jiān)控而言,簡(jiǎn)要而直觀的指標(biāo)展示是十分必要的。對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō),只關(guān)注三五個(gè)關(guān)鍵指標(biāo)才能更好的實(shí)現(xiàn)人工監(jiān)控。我的一個(gè)金融客戶,對(duì)于核心系統(tǒng),他們只關(guān)注活躍會(huì)化數(shù)指標(biāo),有一個(gè)監(jiān)控人員隨時(shí)盯住這個(gè)指標(biāo)看,一旦出現(xiàn)異常就點(diǎn)擊相關(guān)的指標(biāo),進(jìn)行診斷分析。
這是根據(jù)他們的需求修改的指標(biāo)歷史數(shù)據(jù)監(jiān)控頁(yè),一旦活躍會(huì)話數(shù)指標(biāo)超標(biāo)就點(diǎn)擊進(jìn)去診斷。在這個(gè)頁(yè)面中我們提供了一個(gè)“問(wèn)題分析”工具。
問(wèn)題分析工具可以根據(jù)時(shí)間窗口分析系統(tǒng)中存在的問(wèn)題(當(dāng)前問(wèn)題或者歷史問(wèn)題),而等待事件分析工具則可以從等待事件的角度來(lái)幫助DBA分析系統(tǒng)中可能存在的性能問(wèn)題。
不管怎么樣,監(jiān)控的目的是讓DBA工作的更簡(jiǎn)單,還是為人服務(wù)的,以人為中心的??赡苡信笥褜?duì)此不認(rèn)可,認(rèn)為監(jiān)控也可以自動(dòng)化,比如基線告警。實(shí)際上基線告警也是類似的,比如基線告警可以通過(guò)短信告訴你活躍會(huì)話數(shù)異常了。但是如果基線告警模板設(shè)置了太多的指標(biāo),那么告警風(fēng)暴的處理就很麻煩了。不精準(zhǔn)的告警會(huì)讓告警功能如同虛設(shè)。
傳統(tǒng)的診斷也是以人為中心的,當(dāng)系統(tǒng)出問(wèn)題的時(shí)候才去系統(tǒng)中查找各種信息,進(jìn)行分析。這種分析十分依賴于DBA的個(gè)人能力。當(dāng)用戶發(fā)生大問(wèn)題的時(shí)候,總是希望高水平的專家能盡快到現(xiàn)場(chǎng)來(lái)處置。
隨著企業(yè)數(shù)字化的發(fā)展,以人為中心的這種監(jiān)控診斷模式的成本越來(lái)越高,專家也不太愿意在一線現(xiàn)場(chǎng)坐鎮(zhèn)。因此節(jié)約人力成本,節(jié)約專家的時(shí)間成為了數(shù)據(jù)庫(kù)運(yùn)維中十分重要的需求。實(shí)際上隨著硬件的發(fā)展,數(shù)據(jù)采集,存儲(chǔ)與計(jì)算的成本已經(jīng)十分低廉了。因此在現(xiàn)代的數(shù)據(jù)庫(kù)監(jiān)控系統(tǒng)中,采集并保存更為完整的監(jiān)控?cái)?shù)據(jù)已經(jīng)不是成本太高的事情。
如果日常采集的數(shù)據(jù)足夠豐富,那么自動(dòng)化診斷和遠(yuǎn)程診斷就會(huì)變成可能。診斷工作所需的數(shù)據(jù)已經(jīng)在離線采集的數(shù)據(jù)庫(kù)中了,絕大多數(shù)診斷工具都不需要再?gòu)臄?shù)據(jù)庫(kù)實(shí)例中臨時(shí)采集數(shù)據(jù),那么當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)異常的時(shí)候,自動(dòng)診斷工具可以毫無(wú)風(fēng)險(xiǎn)的在后臺(tái)進(jìn)行自動(dòng)分析。
這里說(shuō)的毫無(wú)風(fēng)險(xiǎn)是指自動(dòng)化診斷工作本身不會(huì)給數(shù)據(jù)庫(kù)實(shí)例帶來(lái)任何風(fēng)險(xiǎn)。如果在自動(dòng)化診斷中還需要從數(shù)據(jù)庫(kù)臨時(shí)采集一些數(shù)據(jù),那么如果這種采集本身帶有風(fēng)險(xiǎn),那么在一個(gè)本身就存在故障的數(shù)據(jù)庫(kù)實(shí)例上,可能就是一種雪上加霜的舉動(dòng)。我們?cè)?jīng)做過(guò)一個(gè)共享池碎片自動(dòng)診斷分析的工具,需要對(duì)KGH的數(shù)據(jù)進(jìn)行分析,這個(gè)工具曾經(jīng)就搞宕過(guò)數(shù)據(jù)庫(kù)。因此在指標(biāo)自動(dòng)化采集與自動(dòng)化診斷上,我們會(huì)盡可能規(guī)避此類風(fēng)險(xiǎn)的出現(xiàn)。
想要實(shí)現(xiàn)這一切,其后面最重要的力量是數(shù)據(jù),數(shù)據(jù)時(shí)首先監(jiān)控與診斷自動(dòng)化的基礎(chǔ)。實(shí)際上在數(shù)據(jù)庫(kù)自動(dòng)化運(yùn)維中,指標(biāo)集與數(shù)據(jù)采集本身就包含了豐富的運(yùn)維知識(shí)。某種數(shù)據(jù)庫(kù)應(yīng)該采集哪些指標(biāo),該如何更好,無(wú)風(fēng)險(xiǎn)的采集數(shù)據(jù)庫(kù)的指標(biāo),是十分有價(jià)值的運(yùn)維知識(shí)。
今年,我們將會(huì)把D-SMART中Oracle,Mysql、Postgresql、達(dá)夢(mèng)、金倉(cāng)等數(shù)據(jù)庫(kù)的指標(biāo)集開(kāi)源出來(lái),也希望大家能夠加入到我們這個(gè)行列里,共同豐富與完善這個(gè)開(kāi)源指標(biāo)集。