監(jiān)控對(duì)it運(yùn)維的重要性

發(fā)布日期:2018/01/22 08:00:00

監(jiān)控對(duì)it運(yùn)維來(lái)說(shuō)到底有多重要?“因?yàn)槟闶俏业难郏屛铱匆娺@世界就在我眼前”,這是一首耳熟能詳?shù)母枨赌闶俏业难邸?。監(jiān)控,對(duì)于it運(yùn)維工程師來(lái)說(shuō)就是眼睛,如果沒(méi)有監(jiān)控,it運(yùn)維工作就無(wú)從談起;如果沒(méi)有監(jiān)控,it運(yùn)維工程師就成了盲人。

一個(gè)良好的監(jiān)控系統(tǒng)可以快速地發(fā)現(xiàn)并定位問(wèn)題,減少宕機(jī)時(shí)間,提高故障處理速度,減輕it運(yùn)維工作壓力,甚至可以促進(jìn)家庭和諧。

但是對(duì)于這么重要的系統(tǒng),我發(fā)現(xiàn)很多公司都做的都不好:要么監(jiān)控不到位,很多盲區(qū);要么監(jiān)控過(guò)多,太多無(wú)效條目導(dǎo)致報(bào)警麻木;要么監(jiān)控系統(tǒng)五花八門,工具琳瑯滿目,重復(fù)監(jiān)控,條理不清,等等。

我認(rèn)為產(chǎn)生這些問(wèn)題的原因主要有兩點(diǎn)。其一,人的問(wèn)題,it運(yùn)維工作人員對(duì)監(jiān)控沒(méi)有深刻的認(rèn)識(shí),經(jīng)驗(yàn)不足;其二,工具的問(wèn)題,沒(méi)有得心應(yīng)手的工具,開源、閉源,五花八門,難以統(tǒng)籌高效利用及整合。

以前我們習(xí)慣于拿來(lái)主義,有問(wèn)題需要用工具,上網(wǎng)查查別人都在用什么,我也下載一個(gè)試一試,差不多就行了。

但是現(xiàn)在時(shí)代變了,IaaS、PaaS、SaaS的結(jié)構(gòu)越來(lái)越復(fù)雜,對(duì)于it運(yùn)維工程師說(shuō)來(lái),必須對(duì)監(jiān)控有深度定制或二次開發(fā)的能力才能滿足當(dāng)下的需要。所以我建議可以考慮開發(fā)一個(gè)簡(jiǎn)單的監(jiān)控平臺(tái),這固然有壓力,但是一旦成功,收益巨大。俗話說(shuō)萬(wàn)事開頭難,開了頭其實(shí)就不難。

監(jiān)控系統(tǒng)方法:

服務(wù)器端

前端開發(fā)主要會(huì)用到大量的頁(yè)面元素,我建議使用目前開源的adminlte,這個(gè)前端框架元素非常豐富,頁(yè)面簡(jiǎn)潔,比較適合作為監(jiān)控系統(tǒng)的基礎(chǔ)頁(yè)面框架。

adminlte本身是基于Bootstrap開發(fā)的,幾乎能滿足你的任何要求;在圖形展示上,建議使用Echarts監(jiān)控圖表;后臺(tái)開發(fā)使用Django,Django具有絕對(duì)優(yōu)勢(shì)。

在it運(yùn)維監(jiān)控?cái)?shù)據(jù)的設(shè)計(jì)方面,對(duì)資產(chǎn)信息、用戶關(guān)系等的監(jiān)控肯定要使MySQL這種關(guān)系性數(shù)據(jù)庫(kù),很多項(xiàng)目都是把監(jiān)控條目直接丟到MySQL里,導(dǎo)致后期擴(kuò)展困難,避免這種情況的方法是將所有監(jiān)控信息全部寫入MongoDB這樣的NoSQL數(shù)據(jù)庫(kù),無(wú)論是在可擴(kuò)展性還是性能上,它們都能應(yīng)對(duì)當(dāng)前海量的監(jiān)控?cái)?shù)據(jù)需求。

然后在服務(wù)端寫一個(gè)獨(dú)立的微服務(wù)接口,負(fù)責(zé)接收客戶端上傳的監(jiān)控信息,然后將數(shù)據(jù)進(jìn)行處理后插入MongoDB,以供前端進(jìn)行數(shù)據(jù)調(diào)用。

這個(gè)API通過(guò)HTTP Server的方式啟動(dòng),然后監(jiān)聽客戶端的POST數(shù)據(jù),接收到數(shù)據(jù)后以服務(wù)器本地時(shí)間為基準(zhǔn),打上監(jiān)控?cái)?shù)據(jù)的時(shí)間戳后存入MongoDB,并以主機(jī)名為依據(jù),直接進(jìn)行分表。

客戶端

客戶端的開發(fā)相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,主要引入了requests 進(jìn)行HTTP動(dòng)作的處理,引入了Schedule進(jìn)行定時(shí)上報(bào)和計(jì)劃任務(wù),引入了Psutil進(jìn)行性能信息采集。

客戶端的性能數(shù)據(jù)主要依靠Psutil采集,Psutil有非常豐富的監(jiān)控接口,能夠輕松實(shí)現(xiàn)對(duì)CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤的監(jiān)控。

通過(guò)Psutil提供的接口采集性能信息,然后將結(jié)果封裝成一個(gè)Json數(shù)據(jù),使用Requests Post提交到服務(wù)器的API接口中去——一次監(jiān)控過(guò)程就完成了。

it運(yùn)維監(jiān)控平臺(tái)的通道也就打開了,以后監(jiān)控任意條目的套路不過(guò)如此。NPM、中間件監(jiān)控、APM,不都是這樣嗎?采集數(shù)據(jù)、上報(bào)、存盤并展現(xiàn)。

總結(jié):

所以,我們何不寫一個(gè),讓所有的公司監(jiān)控都沒(méi)有后患呢?在這里我只是提出的一種方法,如果您自己不能解決,那同創(chuàng)雙子it運(yùn)維將為您服務(wù)。

同創(chuàng)雙子為企業(yè)保駕護(hù)航

專注數(shù)字化方案建設(shè),推動(dòng)智慧企業(yè)生態(tài)圈的升級(jí)發(fā)展

江达县| 铁力市| 都江堰市| 嘉黎县| 鄂托克前旗| 阳城县| 镇巴县| 澄迈县| 仙居县| 聂荣县| 泉州市| 南江县| 祁连县| 广昌县| 双鸭山市| 滨州市| 巨鹿县| 塘沽区| 寻甸| 芜湖市| 绍兴市| 辰溪县| 黎城县| 汕头市| 溧阳市| 黔江区| 米易县| 积石山| 麻江县| 库尔勒市| 临夏市| 大邑县| 西藏| 乃东县| 贡山| 盐津县| 万盛区| 仪陇县| 理塘县| 博罗县| 汶川县|