久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用大數(shù)據(jù)思維做運(yùn)維監(jiān)控

 yujunnujuy 2016-05-07


今天一大早就看到了一篇文章,叫【大數(shù)據(jù)對(duì)于運(yùn)維的意義】,。該文章基本上是從三個(gè)層面闡述的:


  1. 工程數(shù)據(jù),,譬如工單數(shù)量,SLA可用性,,基礎(chǔ)資源,,故障率,,報(bào)警統(tǒng)計(jì)

  2. 業(yè)務(wù)數(shù)據(jù),譬如業(yè)務(wù)DashBoard,Trace調(diào)用鏈,,業(yè)務(wù)拓?fù)淝袚Q,,業(yè)務(wù)指標(biāo),業(yè)務(wù)基準(zhǔn)數(shù)據(jù),,業(yè)務(wù)日志挖掘

  3. 數(shù)據(jù)可視化


當(dāng)然,,這篇文章談的是運(yùn)維都有哪些數(shù)據(jù),哪些指標(biāo),,以及數(shù)據(jù)呈現(xiàn),。并沒有談及如何和大數(shù)據(jù)相關(guān)的架構(gòu)做整合,從而能讓這些數(shù)據(jù)真的變得活起來,。


比較湊巧的是,,原先百度的桑文峰的分享也講到日志的多維度分析,吃完飯的時(shí)候,,一位優(yōu)酷的朋友也和我探討了關(guān)于業(yè)務(wù)監(jiān)控的的問題,。而我之前發(fā)表在肉餅鋪?zhàn)永锏囊黄恼隆敬髷?shù)據(jù)給公司帶來了什么】 也特地提到了大數(shù)據(jù)對(duì)于整個(gè)運(yùn)維的幫助,當(dāng)時(shí)因?yàn)檫@篇內(nèi)容的主旨是羅列大數(shù)據(jù)的用處,,自然沒法細(xì)講運(yùn)維和大數(shù)據(jù)的整合這一塊,。


上面的文字算引子,在步入正式的探討前,,有一點(diǎn)我覺得值得強(qiáng)調(diào):

雖然這里講的是如何將大數(shù)據(jù)思維/架構(gòu)應(yīng)用于運(yùn)維,,平臺(tái)化運(yùn)維工作,但是和大數(shù)據(jù)本質(zhì)上沒有關(guān)系,,我們只是將大數(shù)據(jù)處理的方式和思想應(yīng)用在運(yùn)維工作上,。所以,即使你現(xiàn)在所在的公司沒有數(shù)據(jù)團(tuán)隊(duì)支撐,,也是完全可以通過現(xiàn)有團(tuán)隊(duì)完成這件事情的,。


運(yùn)維監(jiān)控現(xiàn)狀


很多公司的運(yùn)維的監(jiān)控具有如下特質(zhì):


  1. 只能監(jiān)控基礎(chǔ)運(yùn)維層次,通過zabbit等工具提供服務(wù)器,CPU,內(nèi)存等相關(guān)的監(jiān)控,。這部分重要,但確實(shí)不是運(yùn)維的核心,。

  2. 對(duì)業(yè)務(wù)的監(jiān)控是最復(fù)雜的,,而現(xiàn)在很多公司的要么還處于Shell腳本的刀耕火種階段,要么開發(fā)能力較強(qiáng),,但是還是東一榔頭西一棒子,,不同的業(yè)務(wù)需要不同的監(jiān)控系統(tǒng),人人都可以根據(jù)的自己的想法開發(fā)一個(gè)監(jiān)控的工具也好,,系統(tǒng)也好,,平臺(tái)也好,。總之是比較凌亂的,。

  3. 使用第三方的監(jiān)控平臺(tái),。這個(gè)似乎在Rails/NodeJS/Pythone相關(guān)語系開發(fā)的產(chǎn)品中比較常見。我不做過多評(píng)價(jià),,使用后冷暖自知,。


當(dāng)然也有抽象的很好的,比如點(diǎn)評(píng)網(wǎng)的運(yùn)維監(jiān)控?fù)?jù)說就做的相當(dāng)好,,運(yùn)維很閑,,天天沒事就根據(jù)自己的監(jiān)控找開發(fā)的搽,讓開發(fā)持續(xù)改進(jìn),。不過他們的指導(dǎo)思想主要有兩個(gè):


  1. 運(yùn)維自動(dòng)化,。怎么能夠?qū)崿F(xiàn)這個(gè)目標(biāo)就怎么搞,這嚴(yán)重依賴于搞的人的規(guī)劃能力和經(jīng)驗(yàn),。

  2. 抽象化,,根據(jù)實(shí)際面臨的問題做出抽象,得到對(duì)應(yīng)的系統(tǒng),,比如需要發(fā)布,,于是又發(fā)布系統(tǒng),需要管理配置文件,,所以有配管系統(tǒng),,需要日志分析所以有了有日志分析系統(tǒng)。然而這樣是比較零散的,。


有點(diǎn)扯遠(yuǎn),,我們還是focus在監(jiān)控上。

