麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種基于事件機制的分布式網絡監控方法

文檔序號:7781455閱讀:332來源:國知局
專利名稱:一種基于事件機制的分布式網絡監控方法
技術領域
本發明涉及到計算機網絡監控技術,具體涉及到一種基于事件機制的分布式網絡監控系統中服務器端監控的方法。
背景技術
21世紀已進入計算機網絡時代。計算機網絡極大普及,計算機應用已進入更高層次,計算機網絡成了計算機行業的一部分。新一代的計算機已將網絡接口集成到主板上,網絡功能已嵌入到操作系統之中,智能大樓的興建已經和計算機網絡布線同時、同地、同方案施工。隨著通信和計算機技術緊密結合和同步發展,我國計算機網絡技術飛躍發展。網絡管理就是通過某種方式對網絡進行管理,使網絡能正常高效地運行。其目的很明確,就是使網絡中的資源得到更加有效的利用。網絡管理包括對硬件、軟件和人力的使用、綜合與協調,以便對網絡資源進行監視、測試、配置、分析、評價和控制,這樣就能以合理的價格滿足網絡的一些需求,如實時運行性能、服務質量等。網絡管理經過一段時間的發展,已經有了長足的進步,各種各樣的監控管理工具正在滿足著不同的網絡監控需求,其中,分布式網絡監控是其中重要的一份子。分布式網絡監控是將地理上分布的網絡管理客戶機與一組網絡管理服務器相互作用,共同完成網絡監控管理功能。在以前,由于網絡環境中客戶機比較少,相應的監控資源也比較少,采用的監控手段也比較簡單,沒有統一的規劃,通常是通過多個進程分別對硬件和遠程主機的軟件資源進行監控;但是,隨著自動辦公化的發展,現在的企業,網絡環境中客戶機越來越多,網絡環境越來越復雜,原有的監控系統已經不能滿足增長的辦公環境, 由于監控的隨意性、網絡環境的復雜性等原因,監控服務器上運行的監控進程越來越多,資源消耗越來越大,導致監控服務器運行速度越來越慢,造成監控系統不能及時響應客戶機請求,監控系統不能及時獲得客戶機資源狀態變化的情況,影響企業的正常運營。這個時候,如果還要繼續使用原有的監控系統,企業只能增加監控服務器以分散每個監控服務器的的壓力,或者重新購買監控軟件以提高監控能力,而這兩種方法都會給企業運營帶來額外的成本。

發明內容
針對以上問題,本發明提供了一種基于監控服務器端的采用事件機制的通用分布式網絡監控方法。所謂事件機制,是將所有的操作(主要分為兩類,監控操作包括硬件設備監控、應用服務監控等;管理操作包括監控結果回收、日志記錄等)通過統一的事件結構來表示,將所有的操作統一化,并通過事件優先級隊列的方式使得監控進一步優化,使監控和管理一體化,實現對網絡中硬件設備、操作系統、應用服務等軟硬件設備的統一監控;并通過并行服務檢查,按需調用監控進程,大大降低了監控服務器的負載,提高了單臺監控服務器的監控性能,解決了增長的網絡環境中服務器監控性能瓶頸問題,在不需要增加監控服務器數量、不需要重新購買新的監控軟件的前提下,仍然能夠對網絡中的各種軟硬件設備進行監控而不會出現遺漏或響應不及時的問題,大大提高了原有監控環境的生命周期。為了實現以上目標,本發明提供了以下技術方案
1)讀取配置文件,加載事件處理模塊;
2)監控初始化,創建各個事件,按照事件執行時間構建兩個優先級的事件隊列高優先級事件(檢查事件以外的所有事件)隊列,低優先級事件(檢查事件)隊列;
3)進入監控循環,根據優先級處理各個事件首先處理高優先級隊列中的事件,其次處理低優先級隊列事件;
4)監控系統收到停止信號,退出。本發明適用于分布式監控管理系統,跟傳統的分布式監控系統相比,有以下兩方面的優勢
1)監控流程使用單進程循環方式,減少了系統中運行的進程數,降低了系統負載,提高了單機監控能力;
2)采用統一的數據結構——事件,簡化了監控管理操作,節省了管理所需的系統資源,主要是存儲空間。


