自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

書(shū)本上學(xué)不到:萬(wàn)臺(tái)服務(wù)器下運(yùn)維怎樣做好監(jiān)控?

新聞 系統(tǒng)運(yùn)維
智能運(yùn)維其實(shí)比較好的落地點(diǎn)是在監(jiān)控領(lǐng)域,因?yàn)楸O(jiān)控領(lǐng)域有大量的數(shù)據(jù)作為基礎(chǔ),可以做大量的智能分析和處理需求。

 [[315443]]

作者簡(jiǎn)介:

龔誠(chéng),58集團(tuán)智能運(yùn)維團(tuán)隊(duì)負(fù)責(zé)人,高級(jí)技術(shù)經(jīng)理。負(fù)責(zé)運(yùn)維及自動(dòng)化團(tuán)隊(duì)的技術(shù)和管理工作。

背景

智能運(yùn)維其實(shí)比較好的落地點(diǎn)是在監(jiān)控領(lǐng)域,因?yàn)楸O(jiān)控領(lǐng)域有大量的數(shù)據(jù)作為基礎(chǔ),可以做大量的智能分析和處理需求。

我們?cè)诒O(jiān)控領(lǐng)域也有很多需求,對(duì)于大量的指標(biāo)需要做異常檢測(cè),指標(biāo)檢測(cè)方式是不一樣的。

另外我們收到大量的告警需要進(jìn)行一定的合并,并且從中摘取出重要的內(nèi)容,有這么負(fù)責(zé)的調(diào)用鏈,負(fù)責(zé)的系統(tǒng),不同的監(jiān)控系統(tǒng)之間是有關(guān)系的,怎么樣從系統(tǒng)自動(dòng)化的從各個(gè)關(guān)聯(lián)關(guān)系當(dāng)中分析出哪個(gè)是關(guān)聯(lián)原因,哪些是衍生引起的,這也是比較重要的問(wèn)題。

1、多維異常檢測(cè)

书本上学不到:万台服务器下运维怎样做好监控?

異常檢測(cè)在運(yùn)維實(shí)踐中有著舉足輕重的地位,實(shí)時(shí)、準(zhǔn)確的發(fā)現(xiàn)異常能夠幫助我們及時(shí)采取行動(dòng),最大限度減少故障的損失。

在監(jiān)控領(lǐng)域中,其實(shí)最重要的一點(diǎn)是要能夠通過(guò)一些監(jiān)控指標(biāo)發(fā)現(xiàn)問(wèn)題,當(dāng)我們的系統(tǒng)越來(lái)越大越來(lái)越復(fù)雜的時(shí)候,想從繁雜的指標(biāo)當(dāng)中,幾百個(gè)監(jiān)控策略中發(fā)現(xiàn)異常其實(shí)是非常困難的,尤其是最初開(kāi)始使用靜態(tài)閾值的方式相對(duì)來(lái)說(shuō)比較簡(jiǎn)單。

书本上学不到:万台服务器下运维怎样做好监控?

靜態(tài)閾值這種方式,初期對(duì)主機(jī)性能進(jìn)行監(jiān)控,對(duì)你的CPU和內(nèi)存使用率進(jìn)行監(jiān)控,這種方式還是比較好的,我們可以通過(guò)人工方式確定資源使用率達(dá)到60%,基本上達(dá)到了安全水平線,再高就有風(fēng)險(xiǎn),就需要告警了,這個(gè)指標(biāo)也有一定的特點(diǎn),取值是在0到100%之間,可以根據(jù)人工的方式,根據(jù)我們的經(jīng)驗(yàn)確定一個(gè)值,然后把它設(shè)立為一個(gè)告警閾值。

除此之外,當(dāng)我們進(jìn)行更多業(yè)務(wù)監(jiān)控的時(shí)候,面臨的挑戰(zhàn)就更大了。

书本上学不到:万台服务器下运维怎样做好监控?

舉個(gè)例子,比如說(shuō)第二幅圖里面,某些集訓(xùn)由于處理的邏輯比較簡(jiǎn)單,所以響應(yīng)時(shí)間會(huì)比較低,正常來(lái)說(shuō),響應(yīng)時(shí)間比較低,是不是設(shè)置閾值的時(shí)候,閾值也要設(shè)置的比較低,一旦發(fā)現(xiàn)異常可以馬上發(fā)現(xiàn)。

如果基于傳統(tǒng)的方式我們來(lái)解決這個(gè)問(wèn)題,其實(shí)需要人工有很多分析,但是監(jiān)控指標(biāo)數(shù)量實(shí)在太多了,已經(jīng)達(dá)到了人類不太好人工處理的地步了。怎么辦?我們采用一些基于統(tǒng)計(jì)的方法,我們后面再詳細(xì)來(lái)說(shuō)一下,比較好解決了這個(gè)問(wèn)題。

书本上学不到:万台服务器下运维怎样做好监控?