如果以大數(shù)據(jù)的思維去思考,,我們應(yīng)該如何做好監(jiān)控這件事情,?


羅列出你的數(shù)據(jù)源


【大數(shù)據(jù)對(duì)于運(yùn)維的意義】 這篇文章也講了,主要有工程數(shù)據(jù),,業(yè)務(wù)數(shù)據(jù),。所有的數(shù)據(jù)源都有一個(gè)共性,就是日志,。無論文本的也好,,二進(jìn)制的也好。也就是我們的數(shù)據(jù)源就是日志:所有業(yè)務(wù)的,,所有服務(wù)器自身的系統(tǒng)日志,。直觀的感受是,一旦出了問題,,你的第一反應(yīng)是查日志,。所以日志是整個(gè)信息的源頭,。


從日志我們可以挖掘出什么?


我覺得抽象起來就一個(gè): 指標(biāo),。


指標(biāo)可以再進(jìn)行分類,,


  1. 業(yè)務(wù)層面,如團(tuán)購業(yè)務(wù)每秒訪問數(shù),,團(tuán)購券每秒驗(yàn)券數(shù),,每分鐘支付、創(chuàng)建訂單等

  2. 應(yīng)用層面,,每個(gè)應(yīng)用的錯(cuò)誤數(shù),,調(diào)用過程,訪問的平均耗時(shí),,最大耗時(shí),,95線等

  3. 系統(tǒng)資源層面:如cpu、內(nèi)存,、swap,、磁盤、load,、主進(jìn)程存活等

  4. 網(wǎng)絡(luò)層面: 如丟包,、ping存活、流量,、tcp連接數(shù)等


每個(gè)分類里的每個(gè)小點(diǎn)其實(shí)都是一個(gè)指標(biāo),。


如何統(tǒng)一實(shí)現(xiàn)


千萬不要針對(duì)具體問題進(jìn)行解決,大數(shù)據(jù)架構(gòu)上的一個(gè)思維就是:我能夠提供一個(gè)平臺(tái)讓大家方便解決這些問題么,? 而不是,,這個(gè)問題我能解決么?


先來看看架構(gòu)圖:




因?yàn)槟壳拔邑?fù)責(zé)應(yīng)用層的研發(fā),,業(yè)務(wù)還比較少,,主要就需要監(jiān)控三個(gè)系統(tǒng):


  1. 推薦

  2. 搜索

  3. 統(tǒng)一查詢引擎


所以監(jiān)控的架構(gòu)設(shè)計(jì)略簡單些。如果你希望進(jìn)行日志存儲(chǔ)以及事后批量分析,,則可以采用淘寶的這套架構(gòu)方式:




稍微說明下,,日志收集Agent可以使用Flume,鷹眼Storm集群,其實(shí)就是Storm集群,,當(dāng)然有可能是淘寶內(nèi)部Java版的,,Storm(或第一幅圖的SparkStreaming)做兩件事情


  1. 將日志過濾,格式化,,或存儲(chǔ)起來

  2. 進(jìn)行實(shí)時(shí)計(jì)算,將指標(biāo)數(shù)據(jù)存儲(chǔ)到HBase里去


到目前為止,,我們沒有做任何的開發(fā),,全部使用大數(shù)據(jù)里通用的一些組件,。至于這些組件需要多少服務(wù)器,就看對(duì)應(yīng)的日志量規(guī)模了,,三五臺(tái)到幾百臺(tái)都是可以的,。


需要開發(fā)的地方只有兩個(gè)點(diǎn),有一個(gè)是一次性的,,有一個(gè)則是長期,。

先說說一次性的,其實(shí)就是大盤展示系統(tǒng),。這個(gè)就是從HBase里取出數(shù)據(jù)做展示,。這個(gè)貌似也有開源的一套,ELK,。不過底層不是用的HBase存儲(chǔ),,而是ES。這里就不詳細(xì)討論,。


長期的則是SparkStreaming(淘寶是使用Storm,,我建議用SparkStreaming,因?yàn)镾parkStreaming可以按時(shí)間窗口,也可以按量統(tǒng)一做計(jì)算),,這里你需要定義日志的處理邏輯,,生成我上面提到的各項(xiàng)指標(biāo)。


這里有一個(gè)什么好處呢,,就是平臺(tái)化了,,對(duì)新的監(jiān)控需求響應(yīng)更快了,開發(fā)到上線可能只要幾個(gè)小時(shí)的功夫,。如果某個(gè)系統(tǒng)某天需要一個(gè)新的監(jiān)控指標(biāo),,我們只要開發(fā)個(gè)SparkStreaming程序,丟到平臺(tái)里去,,這事就算完了,。


