李師謙, 王杰瓊, 胡 彬, 王 蕾, 鄧 晶
(1.中國人民解放軍72671部隊, 山東 濟南 250022; 2.山東中醫藥大學 藥學院, 山東 濟南 250355)
文中建立了一種分布式和動態故障管理架構[1],這種架構由事件處理,關聯性分析和報警處理三種分布式組件構成.各個組件的結構關系如圖1所示.
圖1中,故障服務器和報警服務器是兩個具有IP連通性的網絡節點,故障服務器由事件和關聯組件組成,報警服務器組件只具有報警組件[2].遠程集成點(API)解決了與其產品和工具的集成問題.
該故障管理服務是一個基于組件的可重用服務,叫做JADFAME(Java Distribute Fault Management Engine).JADFAME可以集中部署在網絡管理服務器里,或在代理端的本地借助分布式架構和事件與警告注冊接口.同樣,借助RMI基礎設施的幫助,它也可作為一個基于網絡的故障管理服務[3].
JADFAME-Java的分布式故障管理引擎,是一個分布式的故障管理服務.業務目標是為各種業務需求提供一個通用的故障管理解決方案.JADFAME實施中首先需要關注動態自定義事件關聯和分布式服務架構.三個主要成分是:
(1)事件處理單元:這是分布式環境中作為事件注冊表使用的組分.需要被關聯的事件必須用事件處理單元添加到事件數據庫中.這種事件單元寄存器來源很廣,如SNMP陷阱、拓撲事件、狀態輪詢和服務,如性能、安全性.

圖1 組件部署圖
(2)關聯器單元:這是作為事件關聯器引擎的組分.這個引擎使用關聯的事件源,事件發生的原因來處理基本關系,用事件關聯模型來處理關聯的復合事件.
(3)通知處理單元:這是分布式環境中作為環境警報創建單元事件關聯引擎使用的.這個單元用于顯示根源意見,也可用于創建行動,例如發送電子郵件,故障解除事件,發送短信,生成故障報表.
這種架構是一個可擴展的故障管理計算框架,開發人員和研究人員可以開發其故障管理應用程序.由于通過遙控提供編程支持,所以編程接口或引擎有一個開放的可擴展的基礎設施.
在建網絡管理系統和事件關聯系統使用分布式架構是一種趨勢.而具有明確的功能標準的服務(組件)和標準組件間通信協議的使用使得建設開放的、可擴展的、可定制的系統變成了可能[4].許多技術可用于建設分布式網絡管理的基礎設施系統,包括CORBA,DCOM和RMI[5],在本文的以下部分,我們使用RMI基礎設施來描述設計分布式事件關聯系統,它能很自然地講一個框架轉換成一個基于Web的故障管理.

圖2 分布式組件架構
JADFAME關聯組件有一個事件關聯模型,它是高度動態的,容易建模并將模型添加到關聯知識數據庫.
一個拓撲關聯建模(圖3)組件,用于收集關聯的拓撲數據已存入知識數據庫,這種數據庫同樣適應其他網絡管理平臺.事件關聯系統的主要部分是創建初始關系.如果關系不正確,那么任何所產生的信息都是錯誤的.拓撲發現是事件關聯的很有效的工具[6].事件關聯模型結合了拓撲對象、因果、時間和模型拓撲事件,然后以一定的規則和方式表達出來.拓撲關聯建模組件自動指定管理對象和它們的關系,也可以手動調節.拓撲關聯模型有一個通用的拓撲對象和通用事件.拓撲關聯模型首先從發現模塊創建管理對象的實例,其次從監測模塊、輪詢服務和事件數據庫創建事件實例,這樣就生成了事件關聯模型實例.

圖3 拓撲關聯建模
事件關聯的通用模型創建模板使用規則:
“If event then do action”,
“If event1 AND event2 AND event3 do action else suppress events”,
“If event threshold do action”,
“If event threshold with timing constraint t2 do action else suppress event”,
“Suppress event”,
“Suppress all events”,
“Filter according to criteria”,
“If compare to source: event text do action”
這些規則中的某些操作可能會發送電子郵件,播放MIDI,執行程序,或生成事件.可能用到如布爾運算符(AND,OR,NOT),作為一個規則的一部分.
所述系統事件關聯模型工作原則如下.
每個事件源和它們之間的關系都被建立模型.
f3故障是由f1故障引起,同時f4是由f2引起或f6由于f2和f3共同引起.通過關聯的報警分成簡單的布爾模式,可以構建故障診斷規則(圖4):
Rule 1: if f4 and f5 and f6 then f2
Rule 2: if f4 or f5 or f6 and f2 then f1
Rule 3: if f2 and f3 then f1

