IT系統千差萬別,即使是通用的Java、PHP也會因爲版本的差別,配置和接口存在大同而小異,但每每就是這些小差異,會對系統的穩定性和性能產生大影響。市面上的IT監控產品都只能對標準應用的流行版本進行準確監控,對於分支版本或企業本身開發的應用系統則須要大量的定製開發才能實現監控,而云智慧監控寶提供一種簡單靈活的監控手段——自定義監控,讓你輕鬆搞定各類應用系統的性能監控。
html
下面就用監控寶一個客戶的案例讓你們認識一下自定義監控。java
前一段時間,某著名商業企業上線了他們的Tmall系統,雲智慧監控寶爲其提供了從服務器、應用服務和API接口的監控服務,除此以外,該企業還指望經過交易日誌分析瞭解訂單的狀態和性能統計,這部分功能並不是監控寶產品自帶功能,爲此雲智慧基於監控寶自定義監控功能進行了定製開發,來實現Tmall系統日誌分析和監控功能。
監控部署方面比較麻煩,由於Tmall系統是第三方的,很是不肯意咱們去監控他們,有不少限制條件,好比不容許日誌服務器向外網請求,咱們的採集服務只能請求日誌服務器,但最終都獲得了圓滿的解決。web
下面就看看咱們怎麼用自定義監控搞定Tmall日誌監控的。tomcat
首先,用Python寫了一個增量日誌分析程序,根據Tmall提供的規則把企業所須要的監控指標數據好比訂單總數、失敗訂單數、退款訂單數以及退款失敗訂單數從第三方的日誌文件中讀取出來,並寫入咱們本身的日誌中。
而後,在內網採集器中增長了一個自定義監控的插件,來請求這個日誌分析程序得到監控指標數據。
服務器
最後,在監控寶自定義監控中增長了一個監控項目,選擇採集器Python本地獲取數據,實現了這個需求。在部署上,內網採集器獨立部署在一臺可以訪問公網的服務器上,日誌分析程序部署在第三方的日誌集中存儲服務器上。
因爲在項目開始的時候,沒有認真研究客戶日誌樣例文件和規則說明,因此走了一些彎路,所幸很快校訂過來,把全部規則三方確認後升級了一版並最終搞定。這裏提醒各位作項目的,項目管理控制必要的步驟不能省,債遲早都是要還的。。。
這個項目是典型的先苦後甜,雖然前期掉了很多坑,但後來經過監控寶發現了很多Tmall系統的問題,在客戶面前證實了產品的價值,細節涉及隱私,略過不提。
經過這個案例給你們講講監控寶自定義監控,這是咱們產品中藏着的一把瑞士軍刀,但因爲這個功能是免費的,因此不少用戶反而不太瞭解。app
爲何會提供這個功能呢?webapp
監控寶靠網站監控打開了一片天地,後來增長了服務器和服務監控,並逐漸支持Apache、Nginx等典型Web應用,在這個過程當中咱們發現,即便提供再多的標準服務也沒法覆蓋廣大用戶不一樣版本、不一樣類型的應用,還有很多中、高級用戶會根據需求本身開發的個性化應用。
對監控來講,簡單說就是採集數據、分析結果、給出告警這三個步驟,而客戶的各種個性化應用對咱們來講最難的一點在於數據採集。監控寶自定義監控的工做原理很是簡單,就是將數據採集標準化,咱們制定了一個標準格式的數據交換文件。
<pre>
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
</pre>
<pre></pre>是必須有的,minEnqueueTime、expiredCount等這些都是咱們定義的監控指標,冒號以後是對應的指標值,這個文件是經過界面的方式定義。
性能
定義好這個規則以後,剩下的就簡單了,讓被監控的目標程序或是應用把指標寫成這種格式的文件,作成一個能夠被http請求到的資源,不斷的把指標數據值寫進來。以後在自定義監控中建立監控項目,選擇這個規則,就能夠了。網站
舉例說明:
ActiveMQ 是Apache的開源消息總線,若是用自定義監控如何實現ActiveMQ的監控需求呢?
第一步,整理出ActiveMQ監控的指標要求
spa
第二步,寫個程序讀取ActiveMQ的指標數據,這裏用到了statistics plugin ,在ActiveMQ中配置一下便可。
<broker …>
<plugins>
<statisticsBrokerPlugin/>
</plugins>
</broker>
配置項灰常簡單,用java寫個進程隔幾秒鐘取一次指標,代碼比較挫,能夠無視。
主要是看輸出文件位置:"/Users/jason/workspace/tomcat7065/webapps/root/mqkeyindex.html"
在本機裝個tomcat,這個位置就是默認的應用目錄,mqkeyindex.html就是咱們定義的規則文件。
至此,監控指標讀取和輸出完畢,這部分工做通常是客戶本身完成,或是雲智慧的工程師來幫客戶以項目方式完成,該企業的日誌分析程序就是相似這樣的。
再後面就是監控寶自定義監控的工做了。
由於tomcat在本機,外網訪問不到,因此須要安裝一個採集器,選擇好自定義監控插件便可。操做過程略過。
很是新鮮,剛剛建立的。
建立一個自定義監控。
規則是提早建好的,指標多建立起來好麻煩的說。
這個是建立頁面,這裏面的狀態頁其實就是我以前/Users/jason/workspace/tomcat7065/webapps/root/mqkeyindex.html輸出的格式。
這個規則是對照着輸出結果建立的,而用採集器解決了外網訪問不了的問題。
上面提到的那家咖啡企業是採用了「執行內部文件獲取數據」的方式,和這個方式不太同樣,不過這是最簡單和經常使用的方式。另外,在規則定義中能夠定義圖和線的,
最後給你們看下效果吧
自定義監控功能很是強大的,若是數據採集輸出環節技術難度不大的話,能夠很是快速的搞定一個客戶的特殊監控需求,因此不少人都最愛自定義監控功能。