圖1是本發明適用的監控系統結構示意圖; 圖2是本發明分布式網絡監控方法實現的流程圖; 圖3是本發明監控循環的流程圖。
具體實施例方式為了使本發明的目的、技術方案及有益效果更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。下面結合圖1、圖2和圖3,通過具體實施方式
對本發明作進一步的詳細描述
圖1是本發明適用的分布式網絡監控系統結構示意圖。本方法主要針對監控服務器端,主要由兩個部分構成事件處理模塊和基于優先級的事件隊列,事件處理模塊用于對事件隊列中的事件進行處理,而優先級隊列則用于存儲所有的事件。圖2是本發明分布式網絡監控方法實現的總流程圖,圖3是監控循環的流程圖,具體的流程如下
1)讀取配置文件,加載事件處理模塊
在該方法中,首先要讀取配置文件,配置文件主要用于定義所有監控內容和監控選項, 包括監控對象(分為主機host和服務service兩類)、監控選項(主要包括檢查間隔、結果回收間隔、日志記錄間隔等內容)。主機是以實體存在的客戶機,可以是硬件設備,也可以是一個操作系統;而服務則是存在于實體上的各個具體應用。讀取配置文件的過程就是獲取所有已經定義好的主機和服務,并讀取所有的監控選項。此外,還需要初始化并加載事件處理模塊,事件處理模塊是一系列事件處理操作的集合,包括事件檢查處理(參考步驟4)、外部命令處理(步驟3中針對EVENT_C0MMAND_ CHECK的處理)、結果回收(步驟3中針對EVENT_CHECK_REAPER的處理)以及日志處理(步驟3中針對EVENT_L0G_R0TATI0N的處理)等。2)監控初始化(init_event_l00p),根據配置文件內容創建事件,構建不同優先級的事件隊列;
本發明所述的方法以事件機制為核心,因此所有的操作都是由事件觸發器觸發的。 init_event_loop用于創建事件并進行初始化工作,主要包括
利用從配置文件中讀取的信息建立SChedulingjnfo表,該表的內容包括總的host 數、總的service數、單個host平均service數、平均service檢查間隔、host檢查總間隔、 service檢查總間隔等;
為了降低系統負載,需要調整兩個主機或者兩個服務之間的檢查間隔,以避免同一時間出現多個檢查事件,本發明中采用平均值法計算得到最優的檢查間隔,計算公式為最優 host 檢查間隔(host_inter_check_delay)=總 host 檢查間隔 / 總的 host 數,最優 service 檢查間隔(service_inter_check_delay)=總 service 檢查間隔 / 總的 service 數。創建事件,構建事件優先級隊列。事件按照功能分為檢查事件和非檢查事件。檢查事件分為兩類
#define EVENT_SERVICE_CHECK 0 // 服務檢查事件 #define EVENT_H0ST_CHECK 1 // 主機檢查事件非檢查事件包括所有檢查事件之外的其他事件,主要事件定義如下 #define EVENT_C0MMAND_CHECK 3 //外部命令事件 #define EVENT_L0G_R0TATI0N 4 // 日志記錄事件 #define EVENT_CHECK_REAPER 5 // 結果回收事件根據以上定義創建事件(event),定義如下。typedef struct event—struct{
int event_type; //事件類型,參考前面的事件類型定義 time_t run_time; //執行時間
int recurring; //是否安排下一次執行,檢查事件一般都會重復執行 unsigned long event_interval ; //同一事件兩次檢查間隔,值來自配置文件 void *event_data; //事件數據內容
struct event_struct *next; struct event_struct *prev; } event; //事件定義
根據檢查事件和非檢查事件的分類,構建兩種優先級隊列高優先級隊列(用于存放非檢查事件)和低優先級隊列(檢查事件)。構建高優先級隊列的邏輯計算得到非檢查事件的執行事件(非檢查事件的執行時間=當前時間+該事件的檢查間隔),按照執行時間插入到隊列中,并修改隊列執行時間為隊列首事件的執行時間;構建低優先級隊列邏輯如下 初始化間隔基數(mult_factor)為0,讀取最優主機檢查間隔host_inter_check_delay, 依次讀取各個已經定義好的主機,對于每個主機檢查事件,其檢查時間=當前時間+(host_ inter_check_delay*(mult_factor++));服務檢查事件同樣如此,讀取最優服務檢查間隔 (service_inter_check_delay),依次讀取服務定義,其檢查時間=當前時間+ (service,
5inter_check_delay* (mult_factor++)),根據檢查時間的先后次序將所有檢查事件插入到低優先級隊列中,并修改低優先級執行事件為隊列首事件的執行時間。通過這樣的方式,可以將檢查時間平均化,避免某一個時間段內檢查事件過多,造成系統負載過高而影響檢查效率。3)進入監控流程eVent_l00p,根據優先級處理各個事件,參考圖3
事件隊列創建之后,僅需監控流程eVent_l00p,event_loop以單個進程循環方式執行,流程如下
(1)高優先級隊列判斷,見圖3中的Si。如果隊列空或者當前時間小于隊列執行時間, 則說明當前沒有事件要執行,轉入步驟(5);否則,轉入步驟O)。(2)處理高優先級隊列首事件,見圖3中的S2。根據事件類型分別進行相應的處理,列舉主要的非檢查事件處理方法
針對EVENT_COMMAND_CHECK的處理檢查調用的外部命令是否存在,如果存在,則調用相應的命令進行處理。主要的外部命令包括停止檢測、調整下一次檢查時間、啟用或者禁用主機/服務通知等,這些外部命令都是可以根據自己的需求定義的; 針對EVENT_L0G_R0TATI0N的處理寫日志記錄到日志文件中; 針對EVENT_CHECK_REAPER的處理檢查結果回收處理,包括將檢查結果保存到文本文件中以及將結果通過數據庫讀寫模塊保存到數據庫中。處理完之后,將該事件從隊列中移除,并修改隊列執行時間為當前隊列首事件的執行時間。(3)檢查是否需要安排下一次執行,見圖3中的S3,如果不需要安排下一次執行, 轉入步驟(1)繼續執行下次循環;如果需要安排下一次執行,轉入步驟G)。(4)安排下一次執行,見圖3中的S4。修改事件執行時間為本次檢查時間+檢查間隔,按照事件執行時間插入到相對應的優先級隊列中,并修改隊列執行時間為當前隊列首事件的執行時間。(5)低優先級隊列判斷,見圖3中的S5。如果隊列空或者當前時間小于隊列執行時間,則說明當前沒有事件要執行,轉入步驟(1);否則,轉入步驟(6)。(6)低優先級隊列處理,見圖3中的S6。從隊列中取出首個檢查事件進行處理,考慮到同一時間可能有多個檢查事件,因此采取并發方式進行,主線程fork出一個子線程執行該次檢查事件,見步驟(7)和步驟(8);之后,將該事件從隊列中移除,修改低優先級隊列執行時間為當前隊列首事件的執行時間,轉入步驟(3)。(7)子線程處理1,見圖3中的S7。子線程從事件內容中獲取檢查內容(包括檢查命令、檢查對象等),根據檢查內容設置超時并向相應主機發送監控命令,之后等待客戶機反饋結果。(8)子線程處理2,見圖3中的S8。如果超時或者收到客戶機反饋結果,子線程創建回收事件,該事件的執行時間為當前時間,并將該事件按照執行時間的順序插入到高優先級隊列中,并結束該次檢查。4)退出
監控過程會在幻中循環,直到收到用戶發送來的結束信號,監控系統退出,監控過程結束。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內所做的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種基于事件機制的分布式網絡監控方法,其特征在于,包括以下步驟1)讀取配置文件,加載事件處理模塊;2)監控初始化,創建監控事件,構建不同優先級的事件隊列;3)進入監控循環,根據優先級處理各個事件首先處理高優先級隊列中的事件,其次通過并發方式處理低優先級隊列事件;4)退出。
2.如權利要求1所述的方法,其特征在于步驟1)中需要從配置文件中獲得創建事件所需要的監控對象內容以及監控選項。
3.如權利要求1所述的方法,其特征在于步驟2)中的初始化工作包括得到監控對象的信息內容,通過計算得到各個數據信息,創建核心數據結構事件,并在此基礎上構建不同優先級的事件隊列。
4.如權利要求1所述的方法,其特征在于步驟3)要中的高優先級隊列中的事件是指監控事件以外的其他事件,包括監控回收事件、日志處理事件;低優先級事件是指所有的監控事件,包括主機監控事件以及服務監控事件兩類。
全文摘要
本發明實現了一種基于事件機制的分布式網絡監控方法,包括各種初始化操作;構建基于優先級的事件隊列;根據優先級對事件進行處理;獲取網絡中客戶機的狀態信息等。本發明適用于當前流行的分布式遠程監控系統架構,采用統一的事件機制,節省了存儲空間,優化了管理方式;通過并行檢查機制,提高了監控系統的監控能力,最終提高了原有分布式監控系統在增長的網絡環境下的使用壽命,可以有效減少企業硬件成本,較好地保證了正常的網絡環境。
文檔編號H04L29/08GK102457578SQ201110422600
公開日2012年5月16日 申請日期2011年12月16日 優先權日2011年12月16日
發明者蘭雨晴, 劉艷彬, 夏穎, 張永軍, 王建慧 申請人:中標軟件有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 安乡县| 瑞昌市| 长兴县| 新和县| 东海县| 务川| 高雄县| 滨海县| 灵寿县| 马山县| 满洲里市| 垣曲县| 乌兰县| 汤原县| 永川市| 宽城| 桃源县| 金乡县| 彩票| 东安县| 隆德县| 乌兰察布市| 麟游县| 芜湖市| 增城市| 琼结县| 弥勒县| 民乐县| 苏尼特右旗| 昌邑市| 长海县| 砀山县| 曲阜市| 洮南市| 衢州市| 克东县| 淮南市| 石河子市| 鹿泉市| 泊头市| 峨边|