基于SMS的网络故障自动报警系统的设计与实现*
2010-10-18樊建永
樊建永
(陕西师范大学 网络信息中心,陕西 西安 710062)
基于SMS的网络故障自动报警系统的设计与实现*
樊建永
(陕西师范大学 网络信息中心,陕西 西安 710062)
传统的网络故障都是通过用户反馈给网络管理员或者使用电子邮件进行自动反馈,因此对故障的处理有一定的延迟和滞后性。本文将故障检测和SMS短信息相结合设计并实现了一种基于移动平台的网络故障检测与短信息报警系统,通过GSM短信Modem将网络故障信息准确、及时地发送给网络管理人员,使管理人员在第一时间发现故障,迅速做出相应的处理,提高校园网络管理水平和服务质量。
SMS;网络故障;服务监控;短信息
一、引言
随着校园网络规模的不断扩大,服务器和网络设备数量的不断增多,随之而来的是网络管理复杂性的提高以及越来越多网络故障,因此如何及时发现故障并进行处理对网络管理员提出了更高的要求。SMS(Short Message Service)短信息服务是GSM系统提供的一种GSM终端之间通过服务中心来收发文本等信息的应用服务。短消息的收发都是通过GSM短信Modem发送AT命令来实现的。本文旨在开发一种网络故障检测系统,并通过GSM短信Modem将故障信息发送给网络管理人员,使管理人员在第一时间发现故障,迅速做出相应的处理,提高校园网络管理水平和服务质量。
二、系统设计
通过对校园网络管理的实际需求进行分析得知,校园网络故障检测报警系统应该能够实时、直观地反映网络各个节点当前运行的状态;能够实时检测网络故障并及时报警提示,以便管理人员可以及时地采取措施预防或处理故障;对网络运行状态信息进行记录,便于统计分析和历史查询。本系统基于网络层ICMP协议,利用Win32平台多线程设计,使用Visual C++技术,结合短信息警报系统来实现对校园网络进行实时监控。为了保证系统的实用和今后的可扩展性,在设计时尽可能使其模块化、可扩展并能兼容新技术。监控系统主要由以下三大部分组成 :链路故障检测模块,自动短信警报系统,查询数据库系统。系统结构如图1所示。
1.链路故障检测模块
基于链路的故障检测模块主要完成IP层面上故障检测,该模块主要完成对网络路由器、交换机、关键服务器等设备是否在线以及可用性检测,采用发送ICMP请求回现报文来实现。为了格式化输出文本以便短信发送模块进行分析和识别,对于故障信息在内容层面按照一定的规则进行设计,对输出文本信息的设计格式如下:
(1)信息类别号:信息发生源,发生时间,事件内容;
(2)信息类别号:表明信息类别,如状态反馈信息、报警信息等;
(3)信息发生源:发生故障的节点IP地址,名称,地点;
(4)发生时间:标识故障发生时间;
(5)事件内容:发生的具体事件。
最后将故障信息写入消息池供短信息发送系统进行读取和处理。
2.短信息收发模块设计
短信息收发模块主要由GSM短信息收发软件和短信Modem硬件组成。短信息收发软件通过定时读取消息池中的信息,对故障信息进行解析、拆分、编码,然后使用AT指令由GSM Modem硬件部分通过GSM网络发送给相应管理员手机或终端。同时要将发送信息和故障信息写入数据库保存。其中对短消息编码有3种形式,即72bits、82bits和 Unicode(UCS2)编码。72bits编码最多可以传160个ACSII码小于128的数据;82bits编码最多可传140 Byte的数据,主要用来传送二进制数据信息;Unicode(UCS2)编码是通过国际通用的Unicode码传送字符的,不区分中英文及数字,每一字符都有两个字节表示,所以只能传送70个字符,目前使用的中文短信的手机采用的都是Unicode(UCS2)编码。
此模块的硬件部分是一种基于无线GSM技术的Modem,其嵌入了GSM无线通信模块,插入移动运营商的手机SIM卡,可以与移动运营商的短信中心建立无线连接,短信Modem与服务器通过串口相连,服务器通过串口发送AT指令来控制短信猫,实现短信的自由收发。
3.存储数据库的设计
数据库部分主要用来存储相关的故障信息以方便查询,同时完成故障检测模块和短信息发送模块之间的通讯。主要记录以下信息:故障设备名称信息,故障设备节点的地点信息,故障发生时间,故障路由器/交换机IP地址,管理员姓名,手机号码等信息。
4.系统外部构件
系统外部构件主要包括:GSM网络、被监控对象及用户手机。GSM网络是目前国内覆盖范围最广,应用最普遍的无线通信网络。监控对象主要是核心路由器和交换机,关键服务器以及其他的IP网络设备。
本系统部署可以是分布式的,即故障检测、短信息收发模块、数据库运行在不同的计算机上,也可以部署在同一台服务器上。出于可靠性和安全性的考虑,我们将所有的模块都部署在同一台计算机上运行。
三、系统的实现
本系统选用了VC++.NET集成开发环境作为开发平台,其软件模块主要包括基于ICMP协议的网络通信和GSM短信息收发两部分。故障检测程序设计和短信发送报警文本信息是整个软件设计的核心。故障检测使用Raw Socket完成基于ICMP协议的网络检测。报警文本发送部分包括初始化计算机串口、读取信息池中信息、对信息进行编码、组包、执行AT命令来完成文本信息的发送。
1.故障检测模块的软件设计
在 Visual C++平台下,使用 Raw Socket发送ICMP报文前,我们要组装报文初始化ICMP的报头,给Data部分填充数据,计算校验和。主要代码如下:
(1)初始化RAW Socket创建原始套接字
(2)构造目标套接字地址信息
(4)等待回应信息,如果超时则写入数据库相应表单中
(5)接收ICMP回应请求
2.短信息发送模块
该模块软件部分在Visual C++平台下完成短信息收发功能,其程序流程如图2所示。
(1)初始化计算机串口
初始化计算机串口,主要是选择COM口、设置端口速率等工作。本文选用COM1口,设置波特率为9600 bps,无奇偶效验位,数据位为8位。使用OpenComm函数初始化计算机串口;
(2)选择接收或发送短消息的格式 TEXT格式/PDU格式;
GSM模块通过异步通信接口实现对SMS的控制,共有3种接入协议:Block Mode、基于AT命令的文本TEXT模式和基于AT命令的协议数据单元PDU(Protocol Data Unit)模式。本系统的实现中主要使用PDU模式。
(3)设置SIM卡的短信息中心号码
(4)读取故障报警信息和管理员手机信息
(5)将字符串转换为Unicode代码,对文本信息进行拆分后进行发送
(6)发送完毕后利用CloseComm()函数关闭计算机串口。
本模块的硬件部分GSM Modem采用WAVECOM M1206GMS/GPRS MODEM,接口为RS232,可直接与PC机的串口连接。模块支持文本和PDU模式的短消息,支持完全的AT+扩展指令控制收发短信息,其性价比很高,并且已经在国内普遍使用。
3.数据库系统
数据库系统保存了系统的所有信息,包括注册用户信息,故障相关信息,故障节点信息,对短信息收发的统计、记录等。本系统主要使用MySQL数据库存储相关数据,主要由以下几张表组成:1.T_user表,主要存储管理员信息包括姓名,手机号码。2.T_alert故障信息表,存储故障信息,故障节点IP地址信息,故障发生时间。3.T_node被监控节点信息,包括节点IP地址,所在地点,所属管理员。4.T_sendlog发送信息log记录表。5.T_log故障信息日志表。
在应用程序中使用ODBC驱动与MySQL数据库进行连接。
(1)安装数据库连接驱动程序M ysqlmysql-connectorodbc-3.51.12-win32
(2)建立数据源,使用连接字符串为
(3)连接数据源
(4)取数据集合
四、结束语
新设计网络故障检测与短信报警系统在Win2003环境下通过Visual Studio2005平台开发实现,已在校园网络中推广使用。在实际应用中,能正确定位,检测网络中断故障,及时对网络故障进行报警,并提供数据检索功能。本监控系统的使用,大大提高了校园网络的响应速度和管理水平,减少了网络故障的持续时间。
[1]秦龙.基于GSM网络的环境监控系统的实现[J].计算机工程与设计,2006,27(6):1033~1035.
[2]郎锐,罗发根.Visual C++网络通信程序开发指南[M].北京:机械工业出版社,2004.
[3]赵建,刘俊,杨明欣等.基于GSM 手机短信的无人值守自动抽水控制仪[J].微计算机信息,2006,22(10-1):112-114.
[4]郁进明,谢颖华,白恩健等.基于 SMS的网络站告警监控系统的设计与实现[J].计算机应用与软件,2006,5.
[5]金笛短信资源中心.wavecom芯片资料[EB/OL].http://www.sendsms.com.cn/article/articleview/691/,2005-09-10.
(编辑:杨馥红)
G434
A
1673-8454(2010)21-0053-03
*本文系陕西师范大学青年科技项目支持,项目名称:校园网络安全监控系统。