文/宮劍 黃杰 孫曉靜
隨著信息化建設程度的不斷提高,越來越多企事業單位的日常業務工作與業務信息系統緊密相關,如協同辦公系統、人力資源系統、財務管理系統、資產管理系統等。這些系統的運行情況和各部門業務的捆綁越來越緊密,它們的運行狀態一直是IT運維部門關注的焦點,其可用性、性能指標以及出現故障后的響應時間,都會直接影響客戶的滿意度。一旦系統出現問題,將可能會使各單位遭受巨大的損失,目前采取的主要措施就是引入監控系統來監控各類IT基礎設施和系統,但是實際的效益并不顯著。雖然絕大多數IT運維部門都對自己的生產系統進行了監控,但由于監控是個系統工程,各類業務系統的部署環境日趨復雜,林林總總的各類網絡設備、安全設備、服務器、中間件、數據庫、應用程序等軟硬件來自不同廠商,而現有的監控技術研究局限于各個產品或模塊,或是拓撲發現,或是故障管理,因此未能達到最好的效益,IT運維人員仍疲于應對不同廠商、不同軟硬件架構、不同管理工具、不同成熟度的應用軟件,由此對業務系統的可用性、安全性的日常運行維護管理的要求也越來越高。
據調查報告顯示,大約有三分之一的應用問題是因為客戶發現反饋甚至投訴后才被發現的。如何提升對生產系統的預警和監測,甚至自動恢復的能力,在第一時間發現并解決操作隱患、功能故障或性能瓶頸,打造規范化、無盲點的運維監控體系,成為IT運維人員工作者急需解決的問題。我們在總結日常運行維護工作經驗的基礎上,基于CMDB(Configuration Management Database, 配置管理數據庫)中配置項CI(Configuration Item, 配置項)模型的思路,設計了業務可用性監控平臺對各類IT基礎設施及業務系統進行了監控,并取得一定效果。
本文首先對CMDB進行簡單介紹,隨后對基于CMDB的業務可用性監控平臺的設計進行了詳細闡述,具體包括根據CMDB梳理出的常見監控項、監控平臺的具體實現思路、CI的變更對監控造成的影響及相應處理流程等,最后對基于開源程序的實現情況和實際應用情況進行了介紹。
CMDB 是 ITIL (Information Technology Infras-tructure Library,IT 基礎架構庫 )中最重要、最核心的概念之一。CMDB 在ITIL 中的定義是:提供 IT 相關配置信息,存儲與管理企業 IT架構中設備的各種配置信息,它與所有服務支持和服務交付流程都密切相聯,支持這些流程的運轉、發揮配置信息的價值,同時依賴于相關流程保證數據的準確性。

圖1 CMDB模型舉例

