:随时监测IIS状况,自动重启IIS。
使用windows的用户,还经常遇到一个问题,就是为服务器提供web服务的IIS程序无响应,或者出错,导致服务中断,这时服务器还没有死机,只是IIS“死掉”了,怎么办?当然可以通过远程管理,人为重启IIS。不过,如果你恰好不在电脑旁边,或者无法上网,怎么办?我想到一个办法,可以让服务器自己经常检测IIS的运行状况,发现 IIS“死掉”、“出错”的时候自动重启IIS,如果连续重启IIS几次,还是无法解决问题,就干脆自动重启服务器。方法很简单,也要用到一个小软件,请看下图:
这是个和小的监控程序,国产软件,只能用于Win2000/XP,不能用于NT4。
先将 HttpMon.exe 复制到硬盘上,并将其添加到Windows的任务计划中,设置为"计算机启动时运行",以administrator 的权限运行。这样监控程序就会随windows系统一起启动。
这个软件同刚才介绍的那个小软件一样,具有定时重启功能,可指定每隔几天重启一次计算机或是重启IIS。若是指定为0天时表示每天重启一次。不过我们主要用到的不是这个功能。我们主要用的是这个软件提供的“http监控”功能。
1、首先用记事本,建立一个新文件,写上一个简单的代码,如<%response.write "OK"%>,保存为state.asp,将来软件通过访问这个文件,可以检查IIS是否死掉。若要检查链接数据库是否正常还可以把代码写为:
<%
set db=CreateObject("ADODB.Connection")
db.open 数据库链接
db.close
%>
运行HttpMon.exe 点击"添加"按钮添加监控条件。
a)在"检查链接"里加上用来监控的页面 如 http://vipemail.bjs.cn/state.asp
b)在"检查频率"中可以指定多长时间检查一次,默认是20分钟
c)在返回信息中选择要检查的条件,有几种情况:
返回状态等于,返回状态值不等于,文件大小等于,小于,大于。
"返回状态值" 指IIS返回的客户端时的状态。
200 是正常
302 文件重定向
404 文件找不到
500 服务器内部错误
默认是:当返回状态不等于200时(表示IIS出错时)重起IIS
当上面情况出现时可做几个对应处理:
a)重启计算机 b)重启IIS c)关闭计算机 d)请求页面 "请求页面"可用于扩展程序功能,如通过请求一个程序页面 发信给管理员。
2、因为有时重启IIS不一定成功,所以当上面错误情况出现时,程序会自动缩短检查的隔时间,默认为5分钟。也可以自定义。当上面操作多次重试都不成功时,还可以设置对应的操作。例如:当重启了3次IIS后还是有错误,这时可以在后面设置为重启计算机。
3、日志功能可以记录Http监控程序的工作情况,他可以记录什么时候检查过什么页面,什么时候出现了错误,对应操作是什么。
怎么样,麻雀虽小五脏俱全,想得够周到吧?其实这个程序不仅可以用在家里的服务器上,对于托管在电信机房的固定IP地址的服务器,同样可以使用这个软件,可以减轻不少管理员的工作负担。
设置好之后,今后如果想调整一些设置,还可以通过软件的“编辑”功能来修改,很方便。
不断线窍门之五:停电恢复之后自动开机,电话遥控RESET。
现在我们要解决家庭服务器的最后两道难关??停电和死机!
从我们第一天用电脑起,前辈们就反复提醒我们要提防??停电。一旦停电,写了一半的文章,编了一半的软件,立刻化为乌有,用电脑怕停电,用服务器同样怕停电,而且特别怕,尤其是我们这样把服务器架设在家里,出门之后,一旦停电,服务器立刻关机,随之一切服务立刻终止,远程管理软件也没用了,因为已经关机了,即使安装了带有远程唤醒功能的网卡,也没用,因为动态主机软件根本没启动,你根本不知道现在服务器网卡的IP地址,所以你无法通过网卡唤醒。你也不要奢望有人会帮你按一下power键开机,因为这不是在机房有人24小时值守啊。如果你是“单身大虾(光棍的别称)”恰好又出差在外,那么你就惨透了,什么时候回家,什么时候你的网站才能恢复访问,没辙。
除了停电,死机也是个很麻烦的问题,如果服务器真的死机了,也和停电一样,什么远程管理软件也不起作用,前面那些安装在服务器上的自动重启的小软件也都随着服务器“死”了,不会发生作用了,这时如果旁边有人,只要轻轻按一下服务器的 RESET键就一切OK,可惜,这时家里没人,干着急,干瞪眼。
难道真的没有办法了吗?为停电和死机的问题,我也伤透了脑筋,目前总算找到一个不错的解决办法??电话唤醒伺服器。
也许不少朋友在56Kmodem时代都听说过、试验过电话唤醒电脑,那时候这是modem的一项时髦的功能,不过实际上也不怎么好用,要配合主板设置等,常常出现一些莫名其妙的故障,所以周围真正使用的人并不多。不过这倒是给我一些启发,就是利用电话是不是可以控制服务器的开机、重启呢?
用56K猫的唤醒方案当然不行,即便可以将因停电而关机的服务器唤醒(开机),但是对于死机就无效了,因为这时电脑并未关机,还在开机状态,怎么办呢?此时最好是按一下reset键,可惜56K“老猫”做不到。
我知道也许通过制作某些控制电路可以解决这个问题,但我是个懒人,虽说喜欢DIY,可如果叫我设计电路,焊接元件,我可没有耐心,我喜欢简单实用的DIY方案,充分利用已有的软件和硬件资源,用最简单的办法达到目的,是我的一贯方针。这次我同样找到了一个简单的办法。
我在市场上买到一个“小砖头”??千际牌电话控制伺服器(服务器专用),这是一款针对性很强的产品,专门针对使用动态主机软件架设服务器的用户而设计,从多方面考虑到用户的实际需求,可以远程通过电话对服务器发出命令,使服务器实现开机或者重启。该伺服器使用了现在流行的单片机技术。
千际牌电话控制伺服器(服务器专用)在实际使用中,安装和操作都很简便,按照说明书将伺服器连接在服务器和电话之间,伺服器使用一台小功率12V直流电源供电,耗电量极小,伺服器的电源和服务器的电源线都接入同一个电源插座。连接好之后,认真检查无误。现在实验一下效果。
1、停电自动恢复
服务器运行时按下电源插座的开关,模拟突然停电状态。
服务器立即关机,伺服器也断电停止工作。
再次按下电源开关,恢复供电,伺服器立即工作,并自动启动服务器,不久服务器启动成功,动态主机客户端软件自动登陆成功,外界对服务器的访问随即恢复。
2、死机电话Reset
在服务器死机时,通过远程管理软件已经无法连接到服务器进行重启,这时候拨入电话,电话振铃6声之后,电话听筒里传来三声提示音,这是按下电话“0”键,伺服器开始动作,服务器立即被reset,不久以后,外界对服务器的访问再次恢复正常。
3、电话开机
在伺服器上有一个转换开关,可以自由选择是否“恢复供电时自动启动服务器”,如果选择否,则当停电后恢复供电时,伺服器不会自动启动服务器开机,而是要等待管理员拨入电话,振铃6次之后,听到3声提示音,这时按下电话“1”键,伺服器开始动作,服务器会被开机。这个功能适合那些不需要不间断开机的用户和需要远程开启服务器的用户。
神奇吧,就这么一个小东西,使我们不再害怕动态主机的死敌??停电和死机。自从有了它,及时我在外地出差发现服务器没有反应了,一个电话过去,一切立即OK。爽啊。
以上我说的这些只是我的一些小小经验,让广大老鸟们再次见笑了,我的目的是尽全力来避免架在家里的服务器断线,这里说的断线,是泛指服务器对外提供服务的中断,并不是通常我们所说的上网掉线。用了上面这些法子,我的服务器的断线率已经很低,接近电信托管水平(小编:删去自吹自擂的废话2K字),即使外出时发生服务器断线,也能通过打电话很快恢复。不过,如果你特别倒霉,你的服务器遇到的不是停电,也不是死机,而是跳闸、雷劈、水淹、火灾、台风、海啸、老婆摔服务器,那解决的办法也就只剩下一个了,就是自认倒霉,毕竟谋事在人,成事在天啊。是不是?谁让你不去电信机房托管的?害怕了?害怕了,明天就给机房打电话吧,呵呵。