專利名稱:一種主機系統(tǒng)狀態(tài)的檢測方法和裝置的制作方法
技術領域:
本發(fā)明涉及操作系統(tǒng)監(jiān)控技術,特別是涉及用于檢測主機系統(tǒng)狀態(tài)的方法和裝置。
背景技術:
在通常的系統(tǒng)監(jiān)控中,系統(tǒng)的監(jiān)控平臺對主機系統(tǒng)的狀態(tài)監(jiān)控是一個最基礎的核心監(jiān)控指標,屬于監(jiān)控體系中非常重要的部分。如何在第一時間最快發(fā)現(xiàn)主機死機,更進一步,如何在第一時間發(fā)現(xiàn)主機系統(tǒng)異常是系統(tǒng)監(jiān)控的重要組成部分。目前業(yè)界主要采用的主機系統(tǒng)監(jiān)控方法,從監(jiān)控方式來說,可以分為Ping主動式監(jiān)控方式和Agent代理式被動式監(jiān)控方式。
具體來說,Ping主動式監(jiān)控方式主要是采用標準Internet控制報文協(xié)議(ICMP)Ping的方法,定期向目標主機發(fā)送ICMP數(shù)據(jù)包,如果目標主機正常響應返回ICMP數(shù)據(jù)包,則判定主機Alive。這是最常用的對于主機是否死機的標準。Agent代理式被動式監(jiān)控方式目前主要采用在目標主機上安裝Agent代理程序,定期向監(jiān)控管理服務器返回被監(jiān)控主機的信息,即Ke印Alive信息。監(jiān)控管理服務器通過收到目標主機的Keep Alive信息來了解主機是否死機。這種方法一般用在大型的廠商開發(fā)的監(jiān)控軟件上面。目前上述兩種監(jiān)控方法被絕大多數(shù)的監(jiān)控平臺采用,在實際應用中,特別是電信級系統(tǒng)中,上述監(jiān)控方法暴露出了比較明顯的缺點,具體如下I、兩種監(jiān)控方法均采用定期檢查的方式,Ping主動式監(jiān)控是由監(jiān)控管理服務器定期向目標主機發(fā)送信息;Agent代理式被動式監(jiān)控方法則采用目標主機定期向監(jiān)控管理器發(fā)送信息的方式。而定期檢查的方式必然存在一定的檢查周期,另外,考慮監(jiān)控管理服務器的負載壓力,被監(jiān)控的服務器數(shù)量越多,其檢查周期將越長,因此,檢查周期在一般的系統(tǒng)上面必須是分鐘級的。如此,將無法及時地監(jiān)控到主機的死機。2、對于PING主動式監(jiān)控方式而言,該方式只是通過檢查到目標主機網(wǎng)絡是否斷開來判斷主機是否死機,而實際應用中,會存在網(wǎng)絡通暢,但是主機系統(tǒng)異常的情況,這樣,采用PING主動式監(jiān)控方式,將無法判斷主機系統(tǒng)是否異常。而在實際的主機系統(tǒng)監(jiān)控中,主機系統(tǒng)無響應的判斷也是十分重要的一個監(jiān)控項,主機系統(tǒng)無響應的情況下,上層業(yè)務系統(tǒng)大多無法正常對外提供服務。3、對于Agent代理式被動式監(jiān)控方法而言,需要在被監(jiān)控主機上安裝Agent代理程序,雖然從理論上來說,這種方式可以把系統(tǒng)狀態(tài)返回給監(jiān)控管理服務器,但是從實際的應用效果來看,在主機的網(wǎng)絡通信功能正常但系統(tǒng)無響應的情況下,大多是系統(tǒng)資源消耗的時候,此時在目標主機上的Agent也無法對外發(fā)送信息,因為Agent本身也需要消耗系統(tǒng)資源對外提供服務。因此Agent代理式被動監(jiān)控方法也無法實現(xiàn)對系統(tǒng)無響應進行及時監(jiān)控。由此可見,上述現(xiàn)有的主機監(jiān)控方法均存在監(jiān)控的遲滯性以及無法對主機系統(tǒng)無響應情況進行監(jiān)控的問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種主機系統(tǒng)狀態(tài)的檢測方法和裝置,能實現(xiàn)對系統(tǒng)無響應情況的準確監(jiān)控,且具有實時性。為了達到上述目的,本發(fā)明提出的技術方案為一種主機系統(tǒng)狀態(tài)的檢測方法,該方法包括以下步驟a、監(jiān)控平臺預先建立與目標主機之間的安全外殼SSH隧道;b、所述監(jiān)控平臺檢測所述SSH隧道連接是否斷開;
C、如果所述SSH隧道連接斷開,則監(jiān)控平臺觸發(fā)SSH隧道重建;當所述重建失敗時,如果所述失敗的原因為安全外殼守護進程異常,則重新執(zhí)行本步驟,否則判定所述目標主機死機;d、如果所述SSH隧道連接沒有斷開,或所述SSH隧道連接斷開后,監(jiān)控平臺觸發(fā)所述SSH隧道重建成功,則所述監(jiān)控平臺通過向所述目標主機發(fā)送保持激活keep alive命令,確定所述目標主機是否處于系統(tǒng)無響應狀態(tài),并在成功接收到所述keep alive命令的響應信息后,重新執(zhí)行步驟b。一種主機系統(tǒng)狀態(tài)的檢測裝置,該裝置設于系統(tǒng)的監(jiān)控平臺中,包括安全外殼SSH隧道建立模塊,用于建立與目標主機之間的安全外殼SSH隧道,并將建立結果通知給第一檢測模塊;第一檢測模塊,用于檢測所述SSH隧道連接是否斷開,在檢測到所述SSH隧道連接斷開時,觸發(fā)SSH隧道建立模塊重新建立所述SSH隧道,在所述SSH隧道重新建立成功時,觸發(fā)第二檢測模塊執(zhí)行,在所述SSH隧道重新建立失敗時,根據(jù)SSH隧道建立模塊的所述通知,判斷所述SSH隧道建立失敗的原因是否為安全外殼守護進程異常,如果是,則觸發(fā)SSH隧道建立模塊重新建立所述SSH隧道,否則,判定所述目標主機死機;在檢測到所述SSH隧道正常連接時,觸發(fā)第二檢測模塊執(zhí)行;第二檢測模塊,用于通過向所述目標主機發(fā)送ke印alive命令,確定所述目標主機是否處于系統(tǒng)無響應狀態(tài),并在成功接收到所述keep alive命令的響應信息后,觸發(fā)第一檢測模塊檢測所述SSH隧道連接是否斷開。綜上所述,本發(fā)明提出的主機系統(tǒng)狀態(tài)的檢測方法和裝置,通過建立監(jiān)控平臺到目標主機的安全外殼(SSH)隧道,并實時檢測該SSH隧道的狀態(tài)以及是否可以在該SSH隧道上成功發(fā)送KeepAlive命令,可以實時地對主機系統(tǒng)無響應情況進行準確監(jiān)控。
圖I為本發(fā)明實施例一的方法流程示意圖;圖2為本發(fā)明實施例二的裝置結構示意圖。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖及具體實施例對本發(fā)明作進一步地詳細描述。
本發(fā)明的核心思想在于,建立檢測裝置與主機系統(tǒng)之間的安全外殼(SSH)隧道,通過實時檢測該SSH隧道的狀態(tài)以及是否可以在該SSH隧道上成功發(fā)送Ke印Alive命令,來判斷主機系統(tǒng)是否死機,從而可以及時準確的對主機系統(tǒng)的狀態(tài)進行監(jiān)控。圖I為本發(fā)明實施例一的方法流程示意圖,如圖I所示,該方法包括以下步驟步驟101、監(jiān)控平臺預先建立與目標主機之間的安全外殼SSH隧道。本步驟,用于建立監(jiān)控平臺與目標主機間的SSH隧道,以便在后續(xù)過程中通過實時檢測該SSH隧道的狀態(tài)即可可主機是否死機,而不需要等待主機死機時Agent所發(fā)送的監(jiān)控信息,從而可以確保及時、準確地檢測到目標主機死機的狀態(tài)。具體地,建立SSH隧道方法可采用現(xiàn)有技術實現(xiàn),在此不再贅述。步驟102、所述監(jiān)控平臺檢測所述SSH隧道連接是否斷開,如果是,則執(zhí)行步驟103,否則執(zhí)行步驟106。
這里,如果SSH隧道連接斷開則可能存在SSH隧道本身的維護異常所致的情況,因此,需要進一步執(zhí)行步驟103通過重建SSH隧道根據(jù)重建結果來確認;如果SSH隧道連接正常,則說明目標主機與監(jiān)控平臺之間的通路是正常的,但是,還可能存在主機系統(tǒng)死機的情況,因此,這里需要進一步執(zhí)行步驟104通過發(fā)送keep alive命令,進一步進行判斷。步驟103、所述監(jiān)控平臺觸發(fā)所述SSH隧道的重建過程,如果所述SSH隧道重建成功,則執(zhí)行步驟106 ;否則,執(zhí)行步驟104。這里,如果所述SSH隧道重建成功,則說明該SSH隧道可能被人為取消,目標主機可以正常,因此,這里建立成功后,將執(zhí)行步驟106通過發(fā)送ke印alive命令,進一步判斷該目標主機的系統(tǒng)是否正常。步驟104、判斷所述SSH隧道建立失敗的原因是否為安全外殼守護進程異常,如果是,則重新執(zhí)行步驟103,否則,執(zhí)行步驟105。這里,當重建SSH隧道返回的結果指示所述SSH隧道建立失敗的原因為安全外殼守護進程異常(如SSHD服務端被停止、SSH key被刪除等)所致時,需要重新觸發(fā)建立SSH隧道的過程,在實際應用中,可設置一時間間隔,在該時間間隔后再觸發(fā)該重新建立SSH隧道的過程。當重建SSH隧道返回的結果指示所述SSH隧道建立失敗的原因非安全外殼守護進程異常所致時,則可以判斷目標主機死機。步驟105、判定所述目標主機死機。步驟106、所述監(jiān)控平臺通過向所述目標主機發(fā)送ke印alive命令,確定所述目標主機是否處于系統(tǒng)無響應狀態(tài),并在成功接收到所述keep alive命令的響應信息后,重新執(zhí)行步驟102。本步驟用于在SSH隧道正常時,通過在該隧道上發(fā)送ke印alive命令,來檢測目標主機的系統(tǒng)是否正常,以排除與目標主機的網(wǎng)絡通路正常但主機系統(tǒng)異常的情況。具體的,可采用下述步驟實現(xiàn)本步驟所述監(jiān)控平臺通過向所述目標主機發(fā)送keep alive命令,如果所述監(jiān)控平臺接收所述keep alive命令的響應信息超時,則判斷所述超時原因是否為安全外殼守護進程異常,如果是,則執(zhí)行步驟103,否則,判定所述目標主機處于系統(tǒng)無響應狀態(tài)。具體的,keep alive命令可以為echo命令。這里需要說明的是,在判斷接收所述keep alive命令的響應信息超時的原因為安全外殼守護進程異常時,則較佳地,需要通過執(zhí)行步驟103觸發(fā)所述SSH隧道的重建過程,重新建立SSH隧道。較佳的,在實際應用中,還可以根據(jù)發(fā)送keep alive命令后接收到相應的響應信息所需要的時間,來對主機無法響應的趨勢進行預測,以便當預測到該趨勢時通過報警信息提醒維護者對此進行關注。具體的方法如下所述監(jiān)控平臺成功接收到所述keep alive命令的響應信息后,確定本次發(fā)送所述keep alive命令后接收到相應的響應信息所需要的時間tn,并確定所述tn與上一次發(fā)送所述keep alive命令后接收到相應的響應信息所需要的時間tn_i之間的差值Atn,計算所述目標主機所屬網(wǎng)段上的各目標主機當前的Atn的平均值,如果所述Atn滿足Δ > + ^ ,則判斷所述目標主機存在無法響應的趨勢,其中,Atlri和Δ tn_2分別為前兩次得到的所述差值,a為預設的調整系數(shù),a > O。
與上述方法的實施例相對應,下文給出一種用于實現(xiàn)上述方法的裝置,該裝置設于監(jiān)控平臺中,如圖2所示,該裝置包括以下模塊安全外殼SSH隧道建立模塊,用于建立與目標主機之間的安全外殼SSH隧道,并將建立結果通知給第一檢測模塊。第一檢測模塊,用于檢測所述SSH隧道連接是否斷開,在檢測到所述SSH隧道連接斷開時,觸發(fā)SSH隧道建立模塊重新建立所述SSH隧道,在所述SSH隧道重新建立成功時,觸發(fā)第二檢測模塊執(zhí)行,在所述SSH隧道重新建立失敗時,根據(jù)SSH隧道建立模塊的所述通知,判斷所述SSH隧道建立失敗的原因是否為安全外殼守護進程異常,如果是,則觸發(fā)SSH隧道建立模塊重新建立所述SSH隧道,否則,判定所述目標主機死機;在檢測到所述SSH隧道正常連接時,觸發(fā)第二檢測模塊執(zhí)行。第二檢測模塊,用于通過向所述目標主機發(fā)送ke印alive命令,確定所述目標主機是否處于系統(tǒng)無響應狀態(tài),并在成功接收到所述keep alive命令的響應信息后,觸發(fā)第一檢測模塊檢測所述SSH隧道連接是否斷開。較佳的,所述第二檢測模塊包括以下兩個單元keep alive命令發(fā)送單元,用于向所述目標主機發(fā)送keep alive命令;系統(tǒng)無響應判斷單元,在接收所述keep alive命令的響應信息超時時,判斷所述超時原因是否為安全外殼守護進程異常,如果是,則觸發(fā)SSH隧道建立模塊重新建立所述SSH隧道,否則,判定所述目標主機死機;在成功接收到所述keep alive命令的響應信息時,觸發(fā)第一檢測模塊執(zhí)行。進一步地,為了對主機無法響應的趨勢進行預測,所述第二檢測模塊還可以進一步用于在成功接收到所述keep alive命令的響應信息后,確定本次發(fā)送所述keepalive命令后接收到相應的響應信息所需要的時間tn,并確定所述tn與上一次發(fā)送所述keep alive命令后接收到相應的響應信息所需要的時間V1之間的差值Atn,計算所述目標主機所屬網(wǎng)段上的各目標主機當前的Atn的平均值如果所述Atn滿足Μ> + 則判斷所述目標主機存在無法響應的趨勢,其中,Λ V1和Δ tn_2分別為前兩次得到的所述差值,a為預設的調整系數(shù),用于限定當Λ tn值大于較多時,確定目標主機存在無法響應的趨勢,a > 0,具體地,本領域技術人員可以根據(jù)實際應用需要,設置合適的a值。通過上述方案可以看出,本發(fā)明通過建立檢測裝置與主機系統(tǒng)之間的SSH隧道,利用該SSH隧道對目標主機的系統(tǒng)狀態(tài)進行監(jiān)控,易于實現(xiàn)且監(jiān)控消耗的資源低,具有良好的擴展性和監(jiān)控的實時性等優(yōu)點。 綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種主機系統(tǒng)狀態(tài)的檢測方法,其特征在于,該方法包括以下步驟 a、監(jiān)控平臺預先建立與目標主機之間的安全外殼SSH隧道; b、所述監(jiān)控平臺檢測所述SSH隧道連接是否斷開; C、如果所述SSH隧道連接斷開,則監(jiān)控平臺觸發(fā)SSH隧道重建;當所述重建失敗時,如果所述失敗的原因為安全外殼守護進程異常,則重新執(zhí)行本步驟,否則判定所述目標主機死機; d、如果所述SSH隧道連接沒有斷開,或所述SSH隧道連接斷開后,監(jiān)控平臺觸發(fā)所述SSH隧道重建成功,則所述監(jiān)控平臺通過向所述目標主機發(fā)送保持激活keep al ive命令,確定所述目標主機是否處于系統(tǒng)無響應狀態(tài),并在成功接收到所述keep alive命令的響應信息后,重新執(zhí)行步驟b。
2.根據(jù)權利要求I所述的方法,其特征在于,步驟d中確定所述目標主機是否處于系統(tǒng)無響應狀態(tài)為 如果所述監(jiān)控平臺接收所述keep alive命令的響應信息超時,則判斷所述超時原因是否為安全外殼守護進程異常,如果是,則執(zhí)行步驟C,否則,判定所述目標主機處于系統(tǒng)無響應狀態(tài)。
3.根據(jù)權利要求I所述的方法,其特征在于,所述方法進一步包括所述監(jiān)控平臺成功接收到所述keep alive命令的響應信息后,確定本次發(fā)送所述keepalive命令后接收到相應的響應信息所需要的時間tn,并確定所述tn與上一次發(fā)送所述keep alive命令后接收到相應的響應信息所需要的時間tn_i之間的差值Atn,計算所述目標主機所屬網(wǎng)段上的各目標主機當前的Atn的平均值Δ ,如果所述Atn滿足Δ/ >+α ,則判斷所述目標主機存在無法響應的趨勢,其中,Atlri和Λ tn_2分別為前兩次得到的所述差值,a為預設的調整系數(shù),a > O。
4.一種主機系統(tǒng)狀態(tài)的檢測裝置,該裝置設于系統(tǒng)的監(jiān)控平臺中,其特征在于,該裝置包括 安全外殼SSH隧道建立模塊,用于建立與目標主機之間的安全外殼SSH隧道,并將建立結果通知給第一檢測模塊; 第一檢測模塊,用于檢測所述SSH隧道連接是否斷開,在檢測到所述SSH隧道連接斷開時,觸發(fā)SSH隧道建立模塊重新建立所述SSH隧道,在所述SSH隧道重新建立成功時,觸發(fā)第二檢測模塊執(zhí)行,在所述SSH隧道重新建立失敗時,根據(jù)SSH隧道建立模塊的所述通知,判斷所述SSH隧道建立失敗的原因是否為安全外殼守護進程異常,如果是,則觸發(fā)SSH隧道建立模塊重新建立所述SSH隧道,否則,判定所述目標主機死機;在檢測到所述SSH隧道正常連接時,觸發(fā)第二檢測模塊執(zhí)行; 第二檢測模塊,用于通過向所述目標主機發(fā)送keep alive命令,確定所述目標主機是否處于系統(tǒng)無響應狀態(tài),并在成功接收到所述keep alive命令的響應信息后,觸發(fā)第一檢測模塊檢測所述SSH隧道連接是否斷開。
5.根據(jù)權利要求4所述的裝置,其特征在于,所述第二檢測模塊包括 keep alive命令發(fā)送模塊,用于向所述目標主機發(fā)送keep alive命令; 系統(tǒng)無響應判斷模塊,在接收所述keep alive命令的響應信息超時時,判斷所述超時原因是否為安全外殼守護進程異常,如果是,則觸發(fā)SSH隧道建立模塊重新建立所述SSH隧道,否則,判定所述目標主機死機;在成功接收到所述keep alive命令的響應信息時,觸發(fā)第一檢測模塊執(zhí)行。
6.根據(jù)權利要求4所述的裝置,其特征在于,所述第二檢測模塊,進一步用于在成功接收到所述keep alive命令的響應信息后,確定本次發(fā)送所述keepalive命令后接收到相應的響應信息所需要的時間tn,并確定所述tn與上一次發(fā)送所述keep alive命令后接收到相應的響應信息所需要的時間tn_i之間的差值Atn,計算所述目標主機所屬網(wǎng)段上的各目標主機當前的Δ tn的平均值,如果所述Δ tn滿足-Mn > Atn_}> Atn_2> Atn + α,則判斷所述目標主機存在無法響應的趨勢,其中,Atlri和Atn_2分別為前兩次得到的所述差值,a為預設的調整系數(shù),a > O。
全文摘要
本發(fā)明提供了一種主機系統(tǒng)狀態(tài)的檢測方法和裝置,方法包括a、監(jiān)控平臺預先建立與目標主機間的安全外殼(SSH)隧道;b、監(jiān)控平臺檢測SSH隧道連接是否斷開;c、如果SSH隧道連接斷開,則監(jiān)控平臺觸發(fā)SSH隧道重建;當重建失敗時,如果失敗的原因為安全外殼守護進程異常,則重新步驟c,否則判定目標主機死機;d、如果SSH隧道連接沒有斷開,或SSH隧道連接斷開后,監(jiān)控平臺觸發(fā)SSH隧道重建成功,則監(jiān)控平臺通過向目標主機發(fā)送保持激活keep alive命令,確定目標主機是否處于系統(tǒng)無響應狀態(tài),并在成功接收到keep alive命令的響應信息后,重新執(zhí)行步驟b。本發(fā)明能實時地對系統(tǒng)無響應情況進行準確監(jiān)控。
文檔編號H04L29/06GK102932196SQ20111022971
公開日2013年2月13日 申請日期2011年8月11日 優(yōu)先權日2011年8月11日
發(fā)明者王曉征, 陳航, 戴偉, 胡宏波 申請人:中國移動通信集團浙江有限公司