第三種監(jiān)控指標(biāo)是隨著每天用戶訪問(wèn)量,發(fā)生變化的,當(dāng)用戶訪問(wèn)量比較小,自然數(shù)值就下降,達(dá)到用戶訪問(wèn)高峰期的時(shí)候,數(shù)值就比較高,呈現(xiàn)波動(dòng)性變化,很難用一個(gè)閾值來(lái)解決這個(gè)問(wèn)題,我們利用機(jī)器學(xué)習(xí)的方法,學(xué)習(xí)歷史數(shù)據(jù)規(guī)律,采用分類模型的方式判斷是否有異常。

第一個(gè)比較簡(jiǎn)單,固定閾值這種方式,好處是比較簡(jiǎn)單直觀,壞處是難以適應(yīng)日益復(fù)雜的需求。

第二個(gè)方面,某一個(gè)機(jī)群顯示時(shí)間,類似這種指標(biāo)我們用統(tǒng)計(jì)判別的方式來(lái)設(shè)定是比較好的,其中比較好的方法也能夠比較好的識(shí)別出歷史數(shù)據(jù)大部分時(shí)間是分布在哪個(gè)區(qū)域,從而設(shè)定一個(gè)合適閾值的。

另外這種方式也有一定好處,當(dāng)你集群行為發(fā)生變化的時(shí)候會(huì)自適應(yīng)進(jìn)行一些調(diào)整,比如說(shuō)如果這個(gè)集群最開(kāi)始響應(yīng)時(shí)間比較低,自動(dòng)生成閾值,自然也是比較低的,當(dāng)前幾天突然出現(xiàn)響應(yīng)時(shí)間增高,出現(xiàn)一個(gè)變化的時(shí)候,那自然是要出現(xiàn)一些告警的,這也是符合需求的,前幾天出現(xiàn)了一些顯示時(shí)間增大,我們肯定要進(jìn)行一些告警,但是如果后續(xù)持續(xù)每天都出現(xiàn)這些問(wèn)題的話,就說(shuō)明這是沒(méi)有問(wèn)題的,可能由于處理邏輯更加復(fù)雜了,所以響應(yīng)時(shí)間就增常了。

我們通過(guò)統(tǒng)計(jì)最近幾天顯示時(shí)間歷史數(shù)據(jù)變化,從而重新生成和調(diào)整閾值,逐漸把閾值調(diào)高,這樣后續(xù)幾天就不會(huì)有異常發(fā)出了。

周期性指標(biāo)異常檢測(cè),由于這些數(shù)據(jù)的變化是隨著用戶的訪問(wèn)量進(jìn)行變化的,一般來(lái)說(shuō)都是一些關(guān)鍵指標(biāo),用戶訪問(wèn)的成交量、訂單量這些指標(biāo),對(duì)于運(yùn)維比較關(guān)注的,像網(wǎng)絡(luò)出口流量和業(yè)務(wù)流量,以及集群和域名的訪問(wèn)量,還有一些宏觀業(yè)務(wù)數(shù)據(jù),相對(duì)來(lái)說(shuō),這種類型的指標(biāo)如果能夠發(fā)現(xiàn)異常,并且有問(wèn)題發(fā)出告警,產(chǎn)生的意義會(huì)更大一些。

這個(gè)事情具體怎么做,我們采用機(jī)器學(xué)習(xí)的方式,用最近一段時(shí)間的歷史數(shù)據(jù)通過(guò)對(duì)模型進(jìn)行訓(xùn)練,然后把實(shí)時(shí)數(shù)據(jù)拋到模型里面,從而得出當(dāng)前數(shù)據(jù)是正常還是異常,從而發(fā)現(xiàn)這些異常。

书本上学不到:万台服务器下运维怎样做好监控?

如果用機(jī)器學(xué)習(xí)的方式,是一種有監(jiān)督學(xué)習(xí)的方式,運(yùn)維過(guò)程當(dāng)中指標(biāo)的數(shù)量這么多,怎么樣標(biāo)記這些數(shù)據(jù),得到一個(gè)有標(biāo)記的樣本庫(kù),采用統(tǒng)計(jì)判別,首先得到一個(gè)基礎(chǔ)樣本庫(kù),一個(gè)訓(xùn)練集,然后經(jīng)過(guò)一定處理,訓(xùn)練模型,從而得到了通過(guò)分裂模型做異常檢測(cè)的任務(wù),同時(shí)訓(xùn)練一個(gè)回歸模型來(lái)得到曲線預(yù)測(cè),實(shí)現(xiàn)這樣一種功能。

這里面體現(xiàn)了我們用到的對(duì)比樣本庫(kù),以及我們選取的一些特征。

书本上学不到:万台服务器下运维怎样做好监控?

選取這些特征采取的算法是Lightgbm。

书本上学不到:万台服务器下运维怎样做好监控?

智能異常檢測(cè)的效果,普遍異常我們標(biāo)記為黃色的點(diǎn),如果出現(xiàn)一些嚴(yán)重的異常我們標(biāo)志成紅色的點(diǎn),這三個(gè)圖當(dāng)中,異常等級(jí)不一樣,第一個(gè)圖是普通異常,偶爾有一個(gè)毛刺飆上去了,對(duì)于整個(gè)數(shù)據(jù)的影響是比較小的。

第二種是嚴(yán)重異常,說(shuō)明一些應(yīng)戶的推廣活動(dòng)或者運(yùn)營(yíng)活動(dòng),也有可能是系統(tǒng)出現(xiàn)了某些方面的問(wèn)題,導(dǎo)致流量下降。

第三種是陡變異常,這種陡變異常變化,一般來(lái)說(shuō)比較致命,有可能是流量大幅度上升,突然大量攻擊流量,或者說(shuō)流量突然下降,整個(gè)機(jī)房網(wǎng)絡(luò)這方面有問(wèn)題了。針對(duì)不同類型的異常我們做不同的告警分級(jí),普通的異常我們甚至不用太關(guān)注,對(duì)于嚴(yán)重異常我們可以用告警短信和微信的方式解決。對(duì)于特別嚴(yán)重的異??梢酝ㄟ^(guò)語(yǔ)音告警的方式來(lái)進(jìn)行。

分類模型的方式進(jìn)行異常檢測(cè)效果也是比較好的,尤其具有比較好的普世性。我們對(duì)于,尤其做業(yè)務(wù)指標(biāo)監(jiān)控,收入監(jiān)控和產(chǎn)品線PV、UV監(jiān)控,以及小的業(yè)務(wù)集群的監(jiān)控,這種方式都可以實(shí)現(xiàn),適用于不同級(jí)別的數(shù)據(jù),包括網(wǎng)絡(luò)帶寬比較大,甚至幾十億級(jí)別的數(shù)據(jù),對(duì)于某些業(yè)務(wù)集群,可能每天的QPS低峰的時(shí)候只有幾十,不到一百,所以可以很好解決這個(gè)問(wèn)題。

2、智能告警合并

作為技術(shù)人員都有一個(gè)痛,系統(tǒng)出現(xiàn)異常的時(shí)候會(huì)出現(xiàn)很多告警,平常有一些關(guān)鍵告警,當(dāng)某一個(gè)核心系統(tǒng)真正出現(xiàn)異常的時(shí)候,大家肯定有這個(gè)體會(huì),同時(shí)會(huì)有大量的告警發(fā)出。

书本上学不到:万台服务器下运维怎样做好监控?

舉個(gè)例子,現(xiàn)在比較流行微服務(wù)的方式,如果某個(gè)集群里面有一百個(gè)節(jié)點(diǎn),當(dāng)由于訪問(wèn)量變化,導(dǎo)致資源使用率上,或者說(shuō)因?yàn)槟炒紊暇€,導(dǎo)致程序出現(xiàn)了Bug,我們?nèi)绻O(shè)置一個(gè)短信的接受方式,是不是手機(jī)一直在響,一方面要檢查出現(xiàn)什么事故,排除問(wèn)題。

CPU如果有什么問(wèn)題,導(dǎo)致集群的可惜會(huì)上將,也會(huì)導(dǎo)致時(shí)間上升甚至其他的問(wèn)題,剛才說(shuō)的告警數(shù)量去翻了,我們需要有一個(gè)能夠比較智能的對(duì)大量的告警做理解和信息合并,并且提取出一些信息,告訴我們究竟發(fā)生了什么。而不是給我們?cè)紨?shù)據(jù),我們要的是信息。

因?yàn)橹昂秃芏啻笮椭行秃托⌒凸镜呢?fù)責(zé)人都溝通過(guò),其實(shí)做智能告警處理之前,最好先把告警數(shù)量降下來(lái)做好告警分類,我們現(xiàn)推薦語(yǔ)音的方式,除此之外大部分的告警還是推薦員工訂閱微信告警,只要員工訂閱了微信公眾號(hào)告警,里面可以展示的信息非常多樣化,我們可以展示告警詳情和相關(guān)的應(yīng)對(duì),包括一些合并的信息列表和做一些根根因分析,避免誤告。

我們對(duì)內(nèi)部監(jiān)控系統(tǒng)也做了分析,有些可能做的不太好的監(jiān)控系統(tǒng),有一些設(shè)置連續(xù)一次異常就告警,這種無(wú)效告警非常多,甚至說(shuō)無(wú)效告警內(nèi)容達(dá)到50%或者更多,正常來(lái)說(shuō),兩次告警間隔時(shí)間間隔五分鐘,設(shè)置最高的告警次數(shù)是多少,如果超三十分鐘,還可以提到更高的優(yōu)先級(jí)進(jìn)行椎理。

