在生產環境中安裝了基於Windows的應用之後,通常都需要採用某種程度的看護(監控)措施。監控系統、服務、應用程式和網絡的產品之多是非常驚人的。幸運的是(或許是不幸的是)某些基於微軟的服務和應用都有非常具體的監控要求,這樣就自己縮小了可以選擇的監控工具範圍。
NetIQ公司的AppManager Suite(應用程式管理器套裝軟體)、微軟的作業系統管理器 (MOM)、VitalSuite、SiteScope、當然還有惠普的OpenView 和IBM的Tivoli 等都是目前可以使用的一些商品化的產品。在本文中,我們將介紹微軟的解決方案(MOM)和NetIQ公司的AppManager,因為這兩個軟體在技術上關係密切,而且廣泛應用於在Windows應用環境中。
MOM與NetIQ以及其它產品的關係
NetIQ與微軟既是合作夥伴也是競爭對手。微軟在2000年購買了NetIQ公司的AppManager Suite原始碼的許可證。微軟的MOM就是根據NetIQ的技術製作的。MOM 2005和MOM 2005工作組版(之前稱為MOM 2005 Express)是微軟正在實施的動態系統管理計劃(Dynamic Systems Initiative/DSI)的一部分。動態系統計劃是微軟長期的系統管理戰略。MOM 2005工作組版適用於配置10臺以下伺服器的站點。
NetIQ中的MSMQ監視
NetIQ提供了一個把NetIQ擴展到MOM的XMP (擴展管理包),使MOM 2005的用戶能夠管理在NT 4.0、Unix和Linux等平臺上運行的非微軟應用程式。這是非常有用的,因為MOM最大的缺陷之一是它把監測的內容局限在微軟家族裡,而且在沒有連接器的情況下就不監視非微軟的應用程式,如思科、Citrix、Lotus Notes或者甲骨文的應用程式。幸運的是,在MOM功能包中含有適用於MOM 2000的MOM連接器框架 (MCF)。MOM 2005完整版也包含這個功能。Veritas和惠普等許多第三方軟體和硬體廠商都為自己的產品提供連接器。
如果你的預算不足以應付這些價格很高的商業性產品,或者如網絡連接、正常運行時間、CPU、內存和磁碟使用等基本的監視正是你的Windows系統所需要的,那麼,Nagios或者Zabbix等開源軟體解決方案可能會滿足這些需求。
但是,對於執行重要任務的Windows應用程式和服務來說,開源軟體解決方案有時候還不適合監視這些環境。 監視活動目錄、Exchange、IIS或者SQL伺服器需要一些開源軟體解決方案不能安裝好就立刻提供的非常具體的功能。甚至Nagios也需要一些與Windows伺服器溝通的代理機制,以便監控和應答Windows事件記錄與服務失敗的情況。對這些活動的監測對基於windows的應用來說是非常基本的要求。
基於Windows的分布式應用程式是問題兒童?
對於許多機構來說,特別重要的是監控使用.NET、COM+、MTS、MSMQ以及其它無法使用開源軟體解決方案進行監控的基於Windows的分布式應用程式。
NetIQ公司的AppManager是用於監控基於Windows的分布式應用程式的最主要的商業性產品之一。AppManager能夠監控一些不易監測的項目,如MSMQ 「入網消息數率(Incoming Message Rate)」、「活動隊列字節」(Active Queue Bytes)和「活動隊列消息(Active Queue Messages)」或者「COM+反應時間」等。處理內存使用率是在基於Windows的應用中經常需要監控的另一個普通項目。對於監控含糊不清的COM計數器來說,微軟首選支持服務(Microsoft Premier Support)提供了一個名為「COMPSTAT2」的.dll(動態連結庫)。這個動態連結庫能夠顯示高級的性能計算器,這樣,這些數據就能夠像在其它的性能監控計數器中一樣由NetIQ軟體處理。微軟顯然有一些這種類型的動態連結庫。
COMPSTAT2顯示額外的COM計數器
作為基於Windows的應用程式環境的一種監控工具,NetIQ AppManager有一些非常有用的功能。這些功能之一是為基於Windows的集群設置資源依賴腳本。當使用一個集群的兩個節點時,它能夠自動防止監控工作在一個停用的集群節點上運行,這樣就不會產生錯誤的報警。如果出現故障轉移,NetIQ能夠自動轉換到正在使用的節點。
維護模式同樣是一種有用的功能。當一個系統處於維護模式時,監控腳本不會在這個系統上運行。這對於按計劃的關機和重新啟動是很有用的,因為它不會產生錯誤的報警。
AppManager還使用「知識腳本組」的概念。那是一組監控腳本,可用於同樣類型的伺服器。這能夠使管理和執行監控腳本更加容易,使那些腳本更容易編輯。
NetIQ 知識腳本組
會見「臨時保姆」
如果你正在為基於Windows的系統和應用程式選擇一個監控解決方案,顯然有很多事情需要考慮。
由於定製的腳本經常包含在監控解決方案中,你需要查明每個產品使用什麼類型的腳本語言。例如,NetIQ使用VBScript。在堅持SLA(服務水平協議)的同時,你要評估導致在你的環境中造成系統或者應用程式故障的最常見的問題。為了服務水平協議和其它目的,你需要系統採取什麼樣的發展趨勢和報告?根據對現有設備需求的日益增長,你是否需要說明購買新設備是合理的?根據你的具體需求,哪一種產品能夠提供「開箱即用」的功能?這個解決方案包含了多少定製的腳本或者擴展,以及這類腳本難度有多大,成本是多少?如果這個解決方案要在公司範圍內應用,它如何適應你的環境?
總之,關於監控解決方案的最佳忠告是聰明地計劃並且儘可能使事情簡單一些。對於監控的東西和搜集的數據要加小心。認真計劃你的數據保持和報告需求。如果你收集很多性能數據並且要把這些數據保留很長時間,資料庫很快就會變得非常龐大。你還要少發一些警報。警報的數量會增加得很快,特別是在你監控大量的伺服器的時候。最開始的時候一般是發送很多你不需要的警報。
如果你的職責是選擇一個監控解決方案,你要認真評估現有的工具。如果這個工具不能完成任務,那麼,你將花費更多的時間艱難地製作自己的工具。