第一幅圖的平臺(tái)我是已經(jīng)實(shí)現(xiàn)了的。我目前在SparkStreaming上只做了三個(gè)方面比較基礎(chǔ)的監(jiān)控,,不過應(yīng)該夠用了,。


  1. 狀態(tài)碼大盤。HTTP響應(yīng)碼的URL(去掉query參數(shù))排行榜,。比如你打開頁面就可以看到發(fā)生500錯(cuò)誤的top100的URL,,以及該URL所歸屬的系統(tǒng)。

  2. 響應(yīng)耗時(shí)大盤,。URL請求耗時(shí)排行榜,。比如你打開頁面就可以看到5分鐘內(nèi)平均響應(yīng)耗時(shí)top100的URL(去掉query參數(shù)).

  3. 還有就是Trace系統(tǒng)。類似Google的Dapper,淘寶的EagleEye,。給出一個(gè)唯一的UUID,可以追蹤到特定一個(gè)Request的請求鏈路,。每個(gè)依賴服務(wù)的響應(yīng)情況,,比如響應(yīng)時(shí)間。對(duì)于一個(gè)由幾個(gè)甚至幾百個(gè)服務(wù)組成的大系統(tǒng),,意義非常大,,可以方便的定位出到底是那個(gè)系統(tǒng)的哪個(gè)API的問題。這個(gè)最大的難點(diǎn)是需要統(tǒng)一底層的RPC/HTTP調(diào)用框架,,進(jìn)行埋點(diǎn),。因?yàn)槲沂褂玫氖亲匝械腟erviceFramework框架,通訊埋點(diǎn)就比較簡單,。如果是在一個(gè)業(yè)務(wù)線復(fù)雜,,各個(gè)系統(tǒng)使用不同技術(shù)開發(fā),想要做這塊就要做好心理準(zhǔn)備了,。


現(xiàn)在,,如果你想要監(jiān)控一個(gè)系統(tǒng)是不是存活,你不在需要取寫腳本去找他的pid看進(jìn)程是不是存在,,系統(tǒng)發(fā)現(xiàn)在一定的周期內(nèi)沒有日志,,就可以認(rèn)為它死了。而系統(tǒng)如果有異常,,比如有大量的慢查詢,,大盤一定能展示出來。


描述到這,,我們可以看到,,這套架構(gòu)的優(yōu)勢在哪:


  1. 基本上沒有需要自己開發(fā)的系統(tǒng)。從日志收集,,到日志存儲(chǔ),,到結(jié)果存儲(chǔ)等,統(tǒng)統(tǒng)都是現(xiàn)成的組件,。

  2. 可擴(kuò)展性好,。每個(gè)組件都是集群模式的,沒有單點(diǎn)故障,。每個(gè)組件都是可水平擴(kuò)展的,,日志量大了,加機(jī)器就好,。

  3. 開發(fā)更集中了,。你只要關(guān)注日志實(shí)際的分析處理,提煉指標(biāo)即可,。


大數(shù)據(jù)思維


對(duì)于運(yùn)維的監(jiān)控,,利用大數(shù)據(jù)思維,需要分三步走:


  1. 找到數(shù)據(jù)

  2. 分析定義從數(shù)據(jù)里中我能得到什么

  3. 從大數(shù)據(jù)平臺(tái)中挑選你要的組件完成搭積木式開發(fā)


所有系統(tǒng)最可靠的就是日志輸出,系統(tǒng)是不是正常,,發(fā)生了什么情況,,我們以前是出了問題去查日志,或者自己寫個(gè)腳本定時(shí)去分析?,F(xiàn)在這些事情都可以整合到一個(gè)已有的平臺(tái)上,我們唯一要做的就是定義處理日志的的邏輯,。


這里有幾點(diǎn)注意的:


  1. 如果你擁有復(fù)雜的產(chǎn)品線,,那么日志格式會(huì)是一個(gè)很痛苦的事情。以為這中間Storm(或者SparkStreaming)的處理環(huán)節(jié)你需要做大量的兼容適配,。我個(gè)人的意見是,,第一,沒有其他更好的辦理,,去兼容適配吧,,第二,推動(dòng)大家統(tǒng)一日志格式,。兩件事情一起做,。我一個(gè)月做不完,那我用兩年時(shí)間行么,?總有一天大家都會(huì)有統(tǒng)一的日志格式的,。

  2. 如果你的研發(fā)能力有富余,或者有大數(shù)據(jù)團(tuán)隊(duì)支撐,那么可以將進(jìn)入到SparkStreaming中的數(shù)據(jù)存儲(chǔ)起來,,然后通過SparkSQL等做即席查詢,。這樣,有的時(shí)候原先沒有考慮的指標(biāo),,你可以直接基于日志做多維度分析,。分析完了,你覺得好了,,需要固化下來,,那再去更新你的SparkStreaming程序。


后話


我做上面第一幅圖架構(gòu)實(shí)現(xiàn)時(shí),,從搭建到完成SparkStreaming程序開發(fā),,到數(shù)據(jù)最后進(jìn)入HBase存儲(chǔ),大概只花了一天多的時(shí)間,。當(dāng)然為了完成那個(gè)Trace的指標(biāo)分析,,我修改ServiceFramework框架大約改了兩三天。因?yàn)門race分析確實(shí)比較復(fù)雜,。當(dāng)然還有一個(gè)比較消耗工作量的,,是頁面可視化,我這塊自己還沒有能力做,等招個(gè)Web開發(fā)工程師再說了,。


來源:祝威廉

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多