使用飞信机器人发送告警信息发送的流程如下所示:
触发邮件告警→捕获告警信息→发送告警邮件→触发飞信机器人。
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文件中作为短信内容。
接下来,添加命令e xe c( "sh /v ar /www/sendsms. sh"),其中sendsms.sh是调用飞信机器人的自动执行脚本程序。
3.编写sendsms.sh脚本程序,该程序主要实现如下代码:
if [ -n "`cat /var/www/alter-sms.log`" ]; then (1)
/fetion/fetion --mobile="#sendnumber" --pwd="pwd" --to=”#adminnumber" --msg-gb="`cat /var/www/alter-sms.log`" (2)
echo `rm -f /var/www/alter-sms.log` (3)
其中:语句(1)用于判断发送的altersms.log中是否有告警的信息;
语句(2)用于执行飞信机器人,其中#sendnumb e r 是飞信发出的手机号码、#adminnumber是接收短信的手机号码;
语句(3)用于将删除已发出的短信息。
至此,我们可以实现通过飞信机器人自动发出告警信息,通过手机短信让网络管理员在第一时间就能收到告警情况。这种方法直接由服务器发送告知短信,其优点是只需在执行脚本中对管理员的手机号码进行管理,这给管理员减轻邮箱的管理任务,也省去邮箱的短信费用,但缺点是目前仅支持中国移动用户。
在实际应用中,笔者采用飞信机器人构建即时告警平台,管理员通过该平台在第一时间知晓发生的网络故障。当发生设备宕机时,能够根据应急方案进入抢修程序,进而缩短网络故障时间,提高网络的有效性。当发生端口流量异常时,能够有针对性地查明原因,减缓网络攻击,降低垃圾流量,保障网络流量带宽。
(作者单位为厦门大学信息与网络中心)
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。