在告警時(shí)間窗口選擇上,如果把窗口拉的比較長(zhǎng),相關(guān)的告警就可以合并效果更好,但是反而時(shí)效性會(huì)下降,為了兼顧時(shí)效性,在合并維度上我們發(fā)現(xiàn)一個(gè)集群之內(nèi),同時(shí)會(huì)出現(xiàn)多個(gè)告警,我們合并起來(lái)效果就會(huì)比較好,對(duì)于單個(gè)節(jié)點(diǎn)和IP里面,上面可能會(huì)出現(xiàn)異常,上面不同監(jiān)控指標(biāo)也會(huì)出現(xiàn)異常。

比如說(shuō)某個(gè)機(jī)器宕機(jī)或者僵死,有一些進(jìn)程和端口也是不及時(shí)的,也有業(yè)務(wù)指標(biāo)也是不及時(shí)的。另我們服務(wù)器也是使用網(wǎng)絡(luò)連接起來(lái)的,如果某一個(gè)網(wǎng)絡(luò)設(shè)備出現(xiàn)問(wèn)題,同網(wǎng)段的一些機(jī)器也會(huì)出現(xiàn)丟包率過(guò)高的問(wèn)題。

书本上学不到:万台服务器下运维怎样做好监控?

另外我們可以按照異常種類進(jìn)行合并。以上只是常見(jiàn)的維度,真正的維度更加復(fù)雜,而且出現(xiàn)的異常不僅僅是單個(gè)合并了,往往是幾個(gè)維度互相組合了,這樣實(shí)踐起來(lái)大家很自然最先想到的可以用規(guī)則和模板的方法,但是維護(hù)代價(jià)非常高,而且擴(kuò)展性比較低。我們用了一個(gè)新的方式,我們提出了告警合并數(shù)的方式,對(duì)告警進(jìn)行劃分,實(shí)時(shí)計(jì)算出來(lái)應(yīng)該按照哪些維度進(jìn)行合并。

這個(gè)算法簡(jiǎn)單理解起來(lái)我們按照一分鐘的告警信息進(jìn)行合并的,我們那一分鐘的告警進(jìn)行集合,需要到每個(gè)人的告警進(jìn)行合并,對(duì)于每個(gè)人相關(guān)告警的類型,以及不同的告警方式,按照這幾個(gè)維度,如果一致的情況下會(huì)對(duì)這個(gè)人的告警進(jìn)行合并。

书本上学不到:万台服务器下运维怎样做好监控?

具體合并過(guò)程是什么樣的,其實(shí)可以理解為樹(shù)型結(jié)構(gòu),一分鐘的所有告警,根據(jù)剛才的維度劃分,生成一個(gè)集合,可以理解為一個(gè)樹(shù)的根節(jié)點(diǎn),嘗試用不同的幾個(gè)備選維度進(jìn)行集合劃分,按照集群的維度,IP的維度或者網(wǎng)段的維度進(jìn)行劃分。

這樣我們有一個(gè)備選集合,再針對(duì)備選集合,計(jì)算基尼值,看是不是把同類消息劃分到同一個(gè)下級(jí)節(jié)點(diǎn),如果是的話會(huì)帶來(lái)這棵樹(shù)的信息純度上升,我們就是為了讓同樣的告警劃分到同一個(gè)地方去,這樣的話我們除了根節(jié)點(diǎn)之外,我們就得到了第二層節(jié)點(diǎn),以此類推,如果當(dāng)前告警數(shù)量還是比較多,可以看其他維度。

如果嘗試合并的話是否也可以再進(jìn)一步拆分出節(jié)點(diǎn),基于這些規(guī)則,告警里面信息條數(shù)和程度提升到了什么程度,從這棵樹(shù)的根節(jié)點(diǎn),最終到達(dá)葉子節(jié)點(diǎn),其實(shí)經(jīng)過(guò)了多個(gè)維度的告警合并,我們就可以確定我們應(yīng)該按照哪些維度把這些告警進(jìn)行劃分,推送給我們的用戶了。

书本上学不到:万台服务器下运维怎样做好监控?

這是告警合并的效果,剛才已經(jīng)提到了,我們比較推薦微信告警,因?yàn)槔锩嬲故镜男畔⒖梢园盐覀兿胝故镜谋砀窈鸵恍?shù)據(jù),甚至一些圖形化的信息都展示進(jìn)去。

我們收到第一個(gè)告警,告訴我有一個(gè)集群里面有22條宕機(jī)告警,傳統(tǒng)的方式是22條告警,現(xiàn)在只告訴我一條,而且告訴我合并的告警異常機(jī)器占總體機(jī)器數(shù)的比例,如果我想看這22個(gè)宕機(jī)告警分別是哪些,點(diǎn)進(jìn)去看可以看到一個(gè)列表,再往下可以看到每臺(tái)機(jī)器的具體情況和監(jiān)控指標(biāo)的變化曲線圖。

這里面也是我們智能告警合并,按照多個(gè)不同維度合并之后的效果展示,首先我們看一下第一個(gè)方面,某一個(gè)集群有22個(gè)宕機(jī)告警,可以提示當(dāng)前服務(wù)器異常比例84%,整個(gè)集群里面26臺(tái)機(jī)器,現(xiàn)在有22個(gè)有問(wèn)題,不僅僅是說(shuō)把告警機(jī)器人簡(jiǎn)單合并,而是說(shuō)從22個(gè)告警里面能夠提取出一些有用的信息,并且展示給運(yùn)維人員,這樣就很方便讓我們判斷,什么地方出現(xiàn)了什么問(wèn)題。

