WebSphere效能監控軟體WASMon

CloudSpace發表於2009-11-09
很多人都用過IBM的中介軟體WebSphere Application Server (WAS),但你是否有這樣的經歷:WAS由於某些原因hang、crash、OutOfMemory,或是由於其他異常無法正常執行了,而當你發現時客戶的投訴已經上報到了你的老闆那裡;你使用了WAS自帶的TPV(Tivoli Performance Viewer)來監控系統的執行狀態,但卻發現有很多不方便的地方,比如:
    需要用Extra!X等遠端圖形終端登入;
    集中監控不方便,可能要開好幾個TPV;
    儲存效能資料不方便,只能記錄到xml檔案中,當你開啟該xml檔案時發現很難看懂;
    系統遇到效能問題時的報警功能沒有;
    歷史效能資料的報表沒有;等等。
也許你也用過CA公司的集中監控軟體,但除了軟體價格和服務費昂貴外,複雜的安裝和維護也令你望而卻步。
       我就是有過這些經歷的人,從WAS v3.5以來,到現在的v6,近5年來我一直使用WebSphere Application Server,做過開發,也做過支援,長期的實踐使我萌發了要自己做一套WAS集中監控的軟體的想法,目的是方便自己,也方便客戶。在研究了TPV的原始碼、CA集中監控軟體和其他一些監控工具後,我用JAVA語言寫出的這套軟體,現已應用於國內某大型銀行的生產環境,能實時監控,給出效能報警,也可存檔資料並生成歷史報表。我覺得更重要的是該軟體預留了大量介面,能替客戶按需定製。
       隨著客戶需求和實際執行經驗的不斷積累,我有信心這套軟體能越來越好。

TPV的缺點
       大家都知道,IBM 的 WebSphere Application Server(WAS)在v5之後自帶有TPV(Tivoli Performance Viewer),用來監控WAS的執行狀況,包括JVM記憶體使用狀況、資料庫連線池、WEB容器執行緒池、應用程式、使用者會話、事務、快取等資源。
但是TPV存在的缺點主要有:

(1)TPV本身是圖形工具
        假如要遠端使用,我們只能用Extra!X等圖形終端登入系統,不像telnet或Web系統那麼方便。

(2)集中監控方面存在缺陷
       如果是WebSphere ND版本,那麼你可以在一個TPV中監控所有加入該ND單元(Cell)的Base節點, 一個節點就是一臺WAS伺服器,那麼假設我有10個系統共40臺WebSphere伺服器,是否也可以都加入到一個ND單元來管理呢?         答案是不可取。原因主要在於兩點:
       一是這樣TPV在啟動的時候會非常慢,CPU佔用率會非常高,因為要去連線40臺機器的SOAP|RMI埠,還要讀取它們的監控級別,實踐證實在生產環境中,一旦ND中加入的Base節點超過10個,TPV在啟動時的CPU佔用率將超過50%,而且啟動成功通常要消耗很長時間(根據系統效能、網路快慢而定),如果放到生產環境,會嚴重影響系統執行。        二是這樣對WAS的管理不方便,試想一個ND單元中有40個節點,分別屬於10個系統,邏輯上不清楚,通常的做法是一個系統對應一個ND單元,可能這個單元中會有多臺WAS 的Base節點來分擔負載。

(3)儲存效能資料方面存在缺陷
       TPV提供了一種日誌模式,可以將效能資料存到xml檔案中。但是這些xml檔案一是我們看起來很費力,因為它的格式是IBM內定的,不像資料庫的TABLE那樣整齊清楚; 二是這些xml檔案的大小增長很快,通常1小時後就能有上G的資料,可想而知我們檢視起來有多麻煩。                                 
       假如我想把監控得到的效能資料記錄到自定義的日誌或資料庫怎麼辦?TPV也沒法做到。

(4)在效能報警上存在不足               
       TPV裡面有“效能顧問程式”,但是使用過的人都知道,它其實沒什麼用。我們經常會遇到WAS伺服器停止響應(hang)、當機(Crash)、記憶體溢位(OutOfMemory)等等情況,我們想隨時監控WAS的效能狀況,卻又不想一直守著TPV,希望在WAS效能超過閥值時及時地通知我們,比如發EMail,或在一個集中監控平臺上有彈出框、紅色提示等資訊。這些TPV都沒法做到。
              
(5)沒有報表
       如果我想檢視某臺WAS伺服器一小時、一天、一週、一月或是任意指定的時間範圍內的效能走勢圖,怎麼辦?TPV在這方面也存在欠缺。而且IBM好像也沒有類似的好工具。
        
WASMon
   WASMon彌補了TPV上述的不足。
   WASMon可獲取比TPV更多更全面的效能資料,並將其存入日誌或資料庫中。
   WASMon提供基於Web的圖形報表,可為客戶全部的WAS系統提供集中的實時監控平臺。並通過Email、彈出框、紅色警示等告知客戶系統問題。除了實時監控,客戶還可檢視任一時段的歷史效能走勢圖。
   WASMon還可自動收集WAS的配置引數,以一個Excel格式匯出存檔,通過對比,客戶可以看出配置引數的變化。省去了檢視多個xml配置檔案的麻煩。也可配置一個Excel檔案,然後修改多處配置引數。
   WASMon使用標準的JMX介面,理論上也可擴充套件到其他J2EE應用伺服器。
    WASMon本身不會影響生產伺服器的執行。WASMon分兩部分,一部分是Agent代理程式,必須部署在生產伺服器上,用來收集伺服器上WAS的效能資料,經過大量的程式優化工作後,它的CPU佔用率通常是0.1%~0.7%,只在啟動的幾秒種之內佔10%左右,記憶體最大消耗50M,一般是25M左右;另一部分是集中監控和生成報表的Web系統,它完全可部署在另外的伺服器上,所以對生產系統也不構成影響。
   WASMon留有大量的介面,提供大量配置選項,可根據客戶的需求靈活地定製
        
       總之,WASMon的存在就是為了方便人們對WAS的監控和管理,通過程式自動化,提高維護人員的工作效率,降低生產事故發生的可能性,並給領導一個詳盡的報表。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-618403/,如需轉載,請註明出處,否則將追究法律責任。

相關文章