网络连通性自动告警的实现及应用

时间:2022-08-02 02:58:03

网络连通性自动告警的实现及应用

摘 要 本文介绍了一个调用PING命令功能以实现网络连通性自动检查的实现方法,以及结合关系型数据库和企业短信平台在天生桥水力发电总厂网络管理中的应用,实现在分钟级别轮询所有设备在线状况并提供异常自动告警功能。

关键词 网络连通性检测 ICMP PING

中图分类号:TN915.06 文献标识码:A

0引言

“PING” 这个命令是检查网络运行情况最简单实用的方法,但一般情况下,需要在命令行手动执行并在命令后跟上对侧设备的IP地址。其实,我们只要巧妙利用“PING”这个命令,就可以设计一个软件,能每分钟替您“PING”一遍您的设备,并自动将结果告知您。如果您的企业有短信平台,那您就只需要拿出手机看一下短信就能回答这个问题了。

网络连通性自动告警软件,或者我们可以称为“自动PING软件”,能让您在老板或用户打电话责怪您网络不通之时,自信地报告已经发现故障并正在做相应处理;也许在用户使用网络前您就提前解决了,那就减少您接到类似烦人的电话的次数。这个软件还能帮助您在受到网络攻击后(希望永远不要发生),向网警提交攻击的发生时间,持续时间和整个攻击过程网络掉包数据等,或者在您编写年度技术总结时,为您提供分析设备运行率、网络异常事件次数等统计数据。

1 功能需求及设计要点制

1.1 自动“PING”功能技术要点

软件最重要的功能就是能够自动的“PING”设备,我们可以使用一个批处理文件来实现自动“PING”,但获取返回的数据是很头疼的一件事,但我们从更底层的角度来考虑,分析一下“PING”这个命令是如何实现的,就可以通过直接调用ICMP协议来解决问题。

ICMP协议是一种面向连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。

我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其它的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。编程实现上通过微软已经提供了开放性的接口――ICMP.DLL动态链接库实现。

1.2 设计实现的功能

芴峁觳馍璞傅淖远ㄒ褰缑妫煞奖闾砑印⑸境⑿薷男杞凶远馐缘纳璞浮?

芗觳饴盅奔淇勺远ㄒ?秒级、分钟级)。

芴峁觳饫肥菪慈牍叵敌褪菘獗4婀δ堋?

芴峁┒绦鸥婢δ埽⒖杀嗉邮杖嗽焙褪只怕搿?

茉诮缑嫔鲜凳毕允驹谙呱璞负屠胂呱璞竿臣菩畔?

芴峁┒绦牌帘喂δ埽谏璞肝ぁ⒌魇允笨墒侄衅帘巍?

1.3 开发环境

懿僮飨低常icrosoft Windows XP

鼙喑逃镅裕icrosoft Visual Basic 6.0

苁菘饫嘈停icrosoft sqlserver 2000

2 软件的流程与结构

2.1 软件流程

(1)读取数据库,设备参数表,获取检测设备IP地址清单和检测结果表中上次测试结果。

(2)通过核心模块FUNCTION PING,调用系统icmp.dll动态链接库,顺序进行PING测试并获取返回结果。

(3)通过比较返回结果与上次存储的结果,如一致则流程结束。不一致则继续进行下一步4。

(4)将测试结果写入数据库,并调用短信告警功能。

2.2软件运行界面

界面中,参数设置按钮可进行设备添加、删除、修改和轮询时间定义,如图: (下转第134页)(上接第131页)

3短信告警功能联动及代码设计

本软件根据天生桥水力发电总厂短信平台实际情况,采用数据库触发器实现告警短信实时写入短信平台待发短信表中,告警短信接口通过SQL结构化代码如下:

declare @votetime datetime

declare @content nvarchar (4000)

declare @phone nvarchar (20)

declare @devid int

declare @message nvarchar(100)

declare @mess_time datetime

declare @mess_type int

select @devid=dev_id,@message=message,@mess_time=mess_time,@mess_type=mess_type from inserted

select @content=devname from monitor_dev where devid=@devid

set @content='网络监视系统告警:'+@content+'在'+CONVERT(varchar, @mess_time, 120 )

if @mess_type=0 set @content=@content+'通讯恢复'

if @mess_type=1 set @content=@content+'发生通讯中断'

set @votetime=@mess_time

insert into sms.dbo.smscontent (smscontent,votetime,sendman) values (@content,@votetime,'PING')

select @contentid=contentid from sms.dbo.smscontent where smscontent=@content and votetime=@votetime and sendman='PING'

insert into sms.dbo.smssend (phonenumber,contentid,sendtype) VALUES ('139xxxxxx',@contentid,0)

insert into sms.dbo.smssend (phonenumber,contentid,sendtype) VALUES ('151xxxxxxx',@contentid,0)。

4结束语

网络连通性自动告警软件的开发,大大提高了对信息系统设备联网情况的监视力度,基本达到网络异常实时发现(分钟级),提高信息故障响应能力。在实际应用中,即时的短信通知,使信息化人员对当前网络运行情况心中有数,减轻了巡检测试的工作量。

同时,自动检测的历史记录使得网络异常发生过程能回溯追踪,并为设备运行率,网络异常事件次数统计等提供第一手资料。

上一篇:天津近代租界建筑中的地域文化及地域色彩 下一篇:不同实验设计中延迟时间对任务转换的影响