對(duì)于服務(wù)器和指標(biāo)級(jí)別進(jìn)行合并,某一個(gè)服務(wù)器現(xiàn)在有內(nèi)存過(guò)高的告警,我們知道這個(gè)服務(wù)器內(nèi)存有問(wèn)題,影響面就是服務(wù)器。

對(duì)于集群和指標(biāo)維度進(jìn)行合并,能夠看到某個(gè)集群現(xiàn)在已經(jīng)有六表磁盤空間不足的告警,當(dāng)前集群服務(wù)器的日常比例,百分比是多少。

书本上学不到:万台服务器下运维怎样做好监控?

其實(shí)難點(diǎn)就在于合并的時(shí)候是按照多個(gè)維度進(jìn)行合并的,而且是實(shí)時(shí)對(duì)數(shù)據(jù)進(jìn)行分析的,看哪個(gè)維度進(jìn)行合并會(huì)帶來(lái)信息純度提升最大。某一個(gè)機(jī)房有四條虛擬機(jī)宕機(jī)告警,由于宿主機(jī)都是同一臺(tái),從而判斷出虛擬機(jī)由于物理機(jī)宕機(jī)導(dǎo)致的。再往后某一個(gè)機(jī)房,這些機(jī)器歸屬于同一個(gè)網(wǎng)段,很有可能是某一個(gè)網(wǎng)絡(luò)設(shè)備出現(xiàn)了問(wèn)題,非常方便運(yùn)維人員判斷究竟哪個(gè)點(diǎn)出現(xiàn)了異常。

服務(wù)器維度和指標(biāo)維度相結(jié)合,服務(wù)器在五個(gè)集群有五條GAM過(guò)高的報(bào)警,最后一條是服務(wù)器維度,某個(gè)集群的服務(wù)器有三條GAM內(nèi)存過(guò)高的告警。

书本上学不到:万台服务器下运维怎样做好监控?

展示這個(gè),我們可以通過(guò)實(shí)時(shí)分析數(shù)據(jù),按照?qǐng)?bào)警合并的這種做法,按照不同的維度進(jìn)行最恰當(dāng)?shù)姆绞竭M(jìn)行合作,并且在合并國(guó)境里面提取出一些更加更加有用的實(shí)習(xí)。告警合并最重要的目的是減少告警數(shù)量,這里面可以看到告警數(shù)量的變化趨勢(shì),紅線之前可以看到不同的方式,包括、鍛煉、語(yǔ)音,每天變化比較劇烈,數(shù)值比較大。

3、知識(shí)圖譜構(gòu)建

同時(shí)和大家分析一些知識(shí)圖譜構(gòu)建,如果我們想打造一個(gè)更聰明的運(yùn)維智慧大腦的話,想做更深入的分析,比如說(shuō)根因分析,現(xiàn)在人為什么有智能化的處理能力,或者說(shuō)這種分析能力,其實(shí)一方面是有知識(shí),另外一個(gè)方面是相關(guān)經(jīng)驗(yàn),對(duì)于同學(xué)來(lái)說(shuō),知識(shí)和經(jīng)驗(yàn)這兩方面都是空白。

书本上学不到:万台服务器下运维怎样做好监控?

所以說(shuō)可能要進(jìn)行更加智能化的判斷,先要建設(shè)好知識(shí)圖譜,知識(shí)圖譜很重要的兩點(diǎn),一個(gè)是知識(shí)一個(gè)是經(jīng)驗(yàn),首先對(duì)于知識(shí)來(lái)說(shuō),需要把運(yùn)維相關(guān)的各個(gè)系統(tǒng)的知識(shí)進(jìn)行整合打通,現(xiàn)在有很多系統(tǒng)CMDB,監(jiān)控、管理、云平臺(tái),如果出現(xiàn)故障,可能和各個(gè)系統(tǒng)之間都有關(guān)聯(lián),尤其是一些變更上的事件,導(dǎo)致引起一些問(wèn)題。把所有系統(tǒng)聯(lián)動(dòng),把信息整合起來(lái)。

我們關(guān)注的這些運(yùn)維相關(guān)的數(shù)據(jù)對(duì)象也比較多,包括機(jī)群、服務(wù)器、端口、進(jìn)程。我們通過(guò)挖掘得到了主題之間的關(guān)系,包括關(guān)聯(lián)、因果、部署這些。

书本上学不到:万台服务器下运维怎样做好监控?

獲取到運(yùn)營(yíng)主體的各個(gè)特性和變化規(guī)律,從而得到和集群和服務(wù)的畫(huà)像。

