【IT168 专稿】身为企业网络管理员,你是否遇到过为管理多个服务器上的网络应用与服务而头疼呢?你又是否曾经遇到过拖着疲惫身体刚到家却因为服务器故障再次返身单位重新启动系统呢?企业内部服务器众多,有没有什么方法和工具能够批量管理他们呢?虽然市面上有专门的服务器集群管理工具,但是对于中小企业来说购买所花费用也是相当巨大的,今天笔者就为各位解决上述问题,我们自编自导制作一套简单的机房服务器群监控中心,免费得到实时检测与服务器自动重启功能。
一、自编自导机房监控中心的原理
企业内部各个服务器上开启的网络服务各不相同,平时最常见的就是系统崩溃或网络中断,这样相关的网络服务都无法顺利运行。所以说我们只需要确保多个服务器网络连接正常就能够保证服务的顺利运行。
众所周知,对于网络管理员来说,最简单的检测网络状态和连接情况的工具就要属PING了,通过ping服务器IP地址反馈回来的信息我们可以判断该服务器网络状态是否稳定。
我们自编自导机房监控中心的原理也正是建立在PING基础上的,通过一台内网计算机(或者直接在服务器上)建立一套集群PING命令,通过反馈回来的信息判断该服务器网络是否正常,如果TIME OUT超时间连接则自动重新启动该服务器。
二、监控中心从单个服务器开始
首先我们要从单个服务器开始进行监控,如果对一台服务器顺利实现了监控功能以及自动重启功能的话,只需要扩展下PING命令就可以实时检测多台服务器了。
(1)从网络状况看PING值反馈信息
使用“PING 服务器IP地址”命令如果目标服务器网络是通畅的,那么我们将得到诸如“Reply from 192.168.1.108: bytes=32 time<1ms TTL=128”的反馈信息。(如图1)
如果目标服务器网络有问题,那么我们将得到诸如“Request timed out”的提示。(如图2)
因此我们可以通过分析PING 服务器IP地址命令执行的反馈信息,来判断该服务器是否存在问题。当出现“Request timed out”时自动执行重新启动该服务器的命令。
(2)初步建立批处理让PING反馈循规蹈矩
在批处理命令中我们是可以根据上条命令的反馈特征字符来执行不同操作的,通过分析PING反馈回的信息我们知道当网络通畅时会有TTL信息显示出来,即诸如“ttl=128”的字眼,而网络有问题时反馈回来的是“Request timed out”没有TTL信息,因此我们可以用TTL作为反馈特征字符。
于是有了第一条批处理命令——ping 192.168.1.108 |find "TTL",该命令是从PING 192.168.1.108这台服务器返回的结果信息中寻找是否有与TTL字眼一样的信息,如果有则比较后反馈值为0,如果没有则反馈值不为0(反馈为0代表两者相同)。以下就是通过此命令反复测试正常服务器与网络中断服务器反馈回来的信息,前者反馈回有TTL的命令行,后者由于没有TTL字眼的出现,所以什么也反馈不出来。(如图3)
小提示:命令中的|是管道命令,他相当于把前面命令的输出信息当做后面命令的输入,通过|管道命令可以实现命令执行的自动化,而不需要人为的操作。
(3)用ERRORLEVEL参数判断反馈值
虽然我们从ping 192.168.1.108 |find "TTL"反馈信息中用肉眼可以看出他们的区别,但是是否能够让系统自动判断呢?这时就需要一个ERRORLEVEL参数来判断反馈值。他是常用的系统环境变量,记录的是上一条命令的返回值,用非零表示错误。
于是我们对批处理命令进行了修改——
:reping //语句表识
ping 192.168.1.108 |find "TTL"
if %errorlevel%==0 goto reping //如果errorlevel参数为0就重新回到reping行标继续PING一直到不得0退出
我们将上面的批处理命令复制到一个记事本文件中,然后将其文件名与后缀名修改为1.bat,这样一个简单的批处理文件就诞生了,我们可以对其进行测试,只要192.168.1.108这台服务器网络没有问题,PING得通他,那么我们这个批处理文件就将一直不间断的PING该服务器,直到PING不通才自动关闭反复PING的窗口。(如图4)
(4)添加重新启动命令让服务器网络恢复正常
批处理文件就将一直不间断的PING该服务器,直到PING不通才自动关闭反复PING的窗口,这样的结果肯定不会让我们满意,我们希望在PING不通的情况下对该服务器执行自动重启的操作,所以我们还要在其下面语句中添加一条shutdown -r自动重启动的命令。这样PING不通才会自动重新启动服务器的操作系统,让网络恢复正常。