性夜影院午夜看片,无码精品久久一区二区三区,婷婷成人丁香五月综合激情,校园春色 qvod,性调教室高h学校

Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?

Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?

今天一大早就看到了一篇文章,叫【大數(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)。并沒(méi)有談及如何和大數(shù)據(jù)相關(guān)的架構(gòu)做整合,從而能讓這些數(shù)據(jù)真的變得活起來(lái)。

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

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

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

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

 

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

  1. 只能監(jiān)控基礎(chǔ)運(yùn)維層次,通過(guò)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)語(yǔ)系開發(fā)的產(chǎn)品中比較常見(jiàn)。我不做過(guò)多評(píng)價(jià),使用后冷暖自知。

當(dāng)然也有抽象的很好的,比如點(diǎn)評(píng)網(wǎng)的運(yùn)維監(jiān)控?fù)?jù)說(shuō)就做的相當(dāng)好,運(yùn)維很閑,天天沒(méi)事就根據(jù)自己的監(jiān)控找開發(fā)的搽,讓開發(fā)持續(xù)改進(jìn)。不過(guò)他們的指導(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í)際面臨的問(wèn)題做出抽象,得到對(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è)共性,就是日志。無(wú)論文本的也好,二進(jìn)制的也好。所以日志是整個(gè)信息的源頭。日志包含的信息足以讓我們追查到下面幾件事情:

  • 系統(tǒng)健康狀況監(jiān)控

  • 查找故障根源

  • 系統(tǒng)瓶頸診斷和調(diào)優(yōu)

  • 追蹤安全相關(guān)問(wèn)題

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

 

我覺(jué)得抽象起來(lái)就一個(gè): 指標(biāo)。

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

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

  2. 應(yīng)用層面,每個(gè)應(yīng)用的錯(cuò)誤數(shù),調(diào)用過(guò)程,訪問(wèn)的平均耗時(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)

 

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

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

Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?

log-collect.png

因?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ì)略簡(jiǎn)單些。如果你希望進(jìn)行日志存儲(chǔ)以及事后批量分析,則可以采用淘寶的這套架構(gòu)方式:

Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?

稍微說(shuō)明下,日志收集Agent可以使用Flume,鷹眼Storm集群,其實(shí)就是Storm集群,當(dāng)然有可能是淘寶內(nèi)部Java版的,

Storm(或第一幅圖的SparkStreaming)做兩件事情

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

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

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

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

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

長(zhǎng)期的則是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)控,不過(guò)應(yīng)該夠用了。

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

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

  3. 還有就是Trace系統(tǒng)。類似Google的Dapper,淘寶的EagleEye。給出一個(gè)唯一的UUID,可以追蹤到特定一個(gè)Request的請(qǐng)求鏈路。每個(gè)依賴服務(wù)的響應(yīng)情況,比如響應(yīng)時(shí)間。對(duì)于一個(gè)由幾個(gè)甚至幾百個(gè)服務(wù)組成的大系統(tǒng),意義非常大,可以方便的定位出到底是那個(gè)系統(tǒng)的哪個(gè)API的問(wèn)題。這個(gè)最大的難點(diǎn)是需要統(tǒng)一底層的RPC/HTTP調(diào)用框架,進(jìn)行埋點(diǎn)。因?yàn)槲沂褂玫氖亲匝械腟erviceFramework框架,通訊埋點(diǎn)就比較簡(jiǎ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)沒(méi)有日志,就可以認(rèn)為它死了。而系統(tǒng)如果有異常,比如有大量的慢查詢,大盤一定能展示出來(lái)。

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

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

  2. 可擴(kuò)展性好。每個(gè)組件都是集群模式的,沒(méi)有單點(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ā)生了什么情況,我們以前是出了問(wèn)題去查日志,或者自己寫個(gè)腳本定時(shí)去分析?,F(xiàn)在這些事情都可以整合到一個(gè)已有的平臺(tái)上,我們唯一要做的就是定義處理日志的的邏輯。

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

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

  2. 如果你的研發(fā)能力有富余,或者有大數(shù)據(jù)團(tuán)隊(duì)支撐,那么可以將進(jìn)入到SparkStreaming中的數(shù)據(jù)存儲(chǔ)起來(lái),然后通過(guò)SparkSQL等做即席查詢。這樣,有的時(shí)候原先沒(méi)有考慮的指標(biāo),你可以直接基于日志做多維度分析。分析完了,你覺(jué)得好了,需要固化下來(lái),那再去更新你的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è)比較消耗工作量的,是頁(yè)面可視化,我這塊自己還沒(méi)有能力做,等招個(gè)Web開發(fā)工程師再說(shuō)了。



作者:祝威廉
來(lái)源:http://www.jianshu.com/p/f634d7fc0f05


————廣告時(shí)間————

《馬哥Linux云計(jì)算及架構(gòu)師》課程,由知名Linux布道師馬哥創(chuàng)立,經(jīng)歷了8年的發(fā)展,聯(lián)合阿里巴巴、唯品會(huì)、大眾點(diǎn)評(píng)、騰訊、陸金所等大型互聯(lián)網(wǎng)一線公司的馬哥課程團(tuán)隊(duì)的工程師進(jìn)行深度定制開發(fā),課程采用 Centos7.2系統(tǒng)教學(xué),加入了大量實(shí)戰(zhàn)案例,授課案例均來(lái)自于一線的技術(shù)案例。

開課時(shí)間:11月06號(hào)

Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?掃描二維碼和更多小伙伴組團(tuán)學(xué)習(xí)Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?

Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?

Linux運(yùn)維教程 | 大數(shù)據(jù)怎樣幫助運(yùn)維工程師實(shí)現(xiàn)無(wú)死角監(jiān)控?

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!