運(yùn)維知識(shí)圖譜當(dāng)中這些點(diǎn)是最實(shí)用的,比如說(shuō)整個(gè)網(wǎng)站結(jié)構(gòu)是一定要清楚的,整個(gè)用戶的流量,通過(guò)VIP進(jìn)入網(wǎng)站,也一個(gè)流量分組,在Nginx上有流量變化,有一些外部服務(wù),還有一些數(shù)據(jù)服務(wù)、屯出服務(wù),每層的關(guān)聯(lián)關(guān)系是什么樣的,病人有什么特性。

調(diào)用鏈毋庸置疑也是非常重要的方面,是服務(wù)之間的調(diào)用關(guān)系,現(xiàn)在在微服務(wù)部署的背景下,現(xiàn)在有很多業(yè)務(wù)非常復(fù)雜,相關(guān)的服務(wù)也是非常多,而且關(guān)聯(lián)關(guān)系也非常復(fù)雜,如果有了這個(gè)調(diào)用鏈信息,就可以很容易判斷故障之間的關(guān)聯(lián)。

對(duì)于監(jiān)控指標(biāo)也要進(jìn)行分層,服務(wù)器層、系統(tǒng)層、業(yè)務(wù)層,這些都是相互之間一定的因果關(guān)系。服務(wù)故障關(guān)系方面,緩存掛掉,數(shù)據(jù)庫(kù)壓力比較大,也是比較常用的一些知識(shí),包括對(duì)于基礎(chǔ)設(shè)施的依賴,內(nèi)網(wǎng)對(duì)于DNS的依賴。

书本上学不到:万台服务器下运维怎样做好监控?

這些知識(shí)和經(jīng)驗(yàn)需要怎么挖掘出來(lái),剛才提到數(shù)據(jù)也是智能化的基礎(chǔ),我們首先要收集到各方面的數(shù)據(jù),然后從這里面挖掘出一些信息。首先第一步有各方面的基礎(chǔ)數(shù)據(jù),將平臺(tái)打通,使數(shù)據(jù)之間建立起一定的關(guān)聯(lián)。第三步要進(jìn)行關(guān)系挖掘,比如說(shuō)故障之間有什么關(guān)聯(lián),服務(wù)部署調(diào)用的狀態(tài)是什么樣的,每個(gè)集群每個(gè)服務(wù)的變化規(guī)律和特性是什么的,能夠達(dá)到運(yùn)維畫(huà)像。

這里面有一個(gè)例子,不同的平臺(tái)不同的實(shí)體是有一定的關(guān)聯(lián)關(guān)系的,但是由于不同的系統(tǒng)是在不同的時(shí)期開(kāi)發(fā)完成的,所以當(dāng)時(shí)設(shè)計(jì)的時(shí)候沒(méi)有考慮到進(jìn)行一定的關(guān)聯(lián),后期為了更好的打造運(yùn)維大腦,必須把相關(guān)的中心關(guān)聯(lián)起來(lái)。

CMDB里面有一個(gè)集群名的概念,更早有服務(wù)名的概念,要在多層服務(wù)之間,A和B之間有很多機(jī)器和節(jié)點(diǎn),時(shí)間實(shí)現(xiàn)自動(dòng)化調(diào)度,實(shí)現(xiàn)了服務(wù)器管理平臺(tái),調(diào)動(dòng)都是通過(guò)服務(wù)管理平臺(tái)連在一起,所以很自然我們要把集群和集群名進(jìn)行。

书本上学不到:万台服务器下运维怎样做好监控?

我們抽取了很多的一些特征,比如說(shuō)歸屬于哪個(gè)部門,負(fù)責(zé)人有哪些,集群做什么用途,以及一些流量變化的趨勢(shì)和集群當(dāng)中有哪些服務(wù)器,最終抽象成為有哪些是一致的特征,有哪些是重合的特征,哪些是歸屬的特征,最后用孤立森林的決策方式,完全了主體影射,從而把各個(gè)系統(tǒng)之間進(jìn)行打通。

书本上学不到:万台服务器下运维怎样做好监控?

關(guān)聯(lián)挖掘方面我們使用一些其他的改進(jìn)算法,發(fā)掘出哪些是常常會(huì)一塊出現(xiàn)的異常。同樣使用這些算法過(guò)程當(dāng)中,也可以根據(jù)我們的業(yè)務(wù),調(diào)用鏈或者常見(jiàn)的根因經(jīng)驗(yàn),從而減少算法的復(fù)雜性。

书本上学不到:万台服务器下运维怎样做好监控?

通過(guò)關(guān)聯(lián)挖掘方式可以拿到哪些是相關(guān)的,可以對(duì)因果關(guān)系進(jìn)行驗(yàn)證。根據(jù)實(shí)際監(jiān)控指標(biāo)曲線,監(jiān)控曲線的變化看是不是真的相關(guān),相關(guān)度如何,就可以用皮爾遜相關(guān)指數(shù)方式進(jìn)行驗(yàn)證。

