服务器监测和实时SMS警报的思路

一直以来,
我手下的一台运行着ASP应用的Win2000服务器总是访问数据库会莫名其妙锁死,
然后用户端访问的页面就提示:数据库查询错误,编码AXXX
最终分析下来的原因是ASP程序本身的问题,所以每次都要人工去执行iisreset释放,

而我又不会ASP且开发方对这个缺陷的改进意见总是支支吾吾的,
每次出故障都是同事打电话过来提醒然后我再连接上服务器去执行重置,因为我不太用那个东西……
但老这样,领导也渐渐开始有点意见了,所以,需要一个能及时报警并自动解决IIS重置的方案。

最理想的状态是基本满足以下需求:

  1. 实时报警,宕机与恢复时通过MAIL/SMS/CALL等时效性较高的手段通知;
  2. 自动恢复,在发出警报的同时能执行一些额外的命令操作,以达到自动恢复的功能;
  3. 字词检测,能通过实时的页面关键字词的监测达到判断业务系统的正常性;
  4. 费用低廉,最好是免费了,不能免费的话,再说吧……

其中至关重要的就是状态监测这一块的,
因为是内网业务系统,无法通过站长保姆这类第三方的Uptime Monitor来监视,只能自己选择可靠的同机房其它服务器进行监测,并且为了排除线路故障外的原因,本机也要监测,同时兼顾到另一个工作现场的使用和线路故障检测,也需要上一个监测点。
总的来说就是三个监测点:服务器本机、机房旁路、远端现场;

最终我在chinaz里面用monitor为关键词找到了一个软件:A1Monitor
从官方网站看来,最新版的A1Monitor 2009支持有以下特性:

  1. Vista兼容性,已经完成了对Vista的测试和工作兼容检查;
  2. 没有任何限制免费试用45天(如果企业对正版化有要求,建议购买,$89.95);
  3. 可以监视任何TCP/IP服务器或网页(通过http, https, pop3, smtp, ftp, 或者任何你需要监视的端口);
  4. 支持通过关键字来判断任何网页的正常与否;
  5. 你可以在服务器状态监测失败的时候收到邮件、同时A1Monitor还可以重启服务器或者执行一些附加的命令;
  6. 可以PING任何IP地址
  7. 每次有效的监测状态都会自动生成HTML格式的监测报告

事实上,除了VISTA兼容性之外,
我在chinaz找到的A1Monitor 2007特别版具备以上所有功能并且在我的2000/XP上工作非常良好,
如果你有这方面的需要,可以去down.chinaz.com搜索A1Monitor:mrgreen:

基本上,
需求列表里面的自动恢复字词检测使用A1Monitor就可以解决,那实时报警呢?

这个时候我想起了通过飞信,因为飞信可以给机主和好友发短信并且免费,那么自己给自己发警报SMS是可行的,
通过Google我找到这篇文章,里面提到了几种发送短信的方式,免费方案就是利用fetion了,

于是乎我从里面选择了网页命令行的方式,该方式貌似通过Fetion API这个Google App项目开发的,
然后我构造了通过Fetion API发送警报的方式,因为可以在链接后面构造参数直接提交接收人和内容,格式如下:

调用的方式就是

缺点就是会打开一个IE窗口,并且不会自动关掉,如果要是故障频繁点,还需要人工来关大量的IE窗口。

之后我突然以前看到过的飞信机器人
一个可以通过CLI(Command Line Interface,命令行界面,也有称之为DOS、命令提示符)调用的飞信客户端,
同时适用于Windows/Linux平台,还有一些开发文档,而我们需要用到的只是其中一个非常小的功能,CLI发短信
格式如下:

看到这儿,大多数人应该能明白了,
既然A1Monitor允许执行额外的命令,而我的故障处理方式iisreset,并且同时执行一个飞信机器人发送短信的命令,
那么只要随便写一个cmd文件,包含上面两条命令,然后放在磁盘方便访问机器人的地方,等着A1执行就好了。

基本上解决方法就是这些了,并且试验过确实有效,当然,整个机房掉电的情况下就比较麻烦了,
不过因为设置了三个监测点,3D防护,基本上可以解决服务器死机、线路故障、机房掉电等情况的近实时(0s~你设定的监测时间间隔)SMS警报,但要求监测机24×7开机。

思路写的有点混乱,如果需要教程的话,请关注后续文章。

Btw,
你当然也可以用这个办法在你的电脑上监控你Web空间的Uptime,
但问题是我想没有多少人能保持电脑24×7并且网络线路一直通常无故障的对吧,比较有难度而已。

本文参考:
利用飞信fetion发送短信,实现服务器报警等: http://zhouzaibao.javaeye.com/blog/378631
fetion机器人2009版说明及下载: http://bbs.it-adv.net/viewthread.php?tid=155
09版fetion机器人安装说明: http://bbs.it-adv.net/viewthread.php?tid=186

软RAID可用性测试

通常,一些公司或者企业,
在购买服务器的时候会忽略了对RAID的支持或者预算不足以购买支持合适RAID的服务器,
而在实际业务的使用中又需要提供一个阵列上的支持,这个时候要加增加配件显然不太合适BOSS的心意,

而从Win2000开始,系统提供了一种叫“软阵列”的功能,
可以让你在Windows系统中,通过软件的方式,实现磁盘的充分利用而不用增加任何硬件,
这样倒是节省成本了,

不过,如果系统坏了,呃,众所周知的,Windows还是很不稳定的,
如果系统坏了,如果系统要升级了,怎么办?
是不是重装/升级系统,软阵列的阵列信息就会丢失?或者说数据会丢失?
毕竟没有一个ROM来存储这些阵列的信息嘛~

本文的目的就在于解决以上的担忧,
不过现在的RAID卡很便宜,服务器也大都支持到RAID5,
所以本文仅仅是个人的小研究,仅供参考,

目前只有RAID1/0的测试,随后的RAID5我也会找时间跟上的,
至于RAID6,系统应该是不支持的,
RAID1+0/0+1的话,有钱买硬盘还能不买块RAID卡??
当然,有机会有时间都会做做测试的,仅供学术研究~

文章目录:

  • 零、 测试简述
  • 一、 测试平台
  • 二、 测试目标
  • 三、 测试一,重装系统后的效果
  • 四、 测试二,升级系统后的效果
  • Continue reading 软RAID可用性测试

    Win2k自动更新重启后无法登陆

    今天中午登陆VNC,
    得知综合信息平台的Windows 2000 Server因为进行了Windows Update需要重启,
    想着正好中午没人在用,重启一下,
    结果用于检测的PING在常规时间后有回馈了,但是WEB和VNC无法访问。

    电话联系同事解决,
    物理登陆的结果是:有蓝底背景色,但是登陆窗口没有出现。
    后来尝试安全模式,可以进入的。
    联想到最后的操作是打补丁,也是开始卸载补丁。

    最后经过资料查询和比较,
    发现KB954211补丁和卡巴斯基6.0网络版客户端有冲突,
    卸载就好了,从此禁用WU,垃圾!

    居然补丁不经过兼容性测试就发布出来了,那是服务器诶!服务器知道不!
    很重要的!你们的OS卖那么贵还这么不负责任,害死人的!还全职商业开发,还闭源呢!