圖4 使用報警關聯的網絡診斷
關聯器模式的另一個優點是在JAVA的幫助下管理的對象、事件模型和關聯其模型是分開的,這樣可以擴展,修改或變更而無需重新編譯整個系統.
系統原型用Java,HP Openview平臺和MySQL數據庫實現.
系統事件的結構如圖5所示.事件處理單元以如下形式接受事件.

圖5 事件結構
主要字段包括:
(1)事件類別:該字段確定源事件機制,例如,狀態事件的拓撲安全事件,事件和性能事件.
(2)拓撲信息:這個字段有許多子領域,如網絡、元素名、對象名,其中確定事件之間的關聯性和物理網絡.
(3)原因:該字段確定事件的原因.如節點故障、鏈路斷開、連接閾值.
(4)時間:該字段確定事件發生的時間.
JADFAME故障管理系統功能強大的事件可視化工具,也可被稱為事件瀏覽器.瀏覽器使用RMI基礎設施的查詢事件和報警處理組件.
事件瀏覽器能夠根據時間、告警級別和事件源定義過濾器.
拓撲關聯建模是原型系統中的一種工具,以便將與拓撲結構有關的信息添加到關聯知識數據庫.這工具可以作為第三方工具集成到系統中.這里將HP Openview拓撲數據庫和事件數據庫作為網絡管理基礎設施.
拓撲對象和事件關聯添加到關聯知識數據庫后的界面如圖3所示.
作為一個測試床使用的拓撲結構,如圖6所示.

圖6 拓撲結構
發現拓撲使用HP Openview,導入拓撲模塊用于模擬知識數據庫.
拓撲關聯建模被用來自動建立關聯知識數據庫,對于事件關聯建模來說,自主拓撲發現是一個非常有用的工具.
拓撲關聯模型用于在預先定義好的模板知識模型的幫助下自動為關聯引擎數據庫建模.這種組件自動創建模型,拓撲關聯建模創建的模型不是嚴格同組件關聯的,如果需要可以進行調整.
雖然故障管理的結構非常重要,一個功能齊全的事件關聯器對于原型系統進行故障管理也是必不可少的.對于來源相同的事件,關聯器引擎有一種特殊的邏輯評估;對于高級事件根源分析,它使用jess作為一個引擎,該引擎具有模糊知識關聯模式的拓展,但這版本還沒能實現.
通過導入拓撲組件的幫助下,我們在關系管理對象(MO)中收集網絡的拓撲結構和關系的實例,每個MO在數據庫中表示,根據他們之間的關系.事實關聯知識數據庫中自動建模.
本文提出了一種新的采用基于分布式組件體系結構故障管理方法.它不但能夠滿足故障管理還能夠滿足下一代需要事件關聯分析(如入侵檢測)支持的管理系統.同時,本文提出了一種自動的規則檢測和關聯方法,用于建立知識數據庫模型.使用拓撲結構的依賴關系的事件關聯模型已經建立,并應用到實際的網絡.
[1] 張強,陳琳,龔正虎.分布式網絡故障管理系統實現技術研究[J].計算機工程與科學,2006,28(5):23-26.
[2] 牟鵬至.基于SNMP的網絡故障管理功能的研究與實現[J].電腦知識與技術,2012,8(1):12-14, 19.
[3] 何長林,黨小超.一種基于SNMP的分布式網絡故障管理模型[J].電腦編程技巧與維護,2011(10):115-116, 122.
[4] Hasan M, Sugla B, Viswanathan R. A conceptual framework for network management event correlation and filtering systems[C]//Integrated Network Management, 1999. Distributed Management for the Networked Millennium. Proceedings of the Sixth IFIP/IEEE International Symposium on, 1999: 233-246.
[5] Downing T B. Java RMI:remote method invocation[M]. Framingham: IDG Books Worldwide, 1998.
[6] Breitbart Y, Garofalakis M, MARTIN C,etal. Topology discovery in heterogeneous IP networks[C]//INFOCOM 2000. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE, 1, 2000: 265-274.