最終我們得出的一些指標(biāo)關(guān)聯(lián)圖比較復(fù)雜,我們也是為了方便大家理解選了一些比較簡(jiǎn)單的。比如說(shuō)CPU.idle,或者說(shuō)ping.down,通過(guò)這樣一個(gè)比較大的圖,所有的監(jiān)控指標(biāo)之間的因果關(guān)系就比較清楚了。

书本上学不到:万台服务器下运维怎样做好监控?

調(diào)用鏈也是非常重要的知識(shí),服務(wù)之間有非常復(fù)雜的調(diào)用關(guān)系,出現(xiàn)一些異常我們必然會(huì)根據(jù)調(diào)用鏈判斷它們之間誰(shuí)是因誰(shuí)是果。我們公司有一個(gè)公共框架,大家在寫(xiě)代碼的時(shí)候會(huì)把這個(gè)框架包含進(jìn)去,我們也會(huì)自動(dòng)采集服務(wù)的調(diào)用鏈。

书本上学不到:万台服务器下运维怎样做好监控?

這些是更高級(jí)一些的東西,我們可以搞一些集群和服務(wù)的畫(huà)像,從而應(yīng)用在低負(fù)載管理、容量管理、容量預(yù)測(cè)、預(yù)算各個(gè)方面的系統(tǒng)里,建立起一個(gè)類似于大家比較熟悉的用戶畫(huà)像,我們對(duì)于集群和服務(wù)的一些特征和一些日常運(yùn)行的規(guī)范規(guī)則進(jìn)行服務(wù)畫(huà)像,其中也包含一些基礎(chǔ)信息,比如說(shuō)集群名,是不是全容器,全上云的集群,部署方式是什么樣的,服務(wù)類型,以及訪問(wèn)量,訪問(wèn)量的變化和規(guī)律,流量是屬于比較低中等還是比較高,以及訪問(wèn)時(shí)間段,我們做一些流量預(yù)測(cè)或者說(shuō)容量評(píng)估的時(shí)候其實(shí)都會(huì)用到類似于這些相關(guān)的系統(tǒng)。

4、智能根因分析

講到根因分析,只要我們收集到大量的數(shù)據(jù)知道當(dāng)前時(shí)刻所有的監(jiān)控指標(biāo)的變化的數(shù)據(jù),并且能夠標(biāo)記當(dāng)前出現(xiàn)了什么故障,收集了足夠多的數(shù)據(jù)訓(xùn)練模型,只要把數(shù)據(jù)扔給模型就知道這個(gè)根因分析了,這是一個(gè)比較理想化的想法,實(shí)踐起來(lái)比較難。

书本上学不到:万台服务器下运维怎样做好监控?

因?yàn)槭紫日麄€(gè)系統(tǒng)非常復(fù)雜,相對(duì)來(lái)說(shuō)需要非常龐大的訓(xùn)練集。但是我們的訓(xùn)練集基本上都是一些故障或者事故的數(shù)據(jù),這些事故數(shù)據(jù)是不可能非常多的,如果非常多的話說(shuō)明穩(wěn)定性做的非常差,基本上這種方式不太好實(shí)現(xiàn)。

所以我們采用動(dòng)態(tài)決策的方式,輸入一些實(shí)時(shí)異常和變更實(shí)踐,通過(guò)根因分析組件,每個(gè)系統(tǒng)動(dòng)態(tài)決策哪個(gè)地方出現(xiàn)了問(wèn)題。

书本上学不到:万台服务器下运维怎样做好监控?

實(shí)現(xiàn)根據(jù)人的經(jīng)驗(yàn),根本這些知識(shí)判斷哪個(gè)地方出現(xiàn)問(wèn)題,其實(shí)又有兩種可選擇的方案,一種是狀態(tài)機(jī)的方式,一種是行為樹(shù)的方式,這兩種方式在之前游戲開(kāi)發(fā)的時(shí)候比較類似,應(yīng)用比較廣泛,因?yàn)橛螒蚶锩嬗泻芏嘟巧?,?huì)有一些動(dòng)作。

比如說(shuō)一些簡(jiǎn)單的游戲,有衛(wèi)兵在守衛(wèi)城堡進(jìn)行巡邏,這些邏輯都是用狀態(tài)機(jī)或者行為樹(shù)的方式呈現(xiàn),這種方式不是特別好的方式,整體來(lái)說(shuō)系統(tǒng)耦合度較高,因?yàn)槊總€(gè)狀態(tài)都是有一個(gè)節(jié)點(diǎn)來(lái)表示的。之間的關(guān)聯(lián)比較復(fù)雜,可擴(kuò)展性會(huì)比較差,所以我們使用了行為樹(shù)的這種方式。

行為樹(shù)這種方式比較好的一點(diǎn)是有幾種節(jié)點(diǎn),有邏輯節(jié)點(diǎn)和執(zhí)行節(jié)點(diǎn),邏輯節(jié)點(diǎn)可以理解為控制節(jié)點(diǎn),根據(jù)經(jīng)驗(yàn)去追查這個(gè)問(wèn)題,我應(yīng)該按照哪個(gè)邏輯,按照哪個(gè)順序查什么信息,得出判斷。