圖2 常見業務系統結構及對應的監控項
在CMDB中,被納入配置管理范圍之內的元素都是 CI,它包括由IT 部門控制的所有 PC 硬件、軟件、服務器、文檔、服務以及由 IT 部門所控制的所有其他 IT組件。從業務角度來看,CMDB實現了對IT系統內部各個元素信息的跟蹤,成為迅速查找IT基礎設施信息的基礎,同時也是實現有效管理決策的基礎。一項信息服務背后都有眾多的CI項與之關聯,其中任何一個CI項或CI之間的關聯出現故障,都有可能造成信息服務出現問題。圖1為筆者所在部門管理的實際生產系統對應CMDB模型片段。
鑒于CMDB在IT體系結構中所起到的重要作用,我們可以借助其對IT的日常運維工作進行深入分析。一個精確的CMDB能夠提供充足的信息讓運維人員方便把每一次運維事件進行定位,以便知道什么地方什么組件出了什么樣的問題,正是因為CMDB在信息服務中和運維深入分析中所起的重要地位,本文提出了基于CMDB的模型來構建業務可用性監控平臺。
傳統對業務系統的監控一般以單個設備、資源或軟件告警為主,缺乏系統與業務層面的整體監控和分析能力,難以從整個系統業務可用性的角度加以評價。同樣一個從技術角度看起來十分微小的故障或疏忽,有可能對業務幾乎沒有影響,但也有可能會造成十分重大的影響。本文通過引入CMDB中的配置項建模思路,試圖解決監控項的局部性問題,同時在開源監控軟件基礎上用靈活的監控腳本編寫加以實現,以期將整個建模過程變得高效化、自動化和規范化,并能夠隨著IT 業務對象的變化而不斷地動態更新和完善,準確地反映業務對象本身,同時達到及時監控的效果。
常見的業務系統軟硬件架構如圖2所示,一般包括物理設備、邏輯資源、操作系統、中間件、應用實例以及業務服務等,針對各個層次的監控項也各不相同,以下說明對于業務系統結構中各個層次的常見監控內容。
圖2為常見應用系統的部署層次結構,一般最底層為物理設備,包括各類物理主機、網絡設備、物理存儲等。隨著虛擬化技術的廣泛采用,部署在虛擬主機上的操作系統越來越多,因此我們專門在物理設備層上搭建了邏輯資源層,不僅包括虛擬主機,還包括邏輯的存儲資源和網絡資源等直接可供操作系統使用的邏輯資源。第三層為操作系統層,基于其上的是中間件層,包含數據庫、應用服務器、HTTP服務等,而具體的業務系統應用實例搭建在中間件層上。最后面對用戶的是業務服務層,它通過負載均衡與應用實例進行關聯。
對物理設備的監控一般主要包括機房環境監控,主機資源的使用率監控等。針對不同的物理設備,監控側重點有所不同。對于物理主機,主要關注CPU、內存、IO、系統平均負載等實時狀態,對存儲設備則主要是對物理磁盤空間使用率的監控,而網絡設備主要是對物理網絡傳輸性能、可訪問性的監控等。
隨著虛擬化的應用逐步增多,越來越多的應用已部署在虛擬主機中,因此需要考慮對邏輯資源的監控。與物理設備類似,關注點也主要包括邏輯磁盤空間使用率,邏輯主機、邏輯網絡資源使用率和性能等。
對操作系統層面的監控內容首先是對操作系統安全方面的監控,比如操作系統版本、補丁、各類防護軟件、重要服務端口的設置情況、用戶訪問級別等,其次為一些重要參數的設置是否正確,如linux中的可打開文件個數參數默認值較小,經常會影響部分應用程序的正常使用。
中間件層一般包括http服務(apache,nginx等)、數據庫和應用服務器(比如Oracle 、MySQL、Tomcat等),因此對中間件層的監控主要包括數據庫性能的監控和應用程序服務狀態的監控。數據庫性能狀態通過監控數據庫的緩存、緩沖區命中率、表空間使用率等核心性能指標獲得,針對應用服務器,以J2EE組件為例,監控的內容包括相應時間、調用次數、并發量、延遲量、對象數、連接池、線程數以及Java內存情況等。
為了保障業務服務的可用性,很多應用系統都采用了硬件或軟件的負載均衡措施,因此面對最終用戶的一項服務的后面常常由多個應用系統實例構成,對這類應用系統實例的監控,除了保證功能可用性方面的監控之外,還要注意保證各個應用實例之間的一致性,這一點往往容易被忽略,應用實例之間不一致導致的后果既難定位,也難以發現核實。
業務服務層主要是針對面向最終用戶的服務功能可用性和業務系統安全性進行監控,其中功能可用性又包括整體可用性和關鍵功能可用性等內容。
第一步,我們歸納出常見的監控點并進行分類。
我們通過對以上梳理出來的常見監控內容進行分析,結合CMDB中的信息得到其對業務系統可用性的影響程度,從而確定一般監控內容需要關注的類型:可用性、安全性、資源利用率、一致性、時效性等,具體如下:
可用性——可用性和系統組件的失敗率相關,系統的失敗只有當其導致服務的失效性足以影響到系統用戶的需求時才會影響其可用性的指標。對于可用性的監控方式,我們主要根據軟件測試的思路,使用各類主動模擬技術,通過腳本主動模擬訪問各類CI項,可以直接取得其具體功能(事務)的響應時間和成功率。
安全性——國際標準化委員會的對計算機安全的定義是“為數據處理系統和采取的技術的和管理的安全保護,保護計算機硬件、軟件、數據不因偶然的或惡意的原因而遭到破壞、更改、顯露。”從該定義可知,安全性在中間件、應用實例、業務系統、操作系統等各個層面上都有所體現,而對于操作系統、中間件等偏底層的安全性尤為重要。在《信息系統安全等級保護基本要求》中,針對不同等級的信息系統在技術防護角度上提出了不同的安全要求,包括標識與鑒別、訪問控制、密碼技術、安全審計、惡意代碼防范、備份與恢復等方面的技術。運用監控手段,結合靈活的腳步設計,可以對安全設備的運行、防護措施的落實、備份恢復的有效性等多方面工作進行實時監控。
資源利用率——資源使用率指對軟硬件等資源的負載情況,一般包括CPU使用率、磁盤空間使用率、系統平均負載、內存使用率、開機時間、I/O以及網絡負載等。資源利用率一般會直接與應用系統的性能有關,對用戶的體驗造成影響。
一致性——這里的一致性主要是指邏輯上應該相同的內容,其物理上也應該是相同的。以負載均衡環境下的多個應用實例而言,只有保證各個實例之間的一致性,應用實例才可以對外提供一致的應用服務。其他的例子還包括不同介質上保存的相同備份內容,其文件大小及md5也應該是相同的。
時效性——響應時間主要指數據庫和業務服務的響應時間,數據庫的響應時間可以通過監控數據庫的關鍵指標來獲得,業務服務的響應時間可以通過模擬瀏覽器訪問的行為,從而獲取業務服務的響應時間。此外,時效性也包括其他CI項的類似倒計時提醒,如針對維護合同的到期日期、關鍵用戶賬戶的到期日期等,通過掃描程序,定時掃描合同日期、重要系統的管理員及其它高級權限的用戶賬號等,不同類型賬號的有效期、修改密碼的要求設置不一樣,通過對比賬號的有效期,從而完成倒計時提醒功能。
第二步,針對上述整理出的監控內容分類,進一步返回到CMDB中,對每一層面、每一類型的CI項分別針對上述監控點類型進行篩查,并建立具體的對應矩陣,盡可能減少監控點的遺漏。監控矩陣示例如表1。
表1中,CI項一列為CMDB中的每一個配置項,矩陣中的數字則代表該CI項所對應監控類型對業務可用性可能造成的影響大小,5為最大,0為最小。具體針對矩陣中每一個非0值,都需要制定出對應的checklist檢查表,對具體監控內容及監控方法進行描述,為監控的具體實施提供參考依據。最后形成一個CMDB中所有CI項對應的監控點檢查表矩陣,檢查表的樣式如下:

第三步,結合CI變更管理流程對監控項同時進行變更。
基于CMDB的變更管理是ITIL管理的核心,CI數據的時效性和準確性是CMDB成功實施的重要標準。如果一名運維工程師在做處理故障前,獲得了不準確的CI信息,從而做出錯誤的診斷結論,后果不堪設想。這樣就要求我們要規范的變更管理流程,使用標準的模版記錄、跟蹤那些原始信息,并與ITIL的流程緊密結合,同時需要定期審計。
在進行CI項的變更過程中,由于監控系統緊密依賴于CMDB,因此監控項也需要做出相應的變更。也就是說,在變更管理流程中,需要在某個步驟加入對與CI相關聯的所有監控項也要進行變更,具體可從管理和技術兩個角度進行實現。
從管理角度,在變更的某個環節加入監控項的審核,由運維人員完成此類工作;從技術角度,還可以使用監控程序對CMDB與監控項進行一致性監控,也就是通過監控系統來監控自身的業務是否存在風險,比方說通過監控CMDB的新增、修改的內容和最后修改時間,與監控檢查點的內容、最后修改時間進行比對,從而在變更第一時間發現哪些CI項缺少監控點,哪些CI項變更后但其監控點沒有變更,這樣完成對CI變更后內容的監控。

表1 監控矩陣示例

