CN102932196B - 一种主机系统状态的检测方法和装置 - Google Patents
一种主机系统状态的检测方法和装置 Download PDFInfo
- Publication number
- CN102932196B CN102932196B CN201110229716.5A CN201110229716A CN102932196B CN 102932196 B CN102932196 B CN 102932196B CN 201110229716 A CN201110229716 A CN 201110229716A CN 102932196 B CN102932196 B CN 102932196B
- Authority
- CN
- China
- Prior art keywords
- destination host
- tunnel
- ssh
- ssh tunnel
- keep alive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种主机系统状态的检测方法和装置,方法包括:a、监控平台预先建立与目标主机间的安全外壳(SSH)隧道;b、监控平台检测SSH隧道连接是否断开;c、如果SSH隧道连接断开,则监控平台触发SSH隧道重建;当重建失败时,如果失败的原因为安全外壳守护进程异常,则重新步骤c,否则判定目标主机死机;d、如果SSH隧道连接没有断开,或SSH隧道连接断开后,监控平台触发SSH隧道重建成功,则监控平台通过向目标主机发送保持激活keep alive命令,确定目标主机是否处于系统无响应状态,并在成功接收到keep alive命令的响应信息后,重新执行步骤b。本发明能实时地对系统无响应情况进行准确监控。
Description
技术领域
本发明涉及操作系统监控技术,特别是涉及用于检测主机系统状态的方法和装置。
背景技术
在通常的系统监控中,系统的监控平台对主机系统的状态监控是一个最基础的核心监控指标,属于监控体系中非常重要的部分。如何在第一时间最快发现主机死机,更进一步,如何在第一时间发现主机系统异常是系统监控的重要组成部分。目前业界主要采用的主机系统监控方法,从监控方式来说,可以分为Ping主动式监控方式和Agent代理式被动式监控方式。
具体来说,Ping主动式监控方式主要是:采用标准Internet控制报文协议(ICMP)Ping的方法,定期向目标主机发送ICMP数据包,如果目标主机正常响应返回ICMP数据包,则判定主机Alive。这是最常用的对于主机是否死机的标准。
Agent代理式被动式监控方式目前主要采用在目标主机上安装Agent代理程序,定期向监控管理服务器返回被监控主机的信息,即Keep Alive信息。监控管理服务器通过收到目标主机的Keep Alive信息来了解主机是否死机。这种方法一般用在大型的厂商开发的监控软件上面。
目前上述两种监控方法被绝大多数的监控平台采用,在实际应用中,特别是电信级系统中,上述监控方法暴露出了比较明显的缺点,具体如下:
1、两种监控方法均采用定期检查的方式,Ping主动式监控是由监控管理服务器定期向目标主机发送信息;Agent代理式被动式监控方法则采用目标主机定期向监控管理器发送信息的方式。而定期检查的方式必然存在一定的检查周期,另外,考虑监控管理服务器的负载压力,被监控的服务器数量越多,其检查周期将越长,因此,检查周期在一般的系统上面必须是分钟级的。如此,将无法及时地监控到主机的死机。
2、对于PING主动式监控方式而言,该方式只是通过检查到目标主机网络是否断开来判断主机是否死机,而实际应用中,会存在网络通畅,但是主机系统异常的情况,这样,采用PING主动式监控方式,将无法判断主机系统是否异常。而在实际的主机系统监控中,主机系统无响应的判断也是十分重要的一个监控项,主机系统无响应的情况下,上层业务系统大多无法正常对外提供服务。
3、对于Agent代理式被动式监控方法而言,需要在被监控主机上安装Agent代理程序,虽然从理论上来说,这种方式可以把系统状态返回给监控管理服务器,但是从实际的应用效果来看,在主机的网络通信功能正常但系统无响应的情况下,大多是系统资源消耗的时候,此时在目标主机上的Agent也无法对外发送信息,因为Agent本身也需要消耗系统资源对外提供服务。因此Agent代理式被动监控方法也无法实现对系统无响应进行及时监控。
由此可见,上述现有的主机监控方法均存在监控的迟滞性以及无法对主机系统无响应情况进行监控的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种主机系统状态的检测方法和装置,能实现对系统无响应情况的准确监控,且具有实时性。
为了达到上述目的,本发明提出的技术方案为:
一种主机系统状态的检测方法,该方法包括以下步骤:
a、监控平台预先建立与目标主机之间的安全外壳SSH隧道;
b、所述监控平台检测所述SSH隧道连接是否断开;
c、如果所述SSH隧道连接断开,则监控平台触发SSH隧道重建;当所述重建失败时,如果所述失败的原因为安全外壳守护进程异常,则重新执行本步骤,否则判定所述目标主机死机;
d、如果所述SSH隧道连接没有断开,或所述SSH隧道连接断开后,监控平台触发所述SSH隧道重建成功,则所述监控平台通过向所述目标主机发送保持激活keep alive命令,确定所述目标主机是否处于系统无响应状态,并在成功接收到所述keep alive命令的响应信息后,重新执行步骤b。
一种主机系统状态的检测装置,该装置设于系统的监控平台中,包括:
安全外壳SSH隧道建立模块,用于建立与目标主机之间的安全外壳SSH隧道,并将建立结果通知给第一检测模块;
第一检测模块,用于检测所述SSH隧道连接是否断开,在检测到所述SSH隧道连接断开时,触发SSH隧道建立模块重新建立所述SSH隧道,在所述SSH隧道重新建立成功时,触发第二检测模块执行,在所述SSH隧道重新建立失败时,根据SSH隧道建立模块的所述通知,判断所述SSH隧道建立失败的原因是否为安全外壳守护进程异常,如果是,则触发SSH隧道建立模块重新建立所述SSH隧道,否则,判定所述目标主机死机;在检测到所述SSH隧道正常连接时,触发第二检测模块执行;
第二检测模块,用于通过向所述目标主机发送keep alive命令,确定所述目标主机是否处于系统无响应状态,并在成功接收到所述keep alive命令的响应信息后,触发第一检测模块检测所述SSH隧道连接是否断开。
综上所述,本发明提出的主机系统状态的检测方法和装置,通过建立监控平台到目标主机的安全外壳(SSH)隧道,并实时检测该SSH隧道的状态以及是否可以在该SSH隧道上成功发送KeepAlive命令,可以实时地对主机系统无响应情况进行准确监控。
附图说明
图1为本发明实施例一的方法流程示意图;
图2为本发明实施例二的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想在于,建立检测装置与主机系统之间的安全外壳(SSH)隧道,通过实时检测该SSH隧道的状态以及是否可以在该SSH隧道上成功发送KeepAlive命令,来判断主机系统是否死机,从而可以及时准确的对主机系统的状态进行监控。
图1为本发明实施例一的方法流程示意图,如图1所示,该方法包括以下步骤:
步骤101、监控平台预先建立与目标主机之间的安全外壳SSH隧道。
本步骤,用于建立监控平台与目标主机间的SSH隧道,以便在后续过程中通过实时检测该SSH隧道的状态即可可主机是否死机,而不需要等待主机死机时Agent所发送的监控信息,从而可以确保及时、准确地检测到目标主机死机的状态。
具体地,建立SSH隧道方法可采用现有技术实现,在此不再赘述。
步骤102、所述监控平台检测所述SSH隧道连接是否断开,如果是,则执行步骤103,否则执行步骤106。
这里,如果SSH隧道连接断开则可能存在SSH隧道本身的维护异常所致的情况,因此,需要进一步执行步骤103通过重建SSH隧道根据重建结果来确认;如果SSH隧道连接正常,则说明目标主机与监控平台之间的通路是正常的,但是,还可能存在主机系统死机的情况,因此,这里需要进一步执行步骤104通过发送keep alive命令,进一步进行判断。
步骤103、所述监控平台触发所述SSH隧道的重建过程,如果所述SSH隧道重建成功,则执行步骤106;否则,执行步骤104。
这里,如果所述SSH隧道重建成功,则说明该SSH隧道可能被人为取消,目标主机可以正常,因此,这里建立成功后,将执行步骤106通过发送keep alive命令,进一步判断该目标主机的系统是否正常。
步骤104、判断所述SSH隧道建立失败的原因是否为安全外壳守护进程异常,如果是,则重新执行步骤103,否则,执行步骤105。
这里,当重建SSH隧道返回的结果指示所述SSH隧道建立失败的原因为安全外壳守护进程异常(如SSHD服务端被停止、SSH key被删除等)所致时,需要重新触发建立SSH隧道的过程,在实际应用中,可设置一时间间隔,在该时间间隔后再触发该重新建立SSH隧道的过程。当重建SSH隧道返回的结果指示所述SSH隧道建立失败的原因非安全外壳守护进程异常所致时,则可以判断目标主机死机。
步骤105、判定所述目标主机死机。
步骤106、所述监控平台通过向所述目标主机发送keep alive命令,确定所述目标主机是否处于系统无响应状态,并在成功接收到所述keep alive命令的响应信息后,重新执行步骤102。
本步骤用于在SSH隧道正常时,通过在该隧道上发送keep alive命令,来检测目标主机的系统是否正常,以排除与目标主机的网络通路正常但主机系统异常的情况。具体的,可采用下述步骤实现本步骤:
所述监控平台通过向所述目标主机发送keep alive命令,如果所述监控平台接收所述keep alive命令的响应信息超时,则判断所述超时原因是否为安全外壳守护进程异常,如果是,则执行步骤103,否则,判定所述目标主机处于系统无响应状态。
具体的,keep alive命令可以为echo命令。
这里需要说明的是,在判断接收所述keep alive命令的响应信息超时的原因为安全外壳守护进程异常时,则较佳地,需要通过执行步骤103触发所述SSH隧道的重建过程,重新建立SSH隧道。
较佳的,在实际应用中,还可以根据发送keep alive命令后接收到相应的响应信息所需要的时间,来对主机无法响应的趋势进行预测,以便当预测到该趋势时通过报警信息提醒维护者对此进行关注。具体的方法如下:
所述监控平台成功接收到所述keep alive命令的响应信息后,确定本次发送所述keep alive命令后接收到相应的响应信息所需要的时间tn,并确定所述tn与上一次发送所述keep alive命令后接收到相应的响应信息所需要的时间tn-1之间的差值Δtn,计算所述目标主机所属网段上的各目标主机当前的Δtn的平均值如果所述Δtn满足:则判断所述目标主机存在无法响应的趋势,其中,Δtn-1和Δtn-2分别为前两次得到的所述差值,a为预设的调整系数,a>0。
与上述方法的实施例相对应,下文给出一种用于实现上述方法的装置,该装置设于监控平台中,如图2所示,该装置包括以下模块:
安全外壳SSH隧道建立模块,用于建立与目标主机之间的安全外壳SSH隧道,并将建立结果通知给第一检测模块。
第一检测模块,用于检测所述SSH隧道连接是否断开,在检测到所述SSH隧道连接断开时,触发SSH隧道建立模块重新建立所述SSH隧道,在所述SSH隧道重新建立成功时,触发第二检测模块执行,在所述SSH隧道重新建立失败时,根据SSH隧道建立模块的所述通知,判断所述SSH隧道建立失败的原因是否为安全外壳守护进程异常,如果是,则触发SSH隧道建立模块重新建立所述SSH隧道,否则,判定所述目标主机死机;在检测到所述SSH隧道正常连接时,触发第二检测模块执行。
第二检测模块,用于通过向所述目标主机发送keep alive命令,确定所述目标主机是否处于系统无响应状态,并在成功接收到所述keep alive命令的响应信息后,触发第一检测模块检测所述SSH隧道连接是否断开。
较佳的,所述第二检测模块包括以下两个单元:
keep alive命令发送单元,用于向所述目标主机发送keep alive命令;
系统无响应判断单元,在接收所述keep alive命令的响应信息超时时,判断所述超时原因是否为安全外壳守护进程异常,如果是,则触发SSH隧道建立模块重新建立所述SSH隧道,否则,判定所述目标主机死机;在成功接收到所述keep alive命令的响应信息时,触发第一检测模块执行。
进一步地,为了对主机无法响应的趋势进行预测,所述第二检测模块还可以进一步用于:在成功接收到所述keep alive命令的响应信息后,确定本次发送所述keep alive命令后接收到相应的响应信息所需要的时间tn,并确定所述tn与上一次发送所述keep alive命令后接收到相应的响应信息所需要的时间tn-1之间的差值Δtn,计算所述目标主机所属网段上的各目标主机当前的Δtn的平均值如果所述Δtn满足:则判断所述目标主机存在无法响应的趋势,其中,Δtn-1和Δtn-2分别为前两次得到的所述差值,a为预设的调整系数,用于限定当Δtn值大于较多时,确定目标主机存在无法响应的趋势,a>0,具体地,本领域技术人员可以根据实际应用需要,设置合适的a值。
通过上述方案可以看出,本发明通过建立检测装置与主机系统之间的SSH隧道,利用该SSH隧道对目标主机的系统状态进行监控,易于实现且监控消耗的资源低,具有良好的扩展性和监控的实时性等优点。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种主机系统状态的检测方法,其特征在于,该方法包括以下步骤:
a、监控平台预先建立与目标主机之间的安全外壳SSH隧道;
b、所述监控平台检测所述SSH隧道连接是否断开;
c、如果所述SSH隧道连接断开,则监控平台触发SSH隧道重建;当所述重建失败时,如果所述失败的原因为安全外壳守护进程异常,则重新执行本步骤,否则判定所述目标主机死机;
d、如果所述SSH隧道连接没有断开,或所述SSH隧道连接断开后,监控平台触发所述SSH隧道重建成功,则所述监控平台通过向所述目标主机发送保持激活keep alive命令,确定所述目标主机是否处于系统无响应状态,并在成功接收到所述keep alive命令的响应信息后,确定本次发送所述keep alive命令后接收到相应的响应信息所需要的时间tn,并确定所述tn与上一次发送所述keepalive命令后接收到相应的响应信息所需要的时间tn-1之间的差值Δtn,计算所述目标主机所属网段上的各目标主机当前的Δtn的平均值如果所述Δtn满足: 则判断所述目标主机存在无法响应的趋势,其中,Δtn-1和Δtn-2分别为前两次得到的所述差值,a为预设的调整系数,a>0,重新执行步骤b。
2.根据权利要求1所述的方法,其特征在于,步骤d中确定所述目标主机是否处于系统无响应状态为:
如果所述监控平台接收所述keep alive命令的响应信息超时,则判断所述超时原因是否为安全外壳守护进程异常,如果是,则执行步骤c,否则,判定所述目标主机处于系统无响应状态。
3.一种主机系统状态的检测装置,该装置设于系统的监控平台中,其特征在于,该装置包括:
安全外壳SSH隧道建立模块,用于建立与目标主机之间的安全外壳SSH隧道,并将建立结果通知给第一检测模块;
第一检测模块,用于检测所述SSH隧道连接是否断开,在检测到所述SSH隧道连接断开时,触发SSH隧道建立模块重新建立所述SSH隧道,在所述SSH隧道重新建立成功时,触发第二检测模块执行,在所述SSH隧道重新建立失败时,根据SSH隧道建立模块的所述通知,判断所述SSH隧道建立失败的原因是否为安全外壳守护进程异常,如果是,则触发SSH隧道建立模块重新建立所述SSH隧道,否则,判定所述目标主机死机;在检测到所述SSH隧道正常连接时,触发第二检测模块执行;
第二检测模块,用于通过向所述目标主机发送keep alive命令,确定所述目标主机是否处于系统无响应状态,并在成功接收到所述keep alive命令的响应信息后,触发第一检测模块检测所述SSH隧道连接是否断开,在成功接收到所述keep alive命令的响应信息后,确定本次发送所述keep alive命令后接收到相应的响应信息所需要的时间tn,并确定所述tn与上一次发送所述keep alive命令后接收到相应的响应信息所需要的时间tn-1之间的差值Δtn,计算所述目标主机所属网段上的各目标主机当前的Δtn的平均值如果所述Δtn满足: 则判断所述目标主机存在无法响应的趋势,其中,Δtn-1和Δtn-2分别为前两次得到的所述差值,a为预设的调整系数,a>0。
4.根据权利要求3所述的装置,其特征在于,所述第二检测模块包括:
keep alive命令发送模块,用于向所述目标主机发送keep alive命令;
系统无响应判断模块,在接收所述keep alive命令的响应信息超时时,判断所述超时原因是否为安全外壳守护进程异常,如果是,则触发SSH隧道建立模块重新建立所述SSH隧道,否则,判定所述目标主机死机;在成功接收到所述keep alive命令的响应信息时,触发第一检测模块执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110229716.5A CN102932196B (zh) | 2011-08-11 | 2011-08-11 | 一种主机系统状态的检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110229716.5A CN102932196B (zh) | 2011-08-11 | 2011-08-11 | 一种主机系统状态的检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102932196A CN102932196A (zh) | 2013-02-13 |
CN102932196B true CN102932196B (zh) | 2015-10-07 |
Family
ID=47646903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110229716.5A Active CN102932196B (zh) | 2011-08-11 | 2011-08-11 | 一种主机系统状态的检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102932196B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI620060B (zh) * | 2014-11-05 | 2018-04-01 | 威綸科技股份有限公司 | 系統狀態回報之方法 |
US10673927B2 (en) | 2017-08-01 | 2020-06-02 | The Search Monitor, Llc | Evaluation of TCP responses via remote clients |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227324A (zh) * | 2008-01-10 | 2008-07-23 | 华为技术有限公司 | 通信设备的故障信息收集方法以及通信设备和系统 |
CN101420326A (zh) * | 2008-12-02 | 2009-04-29 | 华为技术有限公司 | 实现故障恢复和数据备份的方法、系统和装置 |
CN101582787A (zh) * | 2008-05-16 | 2009-11-18 | 中兴通讯股份有限公司 | 一种双机备份系统及备份方法 |
CN101902361A (zh) * | 2010-07-26 | 2010-12-01 | 中兴通讯股份有限公司 | 容灾业务系统及容灾方法 |
-
2011
- 2011-08-11 CN CN201110229716.5A patent/CN102932196B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227324A (zh) * | 2008-01-10 | 2008-07-23 | 华为技术有限公司 | 通信设备的故障信息收集方法以及通信设备和系统 |
CN101582787A (zh) * | 2008-05-16 | 2009-11-18 | 中兴通讯股份有限公司 | 一种双机备份系统及备份方法 |
CN101420326A (zh) * | 2008-12-02 | 2009-04-29 | 华为技术有限公司 | 实现故障恢复和数据备份的方法、系统和装置 |
CN101902361A (zh) * | 2010-07-26 | 2010-12-01 | 中兴通讯股份有限公司 | 容灾业务系统及容灾方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102932196A (zh) | 2013-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI746512B (zh) | 實體機器故障分類處理方法、裝置和虛擬機器恢復方法、系統 | |
KR101888029B1 (ko) | 가상 머신 클러스터 모니터링 방법 및 모니터링 시스템 | |
CN102231681B (zh) | 一种高可用集群计算机系统及其故障处理方法 | |
US8799446B2 (en) | Service resiliency within on-premise products | |
CN102591717B (zh) | 外接设备和虚拟设备的业务信息处理方法、装置和系统 | |
CN104639380A (zh) | 服务器监控方法 | |
CN103475696A (zh) | 云计算集群服务器状态监控系统和方法 | |
WO2015058711A1 (zh) | 故障快速检测方法及装置 | |
JP2013130901A (ja) | 監視サーバおよびそれを用いたネットワーク機器復旧システム | |
CN102684936A (zh) | 用于监测服务器的运行状态的方法、设备和系统 | |
CN100538647C (zh) | 多核处理器的业务流处理方法及多核处理器 | |
CN109710441A (zh) | 一种软件看门狗、电子设备及计算机存储介质 | |
CN112882901A (zh) | 一种分布式处理系统健康状态智能监控器 | |
CN102932196B (zh) | 一种主机系统状态的检测方法和装置 | |
CN107291589A (zh) | 在机器人操作系统中提升系统可靠性的方法 | |
JP5625605B2 (ja) | Os動作状態確認システム、確認対象装置、os動作状態確認装置、os動作状態確認方法およびプログラム | |
WO2018035765A1 (zh) | 网络异常的检测方法及装置 | |
CN117743012A (zh) | 一种芯片失效的处理系统、方法、电子设备及存储介质 | |
CN101488105A (zh) | 实现存储双控制器高可用性的方法及存储双控制器系统 | |
CN103731315A (zh) | 一种服务器故障检测方法 | |
WO2015188619A1 (zh) | 物理主机故障检测方法、装置及虚机管理方法、系统 | |
JP2007280155A (ja) | 分散システムにおける信頼性向上方法 | |
CN111104266A (zh) | 访问资源的分配方法、装置、存储介质和电子设备 | |
CN106452696A (zh) | 一种服务器集群的控制系统 | |
CN103036711B (zh) | 状态检测方法及系统、管理节点设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |