摘要:通過這個案例給大家講講監(jiān)控寶自定義監(jiān)控,這是我們產(chǎn)品中藏著的一把瑞士軍刀,但由于這個功能是免費(fèi)的,所以很多用戶反而不太了解。創(chuàng)建一個自定義監(jiān)控。
IT系統(tǒng)千差萬別,即便是通用的Java、PHP也會由于版本的差異,配置和接口存在大同而小異,但往往就是這些小差別,會對系統(tǒng)的穩(wěn)定性和性能產(chǎn)生大影響。市面上的IT監(jiān)控產(chǎn)品都只能對標(biāo)準(zhǔn)應(yīng)用的流行版本進(jìn)行準(zhǔn)確監(jiān)控,對于分支版本或企業(yè)自己開發(fā)的應(yīng)用系統(tǒng)則需要大量的定制開發(fā)才能實(shí)現(xiàn)監(jiān)控,而云智慧監(jiān)控寶提供一種簡單靈活的監(jiān)控手段——自定義監(jiān)控,讓你輕松搞定各種應(yīng)用系統(tǒng)的性能監(jiān)控。
下面就用監(jiān)控寶一個客戶的案例讓大家認(rèn)識一下自定義監(jiān)控。
前一段時間,某著名商業(yè)企業(yè)上線了他們的Tmall系統(tǒng),云智慧監(jiān)控寶為其提供了從服務(wù)器、應(yīng)用服務(wù)和API接口的監(jiān)控服務(wù),除此之外,該企業(yè)還期望通過交易日志分析了解訂單的狀態(tài)和性能統(tǒng)計,這部分功能并非監(jiān)控寶產(chǎn)品自帶功能,為此云智慧基于監(jiān)控寶自定義監(jiān)控功能進(jìn)行了定制開發(fā),來實(shí)現(xiàn)Tmall系統(tǒng)日志分析和監(jiān)控功能。
監(jiān)控部署方面比較麻煩,因?yàn)門mall系統(tǒng)是第三方的,非常不愿意我們?nèi)ケO(jiān)控他們,有很多限制條件,比如不允許日志服務(wù)器向外網(wǎng)請求,我們的采集服務(wù)只能請求日志服務(wù)器,但最終都得到了圓滿的解決。
下面就看看我們怎么用自定義監(jiān)控搞定Tmall日志監(jiān)控的。
首先,用Python寫了一個增量日志分析程序,根據(jù)Tmall提供的規(guī)則把企業(yè)所需要的監(jiān)控指標(biāo)數(shù)據(jù)比如訂單總數(shù)、失敗訂單數(shù)、退款訂單數(shù)以及退款失敗訂單數(shù)從第三方的日志文件中讀取出來,并寫入我們自己的日志中。
然后,在內(nèi)網(wǎng)采集器中增加了一個自定義監(jiān)控的插件,來請求這個日志分析程序獲得監(jiān)控指標(biāo)數(shù)據(jù)。
最后,在監(jiān)控寶自定義監(jiān)控中增加了一個監(jiān)控項(xiàng)目,選擇采集器Python本地獲取數(shù)據(jù),實(shí)現(xiàn)了這個需求。在部署上,內(nèi)網(wǎng)采集器獨(dú)立部署在一臺能夠訪問公網(wǎng)的服務(wù)器上,日志分析程序部署在第三方的日志集中存儲服務(wù)器上。
由于在項(xiàng)目開始的時候,沒有認(rèn)真研究客戶日志樣例文件和規(guī)則說明,所以走了一些彎路,所幸很快校正過來,把所有規(guī)則三方確認(rèn)后升級了一版并最終搞定。這里提醒各位做項(xiàng)目的,項(xiàng)目管理控制必要的步驟不能省,債早晚都是要還的。。。
這個項(xiàng)目是典型的先苦后甜,雖然前期掉了不少坑,但后來通過監(jiān)控寶發(fā)現(xiàn)了不少Tmall系統(tǒng)的問題,在客戶面前證明了產(chǎn)品的價值,細(xì)節(jié)涉及隱私,略過不提。
通過這個案例給大家講講監(jiān)控寶自定義監(jiān)控,這是我們產(chǎn)品中藏著的一把瑞士軍刀,但由于這個功能是免費(fèi)的,所以很多用戶反而不太了解。
為什么會提供這個功能呢?
監(jiān)控寶靠網(wǎng)站監(jiān)控打開了一片天地,后來增加了服務(wù)器和服務(wù)監(jiān)控,并逐漸支持Apache、Nginx等典型Web應(yīng)用,在這個過程中我們發(fā)現(xiàn),即使提供再多的標(biāo)準(zhǔn)服務(wù)也無法覆蓋廣大用戶不同版本、不同類型的應(yīng)用,還有不少中、高級用戶會根據(jù)需求自己開發(fā)的個性化應(yīng)用。
對監(jiān)控來說,簡單說就是采集數(shù)據(jù)、分析結(jié)果、給出告警這三個步驟,而客戶的各類個性化應(yīng)用對我們來說最難的一點(diǎn)在于數(shù)據(jù)采集。監(jiān)控寶自定義監(jiān)控的工作原理非常簡單,就是將數(shù)據(jù)采集標(biāo)準(zhǔn)化,我們制定了一個標(biāo)準(zhǔn)格式的數(shù)據(jù)交換文件。
minEnqueueTime:0.0
expiredCount:0
storePercentUsage:0
dequeueCount:906
memoryUsage:96692
consumerCount:3
memoryPercentUsage:0
averageEnqueueTime:14668.775461866415
maxEnqueueTime:1205901.0
dispatchCount:2090
size:92
producerCount:1
enqueueCount:5567
tempPercentUsage:0
定義好這個規(guī)則之后,剩下的就簡單了,讓被監(jiān)控的目標(biāo)程序或是應(yīng)用把指標(biāo)寫成這種格式的文件,做成一個可以被http請求到的資源,不斷的把指標(biāo)數(shù)據(jù)值寫進(jìn)來。之后在自定義監(jiān)控中創(chuàng)建監(jiān)控項(xiàng)目,選擇這個規(guī)則,就可以了。
舉例說明:
ActiveMQ 是Apache的開源消息總線,如果用自定義監(jiān)控如何實(shí)現(xiàn)ActiveMQ的監(jiān)控需求呢?
第一步,整理出ActiveMQ監(jiān)控的指標(biāo)要求
第二步,寫個程序讀取ActiveMQ的指標(biāo)數(shù)據(jù),這里用到了statistics plugin ,在ActiveMQ中配置一下即可。
配置項(xiàng)灰常簡單,用java寫個進(jìn)程隔幾秒鐘取一次指標(biāo),代碼比較挫,可以無視。
主要是看輸出文件位置:"/Users/jason/workspace/tomcat7065/webapps/root/mqkeyindex.html"
在本機(jī)裝個tomcat,這個位置就是默認(rèn)的應(yīng)用目錄,mqkeyindex.html就是我們定義的規(guī)則文件。
至此,監(jiān)控指標(biāo)讀取和輸出完畢,這部分工作一般是客戶自己完成,或是云智慧的工程師來幫客戶以項(xiàng)目方式完成,該企業(yè)的日志分析程序就是類似這樣的。
再后面就是監(jiān)控寶自定義監(jiān)控的工作了。
因?yàn)閠omcat在本機(jī),外網(wǎng)訪問不到,所以需要安裝一個采集器,選擇好自定義監(jiān)控插件即可。操作過程略過。
非常新鮮,剛剛創(chuàng)建的。
創(chuàng)建一個自定義監(jiān)控。
規(guī)則是提前建好的,指標(biāo)多創(chuàng)建起來好麻煩的說。
這個是創(chuàng)建頁面,這里面的狀態(tài)頁其實(shí)就是我之前/Users/jason/workspace/tomcat7065/webapps/root/mqkeyindex.html輸出的格式。
這個規(guī)則是對照著輸出結(jié)果創(chuàng)建的,而用采集器解決了外網(wǎng)訪問不了的問題。
上面提到的那家咖啡企業(yè)是采用了“執(zhí)行內(nèi)部文件獲取數(shù)據(jù)”的方式,和這個方式不太一樣,不過這是最簡單和常用的方式。另外,在規(guī)則定義中可以定義圖和線的,
最后給大家看下效果吧
自定義監(jiān)控功能非常強(qiáng)大的,如果數(shù)據(jù)采集輸出環(huán)節(jié)技術(shù)難度不大的話,可以非??焖俚母愣ㄒ粋€客戶的特殊監(jiān)控需求,所以很多人都最愛自定義監(jiān)控功能。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65551.html
摘要:是一個時序數(shù)據(jù)庫,專門用于存儲時序相關(guān)數(shù)據(jù),很適合存儲的數(shù)據(jù)。容器監(jiān)控數(shù)據(jù)存儲配置和運(yùn)行是一個開源的分布式時序數(shù)據(jù)庫,使用語言開發(fā)。的特色功能作為時序數(shù)據(jù)庫,相比傳統(tǒng)數(shù)據(jù)庫它有很多特色功能,比如獨(dú)有的一些特色函數(shù)和連續(xù)查詢功能。 本文已獲得原作者_(dá)_七把刀__授權(quán)。 隨著線上服務(wù)的全面 docker 化,對 docker 容器的監(jiān)控就很重要了。SA 的監(jiān)控系統(tǒng)是物理機(jī)的監(jiān)控,在一個物理...
摘要:是一個時序數(shù)據(jù)庫,專門用于存儲時序相關(guān)數(shù)據(jù),很適合存儲的數(shù)據(jù)。容器監(jiān)控數(shù)據(jù)存儲配置和運(yùn)行是一個開源的分布式時序數(shù)據(jù)庫,使用語言開發(fā)。的特色功能作為時序數(shù)據(jù)庫,相比傳統(tǒng)數(shù)據(jù)庫它有很多特色功能,比如獨(dú)有的一些特色函數(shù)和連續(xù)查詢功能。 本文已獲得原作者_(dá)_七把刀__授權(quán)。 隨著線上服務(wù)的全面 docker 化,對 docker 容器的監(jiān)控就很重要了。SA 的監(jiān)控系統(tǒng)是物理機(jī)的監(jiān)控,在一個物理...
摘要:在我的前文容器可視化監(jiān)控中心搭建之中我們就實(shí)踐過容器的可視化監(jiān)控,在那篇文章中我們是使用了技術(shù)棧來完成的。 showImg(https://segmentfault.com/img/remote/1460000015484084); 概述 性能監(jiān)控是容器服務(wù)必不可少的基礎(chǔ)設(shè)施,容器化應(yīng)用運(yùn)行于宿主機(jī)上,我們需要知道該容器的運(yùn)行情況,包括 CPU使用率、內(nèi)存占用、網(wǎng)絡(luò)狀況以及磁盤空間等...
摘要:在文末,我會附上一個可加載的模型方便學(xué)習(xí)中文藝術(shù)字渲染用原生可以很容易地繪制文字,但是原生提供的文字效果美化功能十分有限。 showImg(https://segmentfault.com/img/bVWYnb?w=900&h=385); WebGL 可以說是 HTML5 技術(shù)生態(tài)鏈中最為令人振奮的標(biāo)準(zhǔn)之一,它把 Web 帶入了 3D 的時代。 初識 WebGL 先通過幾個使用 Web...
閱讀 2749·2023-04-25 22:15
閱讀 1815·2021-11-19 09:40
閱讀 2160·2021-09-30 09:48
閱讀 3235·2021-09-03 10:36
閱讀 2036·2021-08-30 09:48
閱讀 1871·2021-08-24 10:00
閱讀 2739·2019-08-30 15:54
閱讀 713·2019-08-30 15:54