大型分布式智能監控系統的制作方法
【技術領域】
[0001] 本發明及監控系統研究領域,尤其涉及一種大型分布式智能監控系統。
【背景技術】
[0002] 隨著互聯網技術的不斷革新及企業規模持續的擴大,企業的信息化建設投入迅速 增加,使企業的信息系統越來越復雜,然而傳統的服務器管理多采用人工的方式,而該方式 存在很多的人力浪費。
[0003] 同時問題的發現的不夠及時,往往錯過處理問題的最佳時機。
[0004] 而服務器出現問題會造成系統負載的增加,應用程序數據處理緩慢,甚至服務器 宕機,造成無法挽回的損失。
[0005] 現在公司的服務器數量龐大,提供的服務越來越多,如果僅靠人力來進行維護,工 作量就相當的大,因此就有了大型分布式監控系統的產生。
[0006] 優點:對設備性能要求低(實際測試環境:虛擬機Cent0S5, 2GCPU 1G內存,監控5 臺設備,CPU使用率基本保持在10%以下,內存剩余400M以上);支持設備多;支持分布式集 中管理;開放式接口,擴展性強。
[0007] 缺點:需在被監控主機上安裝agent,所有數據都存在數據庫里,產生的數據很 大,瓶頸主要在數據庫。
[0008] 在現有技術中,傳統的監控項目難以反映出各類應用系統是否正常,只有親自使 用系統才能真正判斷出應用系統是否可用,單憑人工操作是無法保證監控的時效性的。
[0009] 綜上所述,本申請發明人在實現本申請實施例中發明技術方案的過程中,發現上 述技術至少存在如下技術問題: 在現有技術中,由于傳統的監控項目難以反映出各類應用系統是否正常,只有親自使 用系統才能真正判斷出應用系統是否可用,單憑人工操作是無法保證監控的時效性的,所 以,現有的監控系統存在監控的時效性較差,需要大量的人工進行判斷的技術問題。
【發明內容】
[0010] 本發明提供了一種大型分布式智能監控系統,解決了現有的監控系統存在監控的 時效性較差,需要大量的人工進行判斷的技術問題,實現了監控系統時效性較好的技術效 果。
[0011] 為解決上述技術問題,本申請實施例提供了大型分布式智能監控系統,所述系統 包括: 模擬用戶行為模塊和應用狀態感知模塊,所述模擬用戶行為模塊和所述應用狀態感知 模塊彼此關聯協作,由模擬用戶行為模塊不斷循環獲取應用的狀態,然后將狀態傳遞給應 用狀態感知模塊,應用狀態感知模塊經過判斷,將狀態信息以多種方式展示給運維管理人 員。
[0012] 其中,所述模擬用戶行為模塊根據提取出的用戶操作流程,將用戶使用應用系統 的一系列操作利用程序來自動實現,然后將程序的操作結果記錄下來,提供給后續的應用 狀態感知模塊進行判斷。
[0013] 其中,所述應用狀態感知模塊接受模擬用戶行為模塊所傳遞的應用系統狀態的信 息,分析該狀態信息,然后將信息展示給運維管理人員;若出現服務狀態的變更,還會以短 信、郵件等多種方式實時通知管理員。
[0014] 其中,所述系統還包括: 網絡層模塊,所述網絡層模塊用于提供網絡通信接口,方便各模塊層通信使用; 服務器模塊,所述服務器模塊用于提供服務器服務; Agent模塊,所述Agent模塊用于搜集被監控服務器的各監控項數據,并根據監控項的 監控方式將搜集到的數據發送給監控服務器或者代理服務器; Proxy模塊,所述Proxy模塊用于幫助服務器搜集客戶端的監控數據,減輕服務器的網 絡負載; 數據庫模塊,所述數據庫模塊用于提供數據庫服務。
[0015] 本申請實施例中提供的一個或多個技術方案,至少具有如下技術效果或優點: 由于采用了將大型分布式智能監控系統設計為包括:模擬用戶行為模塊和應用狀態感 知模塊,所述模擬用戶行為模塊和所述應用狀態感知模塊彼此關聯協作,由模擬用戶行為 模塊不斷循環獲取應用的狀態,然后將狀態傳遞給應用狀態感知模塊,應用狀態感知模塊 經過判斷,將狀態信息以多種方式展示給運維管理人員的技術方案,即利用運維自動化的 核心技術-腳本編程技術來實現,我們采用腳本程序來模擬客戶端或用戶訪問應用系統 的流程,將該流程自動化、程序化,利用監控系統的接口將系統狀態傳遞給監控服務器端, 通過監控服務器端的Trigger判斷,將應用系統的可用狀態的變更以頁面、郵件或者短信 的方式展示給運維管理人員,以達到實時監控的目的,所以,有效解決了現有的監控系統存 在監控的時效性較差,需要大量的人工進行判斷的技術問題,進而實現了監控系統時效性 較好的技術效果。
【附圖說明】
[0016] 圖1是本申請實施例一中大型分布式智能監控系統的組成示意圖。
【具體實施方式】
[0017] 本發明提供了一種大型分布式智能監控系統,解決了現有的監控系統存在監控的 時效性較差,需要大量的人工進行判斷的技術問題,實現了監控系統時效性較好的技術效 果。
[0018] 本申請實施中的技術方案為解決上述技術問題。總體思路如下: 采用了將大型分布式智能監控系統設計為包括:模擬用戶行為模塊和應用狀態感知模 塊,所述模擬用戶行為模塊和所述應用狀態感知模塊彼此關聯協作,由模擬用戶行為模塊 不斷循環獲取應用的狀態,然后將狀態傳遞給應用狀態感知模塊,應用狀態感知模塊經過 判斷,將狀態信息以多種方式展示給運維管理人員的技術方案,即利用運維自動化的核心 技術-腳本編程技術來實現,我們采用腳本程序來模擬客戶端或用戶訪問應用系統的流 程,將該流程自動化、程序化,利用監控系統的接口將系統狀態傳遞給監控服務器端,通過 監控服務器端的Trigger判斷,將應用系統的可用狀態的變更以頁面、郵件或者短信的方 式展示給運維管理人員,以達到實時監控的目的,所以,有效解決了現有的監控系統存在監 控的時效性較差,需要大量的人工進行判斷的技術問題,進而實現了監控系統時效性較好 的技術效果。
[0019] 為了更好的理解上述技術方案,下面將結合說明書附圖以及具體的實施方式對上 述技術方案進行詳細的說明。
[0020] 實施例一: 在實施例一中,提供了大型分布式智能監控系統,請參考圖1,所述系統包括: 模擬用戶行為模塊和應用狀態感知模塊,所述模擬用戶行為模塊和所述應用狀態感知 模塊彼此關聯協作,由模擬用戶行為模塊不斷循環獲取應用的狀態,然后將狀態傳遞給應 用狀態感知模塊,應用狀態感知模塊經過判斷,將狀態信息以多種方式展示給運維管理人 員。
[0021] 其中,在本申請實施例中,所述模擬用戶行為模塊根據提取出的用戶操作流程,將 用戶使用應用系統的一系列操作利用程序來自動實現,然后將程序的操作結果記錄下來, 提供給后續的應用狀態感知模塊進行判斷。
[0022] 其中,在本申請實施例中,所述應用狀態感知模塊接受模擬用戶行為模塊所傳遞 的應用系統狀態的信息,分析該狀態信息,然后將信息展示給運維管理人員;若出現服務狀 態的變更,還會以短信、郵件等多種方式實時通知管理員。
[0023] 其中,在本申請實施例中,所述系統還包括: 網絡層模塊 所述網絡層模塊用于提供網絡通信接口,方便各模塊層通信使用;網絡層模塊設計說 明:目的:提供一個高效、穩定網絡通信接口,方便各模塊層通信使用;功能:服務端網絡 層封裝;客戶端網格層封裝;I0CP支持;CS基礎通信協議;命名規則:遵守匈牙利命名法; 網絡層類圖:CDirectNetClient : Client 的 TCP 連接封裝;CDirectNetServer : Server 的TCP連接封裝; 接口說明: //功能:初始化整個網絡系統 DNRESULTInitialize(iDirectNetCryption*cryption, iDirectNetServerEventHandler ^handler, DWORD maxNumberClients ); //功能:關閉網絡連接 Void Close (); 模塊主框架設計流程圖:網絡消息模塊流程:調用build初始化-接收消息/發送消 息-調用relese。
[0024] 服務器模塊 所述服務器模塊用于提供服務器服務;Server模塊設計說明 目的: 提供一個高效、穩定服務器模塊。 功能: 1.同步數據庫的hosts表和items表。
[0025] 2?檢查database是否掛掉。
[0026] 3?主動連接agent。
[0027] 4?收數據并處理。
[0028] 5. alerts表中的未發送的警報都發送。
[0029] 6.定時對數據庫中一些過期的數據進行刪除。
[0030] 7?設置閥值。
[0031] 8.實現分布式關聯函數。
[0032] 9.周期性的檢測服務是否運行正常。
[0033] 10?收索ip地址范圍,它加入hosts表。
[0034] 11?將history數據同步數據庫。
[0035] 12.發送郵件和執行遠程shell命令。
[0036] 13.主動連接代理,并獲取history數據。
[0037] 14.收集收集系統本身的各個進程的運行情況。
[0038] 命名規則: 遵守匈牙利命名法Server模塊類圖: iB⑶Bconfig :同步數據庫的hosts表和items表的內容到內存的進程,時間間隔默認 為ls,這兩個表用的很頻繁,出于性能考慮,在內存上用哈希表的形式緩存了這兩個表的信 息。
[0039] iBGWatchdog :檢查database是否掛掉,時間間隔默認60s,如掛了需要向管理員 報警,檢查的方式為每隔60s重連一次數據庫,沒有報錯表明運行正常。
[0040] iBGPoller :主動連接客戶端,然后發送請求然后獲取獲取響應的數據,并將獲取 的數據存放到history表的內存緩存中,同時更新監控項的狀態。
[0041] iBGTrapper:從監聽端口接收數據并調進行處理。
[0042] iBGAlerter:每隔30s將alerts表中的未發送的警報都發送出去,并且發送成功 后將警報標識改為已發送。
[0043] iBGHousekeeper:定時對數據庫中一些過期的數據進行清理刪除。
[0044] iBGTimer:這個進程最主要的功能就是定時的調用計算數據庫中定義的觸發器的 值,如果新值和原有的值不相等,表示有新的事件產生,然后就將新的事件插入到數據庫。
[0045] iB⑶iscoverer:它