如何监测远程机器是否死机?(50分)

  • 主题发起人 主题发起人 Kent
  • 开始时间 开始时间
K

Kent

Unregistered / Unconfirmed
GUEST, unregistred user!
例如有30台机器,我现在做一个监测机,我在每个被检测的机器上
运行一个ServerSocket,而在监测机上运行一个ClientSocket,
监测机的ClientSocket轮询向每个被检测及连接在断开,如果能联上
就认为是正常,连不上则不正常...
(我现在担心这样实现会不会误报,例如远程机器已死了,但是Socket还能联上?会不会有这种情况发生哪?如果有那么有什么避免的办法吗?
 
如果知道对方IP的话,用ping其实是最方便的.
 
每隔一段时间发一次ping命令。
 
发一个广播,每个被监测的机器返回一个回应。
没有回应的,当然是已死了。
 
其实如果你是想监控Client,可用两种方法,一种是主动查询法,Server轮询
Client,有回应则由Server决定Client是否执行其他操作(当然,实际上还是由Ser
ver发数据,Client根据不同数据执行不同程序代码)。二是可由Client计数,在多
长时间内没收到Server数据,则执行关机或重启动,以恢复通讯连接。这样做,可确
保无论是Client,还是Server出现故障,控制总能实现(指对Client的控制)。
 
现在我只想监测被检测机是否正常?并不需要被检测机发回数据或者执行任何代码.
因此我给每一个被检测机上一个ServerSocket,这个Socket维持一个端口 ,
而负责监测的机器上有一个ClientSocket,由这个ClientSocket轮流连接那
几十个ServerSocket,能连通就是正常的,连不通就是异常的..
就是先连接在断开一个ServerSocket,然后再连接断开下一个...各个被检测的
机器IP存在于一个数据库中...

我想知道我的思路是否可行?会不会出现误报,我想要最简单的解决办法...
各位请再帮帮忙...
 
死机,应该整个系统都停顿的了。
因此我想你的方法应该可以。
是不是不要:先连接在断开一个ServerSocket,然后再连接断开下一个...
而是所有的SOCKET一直都连着,死机时,某个连接会断开。
(猜的。。。)
 
>>我想知道我的思路是否可行
当然可以,不过多开线程效果会好一些
 
多人接受答案了。
 
后退
顶部