圖3 監控模塊
基于CMDB的業務可用性監控平臺的實現分為兩大部分,CMDB配置管理和監控系統。在實現過程中,我們均采用現有的開源框架,其中CMDB采用的是CMDBuild,監控系統采用的是pandorafms。
CMDBuild是一個可配置的Web應用,用來對資產以及相關的工作流操作進行配置建模和管理,能配置實現復雜模型。同時我們對其作了一定改造,能夠無縫集成到我們運維管理平臺中,實現和ITIL中的事件管理、問題管理、變更管理的無縫集成。
開源監控軟件pandoraFMS是一款企業級的監控平臺,它提供統一的Web界面實時監控各種硬件、軟件、操作系統、業務系統、網絡設備并在故障發生時發出報警信息。Pandora FMS體系結構清晰,采用高度模塊化和分布式的體系架構,由監控代理端、監控服務器、中央數據庫服務器以及控制臺組成,每個模塊都是可復制的獨立模塊,并且每個模塊都支持高可用部署。此外,還支持使用SNMP協議(不需要安裝agent)采集監控信息,部署方式更加簡化,支持網絡自動發現服務,自動搜索探測和監控新增加的設備,支持用戶自定義的擴展程序,方便個性化的擴展,提供友好的Web管理控制界面,降低了學習成本,提高了工作效率。
采用CMDBuid和pandoraFMS搭建的業務可用性監控平臺具有如下特點:
pandoraFMS中,監控代理端是在被監控端中運行的應用程序,它負責將收集到的被監控端的信息發送到監控服務器端。監控代理端軟件支持多種平臺,包括 Windows、Linux、 Solaris、 AIX、HPUX、BSD等,在各自運行的平臺上面編寫shell腳本來獲取系統的運行信息,如磁盤使用率、CPU負載、網絡I/O、內存使用率、系統進程數等等。同時,監控模塊的腳本基于操作系統的shell類型,如果同是linux系統,該配置腳本具有普適性,可以復制和移植到其他linux系統使用,對于大規模的監控和部署具有方便快捷的特點。PandoraFMS支持擴展和集成,Web應用的監控可以通過集成第三方的插件或自己編寫插件的方式來完成,從而滿足監控需求。
PandoraFMS里面有報警模板可以設置多種推送通知方式,在報警模板里可以定義觸發報警的條件和觸發時間以及觸發報警時報警信息的內容和發送報警信息的方式,根據對業務可用性影響的大小,可以選擇郵件或是短信進行告知。郵件方式發送報警信息非常簡單,配置SMTP服務器即可。但是郵件報警的方式有不足之處,它不能及時地通知到運維人員,只能通過人工查收郵件的方式來獲取當期系統的報警信息,所以短信報警的方式是更為及時有效的措施,我們采用短信貓的方式進行短信報警。此外通過PandoraFMS不僅能給個人發送報警短信,也可以設置群組,對群組成員同時進行報警。
如前所述,對監控項的變化自身的監控是通過自動發現的工具來實現的,自動發現的工具是一種掃描工具,掃描周期可以通過人工制定,將掃描所得到的信息通過Webservice接口調用CMDB,查詢CMDB中的對應CI項,此時,監控工具就可以找到與CI項的變化內容不匹配的監控項內容,并發出報警。
自動監控到自動開單的轉換是指當監控系統監控到異常時,能夠根據異常類型觸發相應的處理腳本,自動在ITIL的事件管理中開單,直接在單子中記錄事件的類型、相關CI項,發生時間等,運維人員只需進行簡單補充即可。而自動監控到自動處理,則是通過腳本自動處理發生的異常情況。當然,通過監控能夠自動處理的異常情況相對有限,只能應對處理規則比較明確的情況,比如當磁盤空間不足時,可以通過清理N天前的日志情況的方式來釋放空間等,比較復雜的異常情況還需要人為的參與解決。
基于CMDB及開源監控軟件pandoraFMS系統搭建的業務可用性監控系統,實現了對我校主機服務器、Web業務系統、一卡通設備、網絡、數據庫等絕大多數CI項進行的實時監控。不僅能夠很好地監控整體運行情況,而且能夠及時發現故障信息,很大程度上提高了運維部門整體的服務質量,從被動救火轉為主動監控,保障業務持續不間斷運行。隨著學校信息化持續不斷的發展,該監控系統還將不斷的完善,發揮更大的作用。