结合手机短信搭建实时告警平台

2011-11-09 06:41潘艺鹏
中国教育网络 2011年5期
关键词:飞信手机短信邮件

文/潘艺鹏

结合手机短信搭建实时告警平台

文/潘艺鹏

Cacti是一套基于PHP、MySQL、SNMP及RRDTool开发的开源网络流量图形监控系统,经过不断更新升级,具备设备监视、网络日志、故障告警、阈值告警等功能,逐渐成为一款功能完善的网络监管工具。

基于Cacti构建实时监控平台,是利用Cacti的实时邮件告警功能。但是在实际管理工作中,仅仅利用Cacti的邮件告警,不能使管理员即时接收到实时出现的故障情况,这主要是因为接收邮件需要一段时间。因此,要真正实现网络状态实时监控,让管理员能即时接收网络故障信息,需要结合手机短信搭建实时告警平台。

由于Cacti自身不具备短信告警功能,因此利用Cacti构建的网络状态即时短信告警平台可以依靠Cacti的邮件实时告警功能,利用告警邮件作为短信的触发条件。

利用邮件短信告知平台

目前,很多邮件运营商都提供邮件到达的短信通知功能,包括网易的163邮箱、腾讯的QQ邮箱,这类邮箱将自身与用户的手机进行绑定,一旦接收邮件,就发送告知短信,通常这类邮箱的告知功能是付费使用。另外,还可以使用手机运营商提供的邮箱,例如移动的139邮箱、电信189邮箱、联通的手机邮箱,这类邮箱直接使用手机作为邮箱账号,当邮件到达时,能直接发送短信。

此种方法的优点是实现容易,但需要每个网络管理员使用自己的邮箱,这不仅可能影响到自身正常邮件的使用,而且在管理上需要依靠自觉性;其次,采用这种方式还需要交纳一定的使用费,并且运营商使用政策的变更使其存在不稳定因素。

利用飞信软件

飞信是一款中国移动提供的承载商务应用及娱乐功能的即时通信产品,用户可通过PC 或手机终端随时随地实现文字、语音沟通。飞信的最大的优势就是可以免费地把消息即时发送到好友的手机上。针对飞信的使用优势,开发人员对飞信的通讯协议进行研究分析,开发飞信机器人,通过它就可以自动将信息即时发送到指定的手机上。

在Cacti服务器上安装飞信机器人,并编写自动发送的脚本;然后对Cacti触发邮件的脚本进行修改,在触发语句的后面添加执行自动发送脚本的语句,当遇到故障发出告警邮件的同时,飞信机器人也将告警内容发送到指定的手机。

使用飞信机器人发送告警信息发送的流程如下所示:

触发邮件告警→捕获告警信息→发送告警邮件→触发飞信机器人。

1.查找Cacti的Threshold插件的源码,找到报警邮件发送的函数:确定发送邮件的情况与邮件信息的thold_check_threshold与负责发送邮件的thold_mail。

2.在这些函数中,$subject变量是存放邮件的内容,可将$subject变量内容保存下来,作为飞信机器人的发送信息。因此,在Threshold源代码中查找调用thold_mail发送邮件的语句,并在这段语句后添加命令exec("echo$subject>>/var/www/alter-sms.log"),将邮件内容存放到alter-sms.log文件中作为短信内容。

接下来,添加命令exec("sh /var/www/sendsms.sh"),其中sendsms.sh是调用飞信机器人的自动执行脚本程序。

3.编写sendsms.sh脚本程序,该程序主要实现如下代码:

其中:语句(1)用于判断发送的altersms.log中是否有告警的信息;

语句(2)用于执行飞信机器人,其中#sendnumber是飞信发出的手机号码、#adminnumber是接收短信的手机号码;

语句(3)用于将删除已发出的短信息。

至此,我们可以实现通过飞信机器人自动发出告警信息,通过手机短信让网络管理员在第一时间就能收到告警情况。这种方法直接由服务器发送告知短信,其优点是只需在执行脚本中对管理员的手机号码进行管理,这给管理员减轻邮箱的管理任务,也省去邮箱的短信费用,但缺点是目前仅支持中国移动用户。

在实际应用中,笔者采用飞信机器人构建即时告警平台,管理员通过该平台在第一时间知晓发生的网络故障。当发生设备宕机时,能够根据应急方案进入抢修程序,进而缩短网络故障时间,提高网络的有效性。当发生端口流量异常时,能够有针对性地查明原因,减缓网络攻击,降低垃圾流量,保障网络流量带宽。

(作者单位为厦门大学信息与网络中心)

猜你喜欢
飞信手机短信邮件
基于James的院内邮件管理系统的实现
来自朋友的邮件
一封邮件引发的梅赛德斯反弹
飞信变身“和飞信”,能逆袭吗?
A Study on the Cohesion of English and ChineseBlessing Short Messages
遭遇短信诈骗,手机短信如何在法庭上作为诉讼证据出示?
飞信,死了算了!
手机短信
Outlook和Foxmail邮件互导
不是领导