一个基于新浪SAE的网站短信、邮件报警系统

2012-02-12

我寒假期间写了一个基于新浪SAE的网站短信报警应用,今天和大家分享一下。

这个应用的原理很简单,就是每间隔一段时间,抓取监控网站上的内容并进行分析,一旦抓取出现错误,则判定为网站出现错误。如果错误次数超过设定值,该应用就调用短信和邮件发送API,向指定的手机和电子邮箱发送报警信息。待网站恢复正常后,系统依旧会向用户发送信息,告诉用户“你的网站已经恢复正常了”。

在使用这个应用前,大家做一些简单的配置:

第一、 打开config.php文件,填写监控的URL、最大尝试次数及短信、邮件的一些配置信息:

//受监控的url
define('MONITOR_URL',' 受监控的URL ');
define('TRY_TIMES',1);	//失败尝试次数
define('MAX_TRY_TIMES',1);	//最多信息发送次数

//EMAIL告警服务
define('EMAIL_ENABLED',FALSE);	//是否启用
define('EMAIL_DEST','邮箱');	//告警邮件发送目标地址
define('SMTP_SERVER','SMTP服务器地址');
define('SMTP_USERNAME','发送邮箱的用户名');
define('SMTP_PASSWORD','密码');

//短信告警服务
define('SMS_ENABLED',TRUE);	//是否启用
define('SMS_APID','天翼应用工场的APID');	//apid号码
define('SMS_PRODUCTID',' 产品号码 ');	//产品号码
define('SMS_APKEY',' 产品密钥 ');	//产品密钥
define('SMS_DEST',' 告警短信发送目标地址 ');	//告警短信发送目标地址

第二、打开config.yaml,配置你的应用的名称和版本,其余不用改动。比如:

---
name: 改为你的应用名称
version: 你的应用的版本号
cron:
    - description: 网站监控
	  url: monitor/index.php
	  schedule: every 15 mins
	  timezone: Beijing
...

需要注意的是,需要把该版本设置为应用的默认版本,Cron才可以自动执行,请使用者多多注意。

第三、因为我在该应用中使用了SAE的Counter服务作为抓取计数器,所以请使用者在SAE后台启用“计数器服务”,并新建四个名称分别为‘SuccessNum’、‘FailNum’、‘ErrorNum’、‘SendNum’的计数器,当前计数都设为0。

这四个计数器中,前两个的作用是统计自程序运行以来,抓取成功和失败的总次数,使用者可以通过这两个数据了解网站的运行情况。
至此,配置就完成了。

 

用SAE做监控服务的优点:

  1. SAE服务的在线率极高,国内顶级机房和线路,这样才能保证监控的准确性。我记得曾经使用某网站监控服务的时候,一看我的网站在线率,特别低,害的我以为是网站使用的虚拟主机的问题。后来才知道,监控用的服务器和线路本身就有问题,怎么能去统计别人的在线率呢?
  2. 抓取间隔时间短。根据SAE的说明,抓取间隔最少可以设置为1分钟;相对于此,目前免费的网站监控服务抓取间隔至少为5分。
  3. 可以进行深度定制。比如说,可以为网站增加敏感字检测功能,保证在网站出现“非法信息”的时候可以及时得知。

 

我把代码放在了我的155网盘上面,有兴趣的朋友可以下载试用。我需要提醒感兴趣的朋友,应用的邮件发送功能有时候无法使用,貌似是SAE邮件发送API的原因。短信没有问题的。

地址:http://115.com/file/dpxz1p9n#SAE_Monitor.rar


除非特殊说明,本博客文章均为原创,转载请以链接形式标明博文地址。

本文链接地址: 一个基于新浪SAE的网站短信、邮件报警系统

分类:互联网 | 标签: |