一種多服務器監(jiān)控方法、裝置和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及計算機技術領域,具體涉及一種多服務器監(jiān)控方法、裝置和系統(tǒng)。
【背景技術】
[0002]在運營、維護服務器時,經(jīng)常需要查看服務器的工作狀態(tài),例如,查詢每臺服務器的CPU使用情況,進程監(jiān)控,磁盤占用以及I/O命令等,或者,控制多臺服務器執(zhí)行任務。對于服務器較少的情況,一般是運營人員直接登錄服務器,輸入命令,獲得查詢結果或控制服務器執(zhí)行任務。
[0003]然而,隨著互聯(lián)網(wǎng)業(yè)務越來越復雜,網(wǎng)站運營,數(shù)據(jù)處理等所需的服務器數(shù)量不斷增加,例如,服務器的數(shù)量可能達到幾百上千臺。這時,登錄每臺服務器進行監(jiān)控就變得十分繁瑣耗時。
[0004]另一種常見的服務器監(jiān)控方式是設置一臺中心服務器,通過該中心服務器監(jiān)控多臺服務器。但這種監(jiān)控方式依然受到限制,管理人員無法隨時隨地得知各服務器的狀態(tài)。
【發(fā)明內容】
[0005]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的多服務器監(jiān)控方法、裝置和系統(tǒng)。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種多服務器的監(jiān)控方法,包括:接收客戶端通過HTTP協(xié)議發(fā)送的監(jiān)控頁面請求,向客戶端返回監(jiān)控頁面,監(jiān)控頁面攜帶有用于建立預置實時連接的腳本;接收客戶端執(zhí)行腳本后發(fā)起的預置實時連接建立請求,根據(jù)預置實時連接建立請求建立與客戶端之間的預置實時連接;通過與客戶端之間的預置實時連接接收監(jiān)控頁面收集的監(jiān)控請求信息;根據(jù)監(jiān)控請求信息,確定目標服務器以及與目標服務器對應的監(jiān)控命令;向目標服務器發(fā)送與目標服務器對應的監(jiān)控命令,以供目標服務器執(zhí)行所述監(jiān)控命令。
[0007]根據(jù)本發(fā)明的另一方面,提供了一種多服務器的監(jiān)控裝置,包括:HTTP請求接口,適于接收客戶端通過HTTP協(xié)議發(fā)送的監(jiān)控頁面請求,向客戶端返回監(jiān)控頁面,監(jiān)控頁面攜帶有用于建立預置實時連接的腳本;配置模塊,適于接收客戶端執(zhí)行腳本后發(fā)起的預置實時連接建立請求,根據(jù)預置實時連接建立請求建立與客戶端之間的預置實時連接;預置通信接口,適于通過與客戶端之間的預置實時連接接收監(jiān)控頁面收集的監(jiān)控請求信息;分析模塊,適于根據(jù)監(jiān)控請求信息,確定目標服務器以及與目標服務器對應的監(jiān)控命令;分配模塊,適于向目標服務器發(fā)送與目標服務器對應的監(jiān)控命令,以供目標服務器執(zhí)行所述監(jiān)控命令。
[0008]根據(jù)本發(fā)明的另一個方面,提供了一種多服務器監(jiān)控系統(tǒng),其包括:上述多服務器監(jiān)控裝置,還包括:客戶端和多個服務器;其中,多個服務器與多服務器監(jiān)控裝置通信。
[0009]根據(jù)本發(fā)明的多服務器監(jiān)控方法、裝置和系統(tǒng),通過HTTP協(xié)議接收監(jiān)控頁面請求并返回監(jiān)控頁面,監(jiān)控頁面在客戶端瀏覽器加載執(zhí)行后,請求建立用于監(jiān)控的預置實時連接,響應于該連接建立請求,建立預置實時連接,并通過監(jiān)控頁面收集監(jiān)控請求,發(fā)送給待監(jiān)控的服務器。根據(jù)該方案,服務器管理人員無需登錄多臺服務器,重復輸入命令,可對多臺服務器進行統(tǒng)一的管理,客戶端的連接配置由頁面中的腳本調用瀏覽器接口完成,不需要瀏覽器之外的復雜配置即可建立能夠保持狀態(tài)的實時連接,達到監(jiān)控要求的實時性,也不受客戶端位置因素的影響。無需瀏覽器頻繁發(fā)送請求,避免了對帶寬和服務器資源的過多占用。
[0010]上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0011]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0012]圖1示出了根據(jù)本發(fā)明一個實施例的多服務器監(jiān)控方法的流程圖;
[0013]圖2示出了根據(jù)本發(fā)明另一個實施例的多服務器監(jiān)控方法的流程圖;
[0014]圖3示出了本發(fā)明中一種監(jiān)控頁面的示意圖;
[0015]圖4示出了根據(jù)本發(fā)明另一個實施例的多服務器監(jiān)控方法的流程圖;
[0016]圖5示出了根據(jù)本發(fā)明一個實施例的多服務器監(jiān)控裝置的結構框圖;
[0017]圖6示出了根據(jù)本發(fā)明一個實施例的多服務器監(jiān)控系統(tǒng)的結構框圖。
【具體實施方式】
[0018]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
[0019]圖1示出了根據(jù)本發(fā)明一個實施例的多服務器監(jiān)控方法的流程圖,如圖1所示,該方法包括如下步驟:
[0020]步驟S110,接收客戶端通過HTTP協(xié)議發(fā)送的監(jiān)控頁面請求,向客戶端返回監(jiān)控頁面,監(jiān)控頁面攜帶有用于建立預置實時連接的腳本。
[0021]本發(fā)明實施例中,通過一臺中心服務器實現(xiàn)對多臺服務器的監(jiān)控。
[0022]中心服務器提供Web服務,向能夠通過HTTP協(xié)議訪問該Web服務的客戶端提供一個監(jiān)控頁面,例如,該監(jiān)控頁面可以是一個HTML頁面。
[0023]用戶在客戶端通過在瀏覽器中輸入HTML監(jiān)控頁面的地址等方式請求該HTML監(jiān)控頁面,中心服務器接收請求后通過HTTP協(xié)議向客戶端返回監(jiān)控頁面。監(jiān)控頁面提供有輸入元素,用于收集用戶輸入的監(jiān)控命令等信息。
[0024]監(jiān)控頁面中還具有用于建立預置實時連接的腳本。預置實時連接指在監(jiān)控多個服務器過程中,與中心服務器發(fā)送監(jiān)控請求,接收監(jiān)控結果時所使用的連接方式。由于瀏覽器正常訪問Web服務時的HTTP連接方式是無狀態(tài)的,而服務器監(jiān)控,例如,監(jiān)控CPU狀態(tài),需要很強的實時性,要求客戶端和中心服務器之間頻繁的數(shù)據(jù)交換,如果通過傳統(tǒng)的HTTP方式進行,客戶端就要頻繁的刷新、發(fā)送請求,中心服務器頻繁應答,之后,返回監(jiān)控數(shù)據(jù),這會占用過多的帶寬和服務器資源。
[0025]本發(fā)明中采用與傳統(tǒng)HTTP的無狀態(tài)連接不同的預設實時連接進行監(jiān)控。預設實時連接一般是客戶端與服務器之間雙向的,持續(xù)性的,有狀態(tài)的連接,例如,預設實時連接可以是采用Comet技術的長連接方式,或Flash Socket, Java Applet套接口等服務器推技術,或WebSocket連接等。
[0026]監(jiān)控頁面中的腳本用于建立客戶端和中心服務器的預置實時連接。例如,對于Flash Socket連接,HTML監(jiān)控頁面中嵌入有一個使用XML Socket類的Flash程序。監(jiān)控頁面中的JavaScript腳本通過調用此Flash程序提供的套接口與服務器端的套接口進行通信。對于其他的實時連接方式,監(jiān)控頁面中的腳本調用瀏覽器的相應接口,按照相應的通信規(guī)范完成連接的建立,此處不再贅述。
[0027]該步驟中,通過傳統(tǒng)的HTTP連接發(fā)送請求,可在任何能夠訪問中心服務器的客戶端,如計算機,移動終端等,向中心服務器請求監(jiān)控頁面,并通過HTTP連接獲取監(jiān)控頁面,頁面在客戶端瀏覽器中加載,客戶端的連接配置由頁面中的腳本調用瀏覽器接口完成,不需要瀏覽器之外的復雜配置即可建立能夠保持狀態(tài)的實時連接,達到監(jiān)控要求的實時性,也不受客戶端位置因素的影響。
[0028]步驟S120,接收客戶端執(zhí)行腳本后發(fā)起的預置實時連接建立請求,根據(jù)預置實時連接建立請求,建立與客戶端之間的預置實時連接。
[0029]以WebSocket連接為例,客戶端在瀏覽器中加載所述監(jiān)控頁面,頁面腳本調用瀏覽器的WebSocket API (應用程序編程接口)初始化與服務器間的WebSocket連接。具體地,瀏覽器首先要向服務器發(fā)起一個包含附加頭信息“Upgrade iWebSocket”的HTTP請求,表明這是一個申請協(xié)議升級的HTTP請求,服務器端啟動一個套接字監(jiān)聽來自客戶端的連接請求,根據(jù)這些附加的頭信息然后產(chǎn)生應答信息返回給客戶端,客戶端和服務器端的WebSocket連接就建立起來了。
[0030]步驟S130,通過與客戶端之間的預置實時連接接收監(jiān)控頁面收集的監(jiān)控請求信肩、O
[0031]監(jiān)控請求信息包括目標服務器的信息,例如目標服務器的主機名(hostname)或ip地址。監(jiān)控請求信息還包括對該目標服務器的監(jiān)控命令,例如,對于Linux系統(tǒng),要獲知目標服務器的CPU使用狀態(tài)或內存使用狀態(tài),則監(jiān)控命令可以是Linux下常用的top命令(系統(tǒng)狀態(tài)查詢命令),要獲知磁盤狀態(tài)、1/0狀態(tài)等,監(jiān)控命令可以是1stat命令(I/O狀態(tài)命令),對于數(shù)據(jù)庫管理