书本上学不到:万台服务器下运维怎样做好监控?

這是我們和根因分析相關(guān)的行為樹(shù),在邏輯節(jié)點(diǎn)上可以分為選擇節(jié)點(diǎn),底層的這些節(jié)點(diǎn)如果執(zhí)行的成功就結(jié)束了,數(shù)需節(jié)點(diǎn)是數(shù)需執(zhí)行一直到失敗或者結(jié)束,主要目標(biāo)也是為了控制我們根據(jù)人的經(jīng)驗(yàn)。

书本上学不到:万台服务器下运维怎样做好监控?

如果我們要判斷在哪些領(lǐng)域哪些方面排查這些問(wèn)題。很關(guān)鍵是行為節(jié)點(diǎn),主要執(zhí)行的是數(shù)據(jù)的處理分析任務(wù),人的經(jīng)驗(yàn)用來(lái)判斷我從哪些方面排查問(wèn)題,定位到問(wèn)題的時(shí)候要用到監(jiān)控不同指標(biāo)之間的因果關(guān)系,兩者結(jié)合起來(lái)就可以比較好的完成這個(gè)任務(wù)。

這里面有一些行為節(jié)點(diǎn)可以發(fā)現(xiàn)的一些問(wèn)題,能夠關(guān)聯(lián)起來(lái)的一些根因,指標(biāo)關(guān)聯(lián)分析,如果你的訪問(wèn)量上漲了,CPU負(fù)載會(huì)比較高,如果一個(gè)底層的服務(wù)出現(xiàn)問(wèn)題,會(huì)影響上層服務(wù)。

书本上学不到:万台服务器下运维怎样做好监控?

這是一個(gè)根因分析框架,左側(cè)主要是數(shù)據(jù)提取方面,中間這部分其實(shí)也涉及到很多監(jiān)控指標(biāo)的關(guān)聯(lián)或者服務(wù)調(diào)用的關(guān)聯(lián),以及變更操作的關(guān)聯(lián),以及底層網(wǎng)關(guān)硬件相關(guān)的狀態(tài)關(guān)聯(lián)。最終我們?nèi)绻f(shuō)去驗(yàn)證關(guān)聯(lián)是不是真的有比較高的相關(guān)性,可以用曲線相似度再判別一下。

书本上学不到:万台服务器下运维怎样做好监控?

這是幾個(gè)例子,這是根因分析,某一個(gè)宿主機(jī)出現(xiàn)宕機(jī)了,會(huì)導(dǎo)致兩臺(tái)虛擬機(jī)出現(xiàn)問(wèn)題,導(dǎo)致這個(gè)集群出現(xiàn)了504比較高的問(wèn)題,通過(guò)這種比較圖形化的方式,能夠比較好的展示異常,紅色節(jié)點(diǎn)經(jīng)過(guò)點(diǎn)擊可以收縮起來(lái)再展開(kāi)。

這是另兩個(gè)例子,當(dāng)集群左側(cè)的訪問(wèn)量升高的時(shí)候會(huì)導(dǎo)致丟棄率比較高,從而影響響應(yīng)時(shí)間和可能性。右側(cè)是由于一次上線事件,導(dǎo)致了可能性下降,這樣可以把多個(gè)集群和多個(gè)監(jiān)控指標(biāo)之間的異常串起來(lái),而且很好的展示給我們的用戶。

 

責(zé)任編輯:張燕妮 來(lái)源: 高效運(yùn)維
相關(guān)推薦

2020-03-24 08:37:16

CPU偏高問(wèn)題處理

2013-11-24 17:27:25

Facebook運(yùn)維Facebook運(yùn)維

2018-01-10 09:50:22

服務(wù)器監(jiān)控體系

2017-12-06 09:17:50

運(yùn)維服務(wù)器自動(dòng)化

2016-09-21 10:25:20

私有云360私有云平臺(tái)Syndic

2019-02-19 09:14:52

IT運(yùn)維系統(tǒng)

2019-10-22 09:35:46

服務(wù)器微博宕機(jī)

2018-05-11 09:40:10

服務(wù)器運(yùn)維運(yùn)營(yíng)商

2025-03-10 09:00:00

Ansible腳本服務(wù)器

2018-05-10 08:18:12

無(wú)服務(wù)器運(yùn)維服務(wù)器

2009-03-11 18:40:49

LinuxNagiosapache

2016-03-30 11:53:51

Cobbler運(yùn)維運(yùn)維自動(dòng)化

2016-07-12 10:40:35

服務(wù)器

2024-02-20 14:18:13

2020-10-05 21:41:58

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2018-05-15 10:34:55

2013-07-22 10:37:51

微軟服務(wù)器數(shù)據(jù)中心

2016-08-16 15:21:19

服務(wù)器

2017-04-24 16:10:19

戴爾

2012-03-14 11:31:00

云計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)