中國電信無錫分公司 康 明
隨著本省多個VIP級的IDC數(shù)據中心出現(xiàn),年收益10萬甚至百萬級的IDC大客戶也隨之增多。但是,很多客戶由于維護和安全上的需要,提出更高的要求,要求提供主機監(jiān)控和性能報表服務是其中常見的一項。而目前國內IDC最缺乏的是完善的監(jiān)控系統(tǒng),服務器的運行情況得不到有效的監(jiān)控和報告,既增加了IDC的管理工作量,也影響IDC網管中心的客戶服務質量。即使存在可以購買的監(jiān)控軟件,也存在價格高昂、后繼維護高成本、不適應用戶個性化需求等問題。
因此,為提高IDC的管理水平和服務質量,以適應國內互聯(lián)網發(fā)展的形勢,配合政府、企業(yè)上網工程的順利進行,現(xiàn)借鑒國內外IDC的發(fā)展經驗,開展IDC服務器監(jiān)控管理系統(tǒng)項目的研究。開發(fā)了一套切實可行,可投入實用的低成本IDC服務器監(jiān)控管理系統(tǒng),實時監(jiān)控托管主機的運行狀態(tài)和性能資源的使用狀態(tài),并且按月出具圖文報表,及時報告主機運行情況。該項目目前已經投入實用。
(1)首先是低成本。在低投入的基礎上,能滿足用戶提出的個性化需求。
(2)其次是部署簡易。在現(xiàn)有的IDC網絡的基礎上,無需增加額外的網絡硬件交換設備,即實現(xiàn)對用戶服務器的性能和資源進行監(jiān)控。
(3)系統(tǒng)可擴展。用戶數(shù)、用戶的監(jiān)控主機數(shù)、監(jiān)控功能模塊均可擴展。擴展時不影響主機運行
(4)能滿足用戶的個性化需求。在系統(tǒng)可擴展的情況下,諸如報表、實時網絡圖表查看、短信郵件告警、多終端查詢(移動終端)等附屬功能均可實現(xiàn)。
整個項目共分為四大模塊:主機數(shù)據采集模塊,中心處理模塊,信息展示模塊,用戶報表模塊。
2.1.1 主機數(shù)據采集模塊
(1)透明的Shell腳本采集
(2)內存信息
(3)CPU信息
(4)Swap信息
(5)硬盤容量信息
(6)其他主機資源信息
(7)采集頻率可設定
2.1.2 中心處理模塊
(1)數(shù)據采集
(2)自動按用戶整理數(shù)據
(3)自動按服務器整理數(shù)據
(4)自動按時間整理數(shù)據
(5)自動按數(shù)據類別整理數(shù)據
(6)數(shù)據處理頻率可控
2.1.3 信息展示模塊
(1)以網頁實時圖表展示形式為主。
(2)按用戶登錄
(3)按數(shù)據類別查詢
(4)按服務器查詢
(5)按時間段查詢
(6)按時間段圖表式比較
(7)按服務器圖表式比較
(8)文字形式的具體數(shù)據查詢和比較
2.1.4 用戶報表模塊
(1)PPT報表模版
圖2.1 實用的IDC低成本監(jiān)控系統(tǒng)結構圖
2.2.1 主機數(shù)據采集
使用者:所有受監(jiān)控主機。
輸入:無。
處理:以Shell腳本透明方式獲取監(jiān)控主機數(shù)據并保存為固定格式的cookie
輸出:數(shù)據存入cookie
2.2.2 主機數(shù)據上傳
使用者:所有受監(jiān)控主機。
目的:上傳數(shù)據到數(shù)據處理中心集中處理
輸入:cookie名
處理:以Shell腳本透明方式上傳cookie。
輸出:無
隨著產量和質量水平的提升,中國塑料管道加工企業(yè)“走出去”的愿望強烈,也出現(xiàn)了一些出口主導型的企業(yè),使近年產品出口呈增長勢頭,出口量和出口額不斷增加,并且出口單價和占總產量的比重均呈上升趨勢,產品主要銷往東南亞、中東、非洲、美洲以及歐洲等國家和地區(qū)。而國內市場的擴大和行業(yè)的發(fā)展也吸引國外一些同行以各種方式加入了國內塑料管道行業(yè)的競爭中,加大了國內行業(yè)的創(chuàng)新力度,促進了行業(yè)技術進步。國內塑料管道行業(yè)在積極參與國際交流、學習國外先進技術與管理理念的同時,也向國外展示了中國塑料行業(yè)的發(fā)展情況。
2.3.1 功能配置
使用者:部署中心處理模塊的服務器。
目的:配置該模塊能正常運行所需參數(shù)。
輸入:各類參數(shù)值。
處理:配置各類參數(shù)
輸出:無。
2.3.2 數(shù)據讀取
使用者:部署中心處理模塊的服務器。目的:獲取各受控服務器上傳數(shù)據。輸入:cookie名。
處理:從cookie中獲取相關數(shù)據,并備份cookie。
輸出:固定格式的數(shù)據值。
2.3.3 數(shù)據整理入庫
使用者:部署中心處理模塊的服務器。
目的:將雜亂的數(shù)據信息整理后按固定格式入庫。
輸入:固定格式的數(shù)據值
處理:數(shù)據入庫。
輸出:布爾值表示成功或失敗。
2.3.4 程序流程主控模塊
使用者:部署中心處理模塊的服務器。
目的:程序流程主控。
輸入:無
處理:按照參數(shù)配置循環(huán)處理上述2和3。
輸出:無
2.4.1 模塊管理
使用者:電信系統(tǒng)管理員。
目的:配置網站參數(shù),用戶帳號和權限。
輸入:各類參數(shù)值
處理:設置參數(shù)值
輸出:網頁顯示設置效果。
2.4.2 圖表數(shù)據按條件查詢
使用者:具有權限的網站登錄用戶。
目的:按條件查詢某類數(shù)據的圖表。
輸入:主機名、時間段、數(shù)據顯示類型
處理:按輸入條件選取數(shù)據值以網頁形式顯示。
輸出:圖表輸出
2.4.3 文字數(shù)據查詢
使用者:具有權限的網站登錄用戶。
目的:查詢精確數(shù)據值
輸入:主機名,時間段、數(shù)據類型、其他參數(shù)
處理:按條件顯示精確數(shù)據值。
輸出:精確數(shù)據以文字形式輸出
3.1.1 體系架構
圖3.1 實用的IDC低成本監(jiān)控系統(tǒng)體系結構
3.1.2 運營模型
圖3.2 實用的IDC低成本監(jiān)控系統(tǒng)運營模型
3.2.1 中心處理服務器端技術
C#編程語言是由微軟公司的Anders Hejlsberg和Scott Willamette領導的開發(fā)小組專門為.NET平臺設計的語言,它可以使程序員移植到.NET上。這種移植對于廣大的程序員來說是比較容易的,因為C#從C,C++和Java發(fā)展而來,它采用了這三種語言最優(yōu)秀的特點,并加入了它自己的特性。C#是事件的驅動的,完全面向對象的可視化編程語言,我們可以使用集成開發(fā)環(huán)境來編寫C#程序。使用IDE,程序員可以方便的建立,運行,測試和調試C#程序,這就將開發(fā)一個可用程序的時間減少到不用IDE開發(fā)時所用時間的一小部分。使用IDE迅速建立一個應用程序的過程稱為快速反映開發(fā)。
.NET是Microsoft的XML Web服務平臺。不論操作系統(tǒng)或編程語言有何差別,XML Web服務能使應用程序在Internet上傳輸和共享數(shù)據。
3.2.2 B/S結構服務器端開發(fā)技術
ASP是一項微軟公司的技術,是一種使嵌入網頁中的腳本可由因特網服務器執(zhí)行的服務器端腳本技術。指Active Server Pages(動態(tài)服務器頁面),運行于IIS之中的程序。
ASP.net是基于通用語言的編譯運行的程序,所以它的強大性和適應性,可以使它運行在Web應用軟件開發(fā)者的幾乎全部的平臺上(筆者到現(xiàn)在為止只知道它只能用在Windows 2000/2003 Server/VISTA/7上)。通用語言的基本庫,消息機制,數(shù)據接口的處理都能無縫的整合到ASP.net的Web應用中。ASP.net同時也是languageindependent(語言獨立化)的,所以,你可以選擇一種最適合你的語言來編寫你的程序,或者把你的程序用很多種語言來寫,現(xiàn)在已經支持的有C#(C++和Java的結合體),VB,Jscript,C++、F++。將來,這樣的多種程序語言協(xié)同工作的能力保護您現(xiàn)在的基于COM+開發(fā)的程序,能夠完整的移植向ASP.net。
3.2.3 后臺管理系統(tǒng)技術
ExtJS可以用來開發(fā)RIA也即富客戶端的AJAX應用,是一個用javascript寫的,主要用于創(chuàng)建前端用戶界面,是一個與后臺技術無關的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各種開發(fā)語言開發(fā)的應用中。ExtJs最開始基于YUI 技術,由開發(fā)人員Jack Slocum開發(fā),通過參考JavaSwing等機制來組織可視化組件,無論從UI界面上CSS樣式的應用,到數(shù)據解析上的異常處理,都可算是一款不可多得的JavaScript客戶端技術的精品。
3.2.4 數(shù)據庫技術
Oracle數(shù)據庫管理系統(tǒng)是一個以關系型和面向對象為中心管理數(shù)據的數(shù)據庫管理軟件系統(tǒng),其在管理信息系統(tǒng)、企業(yè)數(shù)據處理、因特網及電子商務等 領域有著非常廣泛的應用。因其在數(shù)據安全性與數(shù)據完整性控制方面的優(yōu)越性能,以及跨操作系統(tǒng)、跨硬件平臺的數(shù)據互操作能力,使得越來越多的用戶將Oracle作為其應用數(shù)據的處理系統(tǒng)。
Oracle數(shù)據庫是基于“客戶端/服務器”模式結構。客戶端應用程序執(zhí)行與用戶進行交互的活動。其接收用戶信息,并向“服務器端”發(fā)送請求。服務器系統(tǒng)負責管理數(shù)據信息和各種操作數(shù)據的活動。
圖3.3 監(jiān)控系統(tǒng)網站CPU負荷曲線示例(一天所有類型曲線)
圖3.4 監(jiān)控系統(tǒng)報表模版
3.3.1 Shell腳本部分(數(shù)據采集)
模塊功能描述:
利用主機操作系統(tǒng)內置的Shell命令編寫的全透明腳本,用以獲取主機資源的基本信息,并生成對應的cookie文件。通過操作系統(tǒng)自帶的ftp客戶端,將文件傳送到中心處理服務器上。
性能:
數(shù)據采集頻率通過配置crontab或計劃任務來確定,如1分鐘等。
輸入和輸出:
標本配置好個基本命令的輸入參數(shù),運行后生成一 個個包含數(shù)據的cookie文件。
限制條件:
用戶主機必須和中心處理服務器網絡連通。部分用戶由于是封閉內網,可考慮打通一個訪問外網ftp端口的只出不進的 隧道,或采用第三臺服務器代理的方式。
3.3.2 中心處理模塊部分
模塊功能描述:
這是文件和數(shù)據庫處理模塊,在檢測到指定目錄下有cookie文件已經上傳時,讀取文件內容并進行數(shù)據分 析和計算,按指定格式將數(shù)據插入數(shù)據庫。
性能:
模塊運行時,服務器資源CPU利用率基本沒有變化,對服務器資源要求不高。處理能力每分鐘數(shù)千文件量,對于一般的監(jiān)控規(guī)模已經有余。通過4個月的運營測試,程序運行良好,沒有崩潰記錄。
設計方法(算法):
可配置數(shù)據處理頻率,空閑時保持睡眠,在監(jiān)控數(shù)量不多的情況下,保持5分鐘一次即可,ftp臨時故障斷線也沒有關系,只要保留cookie文件,待后上傳處理即可。
用戶要求提供某一系統(tǒng)資源MaxAverage和MinAverage曲線。約定設計算法如下:
maxAverage:每次數(shù)據采集取5次數(shù)據,記錄其中max數(shù)據作為數(shù)據點,以此形成的曲線作為m axAverage曲線。
minAverage:每次數(shù)據采集取5次數(shù)據,記錄其中的min數(shù)據作為數(shù)據點,以此形成的曲線作為minAverage曲線。
3.3.3 監(jiān)控主機信息展示部分
這是一個B/S結構的具有完整管理功能的網站設計方法(算法)。
系統(tǒng)的圖表均采用ZedGraph控件來處理。
ZedGraph是一個開源的.NET圖表類庫,全部代碼都是用C#開發(fā)的。它可以利用任意的數(shù)據集合創(chuàng)建2D的線性和柱形圖表。
ZedGraph的類庫具有很高的靈活性。幾乎圖表的每個層面都可以被用戶修改。同時,為了保證類庫的易用性,所有的圖表屬性都提供了缺省值。類庫 中包含的代碼可以根據被劃分的數(shù)據來選擇適應的比例范圍和步長、尺寸。ZedGraph繼承了Framework中的UserControl接口,所以允許用戶在VS的IDE環(huán)境中進行拖放操作。增加了對其它語言的訪問接口支持,如C++,VB。
圖3.3所示為監(jiān)控系統(tǒng)網站CPU負荷曲線示例
3.3.4 報表部分(如圖3.4所示)
(1)單中心數(shù)據處理模塊(服務器)支持400臺監(jiān)控主機。
(2)可通過分組擴展服務器的方式增加監(jiān)控主機數(shù)量。