南充市气象信息网络监控系统的设计与实现

2021-09-01 08:53青娉楚卢淞岩
中低纬山地气象 2021年4期
关键词:轮询中断短信

青娉楚,卢淞岩,邹 红,姚 朋,陈 兰

(四川省南充市气象局,四川 南充 637000)

0 引言

随着信息技术在气象现代化建设中的不断推进,现代信息技术与气象业务结合越来越紧密。气象业务服务以及各类气象数据传输,离不开信息网络这个基础平台。就目前南充市气象部门来说,国家自动站、区域自动气象站所采集到的资料每5 min向上级部门传输一次;土壤水分站、农田小气候站、大气成分站等资料每个整点上传一次;雷达资料每完成一次扫描上传一次;还涉及到各种预报资料、突发天气情况预警信息的传输等。由于气象资料传输具有较高的时效性要求,气象信息网络必须保持全天24 h通畅,在此运行过程中难免会出现通信光纤被市政施工挖断、突发雷击故障、网络设备老化等不可抗拒原因引起网络中断,导致气象资料正常传输受到影响。南充市气象广域网路由器到省级、县级的链路采用双运营商双MSTP互为备份,如需维持各链路24 h运行不中断,就要求网络管理人员全天候同时监控的链路多达27条,如不借助技术手段,那么工作量极大,同时需要消耗大量的人力、物力资源。并且由于人力的局限性,难免会出现一时疏忽,不能保证当网络出现中断故障时,能够第一时间发现并进行处理维护。

南充市气象信息网络监控系统的设计,紧密围绕气象信息网络的特有属性,采用基于J2EE+MySQL+Android设备相配合等技术方法,对南充市气象信息网络进行有效实时的监控和管理,当网络中断后,系统可将故障信息第一时间传达到信息网络管理人员,对气象业务的运行和发展有重大意义。

1 设计思路

系统采用J2EE+MySQL+Android设备配合、Java编程语言等技术方法,其中J2EE实现业务逻辑组织并为业务数据提供远程查询界面;MySQL提供系统数据存储;Android手机支撑网络故障报警的实现,服务器开发环境采用MySQL+Tomact方式。系统运行在一台服务器上,向多条链路对端路由器IP地址不断发送ping命令,根据是否有掉包现象判断相应网络链路的通畅情况。同时,系统采用Browser/Server结构,使用Web界面作为系统管理平台,系统管理人员在任意一台计算机上都能使用浏览器进入系统平台管理查询页面,通过链路管理、监控记录、统计查询、报警人员管理等4个主要模块,实现链路监控、链路增减、链路信息编辑、网络中断情况统计与查询、管理人员编辑等操作。

系统主要实现以下功能:①自动监控市级到互联网、市级到省级、市级到县级的各条网络链路的通断情况;②监控到任一链路断开超过设定时间,自动对系统设定的相关报警人员进行电话和短信通知报警,链路恢复时发送恢复短信;③通过报警短信能看出具体是哪一条链路出现问题;④系统通过手机报警,即使互联网断开,也能将链路通断故障信息第一时间传送相关人员;⑤可同时通知多个报警人员;⑥系统管理员通过B/S模式,输入用户名密码登录系统管理页面;⑦监控记录页面可查询对各链路断开次数、每次持续时间的记录信息;⑧在链路管理页面对需要监控的链路信息进行编辑管理,并能通过操作实现链路的添加删除;⑨在报警人员管理页面对需要报警提醒的人员相关信息、报警通知电话号码进行编辑;⑩在统计查询页面能以故障发生时间或链路名称等为条件,对网络链路历史中断情况进行统计查询。

1.1 系统功能模块

系统功能模块图描述如图1所示,主要分为监控模块、报警模块、系统Web界面等3大模块。其中系统Web界面模块作为系统管理平台,主要包含链路管理、监控记录、统计查询、报警人员管理等子模块,实现管理查询工作。

图1 系统功能模块图Fig.1 The System Function Module Diagram

①监控模块:自动监控市级到互联网、市级到省级、市级到县级的电信移动MSTP网络的链路情况,是否发生中断。

②报警模块:当发现有网络链路中断时,自动触发Android手机对指定人员进行电话和短信报警;链路恢复时,触发Android手机发送恢复短信,并将中断情况记录在数据库中。

③系统Web界面模块:系统管理员在任意一台电脑输入地址即可访问系统平台,输入用户名密码进入系统界面后,通过对链路管理、监控记录、统计查询、报警人员管理4个主要页面的操作,实现系统管理、查询等相关工作。其中链路管理部分,能够实现对链路的添加、删除,可对链路名称、链路对端IP地址、是否进行监控等属性进行编辑管理,还可实时查看链路状态。监控记录部分,通过页面可以访问系统数据库,能查阅所有网络链路中断记录。统计查询部分,实现以链路名称、链路IP地址、查询时间等作为限定条件对数据库进行访问,对数据库中所记录的各条网络链路中断故障情况实现统计查询。报警人员管理部分,实现在页面中增加删除、添加等操作,协助需要报警提醒人员的设置,还可以管理及编辑报警人员的相关信息,如电话、姓名等,并根据人员值班情况调整是否报警。

1.2 系统主要功能流程图

图2为系统监控与报警功能实现的一个简略流程。

图2 自动监控与报警功能流程图Fig.2 The Flow Chart of Automatic Monitoring and Alarm Function

系统每单位时间自动向指定网络链路对端路由器IP地址发送ping命令进行轮询:

①当程序判断出某条网络链路中断时,继续判断该链路之前的状态是否为中断,如果是,则继续轮询;如果不是,则触发Android手机程序进行电话和短信报警,然后再继续链路轮询。

②当程序判断出某条网络链路是正常传输时,继续判断该链路之前的状态是否为中断,如果不是,继续轮询;如果是,则触发Android手机程序发送恢复短信,然后再继续轮询。

1.3 数据库设计

系统选用MySQL关系型数据库管理系统,建立一个稳定的后台数据库,通过该数据库管理整个网络自动监控与报警系统所需的信息。针对需求,设计的主要数据项和数据结构如下所示:

①系统管理员信息,包括的数据项有:用户名、密码等。

②网络链路信息,包括的数据项有:链路对端路由器IP、链路名、链路状态、是否进行监控等。

③链路中断故障记录信息,包括的数据项有:故障编号、链路对端路由器IP、链路名称、故障开始时间等。

④报警人员信息,即需要进行报警提醒的人员信息,包括的数据项有:编码、网管姓名、电话号码、是否通知等。

2 系统主要功能模块实现

2.1 网络监控与报警模块

2.1.1 网络监控时效性控制 为保障各项气象业务正常运行,气象网络必须要满足各种气象资料的传输时效性要求。系统利用“cron表达式”设置定时任务,在项目文件src/job.properties中,用cron=0 0/2***设置链路每2 min轮询一次,符合当前气象数据传输需求。如以后气象数据传输需求发生变化,可随时通过对cron表达式进行更改,从而调整链路轮询触发的单位时间。

2.1.2 网络监控、报警模块的实现 由于在网络运行过程中,难免有偶尔传输不稳定情况,如果ping某条链路只要丢包,就立马进行链路断线报警,很大概率会出现误报。故系统采取的方式为:对指定链路对端路由器IP地址进行ping命令轮询时,每次ping对每条链路发送3个包给链路对端IP地址,3个包只要有1个包返回,都不算这次ping的过程有掉包,只有返回的包个数为零时才算作该链路这次ping的过程为掉包,当链路两次轮询都是掉包时,认定为链路中断。按照目前的设置,相当于该链路断线达到4 min才会进行报警。

从实际运行操作来考虑,系统不可能每次认定链路中断都进行报警,即不可能在已知链路本身已经中断的情况下,每4 min都报警一次。因此,在系统轮询判断某一条链路为中断时,会查看链路的前一状态,如前一状态为正常运行,那么系统才会触发电话与短信报警;相应的,当系统监控到链路状态恢复正常时,也会对该链路前一状态进行判断,若前一状态为中断,那么触发链路恢复短信的发送。

图3为网络监控与报警模块实现流程图。从流程图可以看出,当监控系统正常运行,从数据库中获取各条需要监控的链路后,向它们发送ping命令。

图3 网络监控与报警模块流程图Fig.3 The Flow Chart of Network Monitoring and Alarm Module

声明变量count,获取host网络链路信息表中的链路状态HostStatus为count赋值。当系统轮询到某条链路正常时,若count=2,那么说明链路之前为断线,通过host表中获取到的链路信息,编辑恢复短信,向manager报警人员信息表中需要提醒的报警人员发送恢复短信,并将链路状态赋值为0,若HostStatus为空,也将其赋值为0,系统继续轮询。

当第1次轮询到某条链路为掉包时,此时获取到的链路状态HostStatus给count赋值为0,说明链路之前状态是通的,这是第1次断线。把当前故障及时间记录到pingrecord链路中断故障记录表中,同时host表中的HostStatus记为1,系统继续轮询。

当第2次轮询到某条链路为掉包时,通过获取此时链路状态HostStatus给count赋值为1,得知该链路上一次轮询也为掉包,那么认定为该链路中断,将host表中的HostStatus记为2,向需要提醒的网管人员发送电话和短信报警提醒,并编辑报警短信,指明中断链路,系统继续轮询。

当再次轮询到某条链路为掉包时,通过获取此时链路状态HostStatus给count赋值为2,得知该链路已发送过报警短信,不改变链路状态值,系统继续轮询。

2.1.3 Android设备报警实现 由于系统承担着对互联网的监控任务,故系统未采用微信或网络电话报警方式。要使系统在互联网中断时,也能完成网络中断报警任务,故系统采取手机短信和电话报警。

要实现Android设备的自动报警功能,首先在设备上安装Android手机APP:PhoneHelper,这是基于Android并用Java作为主要编程语言编写的APP。

Android设备上的程序除了从设备界面手动点开进行启动之外,还可以命令行的方式启动程序。通过这种方式,能让系统在监测到网络链路断线或恢复时自动触发PhoneHelper程序。首先需要用数据线把手机和计算机连接起来,然后借助ADB工具连接Android设备进行调试,使用命令行工具am来启动:adb shell am start-n{包(package)名}/{包名}.{活动(activity)名称}。系统运行时,要保持Android手机一直连接在服务器USB口,才能实现由系统触发手机APP进行电话和短信的通知报警。

由于在实际运行过程中发现,如手机在休眠锁屏时,通过上述命令没法自动启动PhoneHelper程序,故在触发手机APP前,会对手机屏幕进行点亮唤醒的操作。示例如下:

if (System.currentTimeMillis()-lastCmdTime>120*1 000){Runtime.getRuntime().exec(String.format("%s shell input keyevent 26",ADB));}

在实际运行时还发现,当多条链路同时中断时,由于程序执行速度远远快于程序拨打电话号码的速度,即第1条链路的报警电话拨打还未断线时,第2条链路的报警电话又开始启动拨打,故拨打电话可能出现冲突,所以在系统中,当遇到多条链路断线时,为了避免冲突,默认为1 min拨打1次报警电话。

2.1.4 报警形式 若监控到网络链路中断时,一方面用电话报警的方式让网管人员能够第一时间发现网络故障,及时进行处理避免影响气象资料的传输时效性和完整性;另一方面还编辑短信详细告知是哪一条链路出现故障,便于网管人员尽快找准处理方向,及时查找问题,有效节约网络故障处理时间。

同时,为了节约人力资源,避免不必要的资源浪费,当系统监控监控到网络链路恢复时,发送链路恢复短信报警。短信报警内容如图4所示。

图4 系统报警短信Fig.4 The Alarm Message of System

由链路报警短信“Link to[链路名称],IP[链路对端IP地址]went down.”可以清晰明确地看出具体是哪一条或哪几条链路出现链路中断,并且显示链路对端IP地址。

由链路恢复短信“Link to[链路名称],IP[链路对端IP地址]come back.”同样可以清晰明确地看出具体是哪一条或哪几条链路已经恢复正常,并且显示链路对端IP地址。

2.2 系统Web界面模块

在任意一台电脑的浏览器地址栏输入:http://服务器IP地址:8080/jfinal/login,即可进入系统登录界面,输入系统管理员用户名、密码进入平台首页。菜单栏显示有链路管理、监控记录、统计查询、报警人员管理4个主要功能,通过这些主要功能页面实现链路监控、链路增减、链路信息编辑、网络中断情况统计与查询、管理人员编辑等操作。

图5所示为每次链路中断故障的记录显示,包括每次故障的开始时间,最后一次未ping通时间和故障持续时间。

图5 监控记录Fig.5 The Monitoring Records

图6所示为统计查询页面,默认显示的是对不同链路的中断故障记录进行汇总统计的情况,一个对端IP地址产生一条信息。统计要素包括中断次数、中断总时间、每次中断持续平均时间。

图6 统计查询Fig.6 The Statistical and Query

同时,也可对链路故障的统计情况进行查询。如指定对端IP地址点击查询,那么页面就会显示链路对端为该IP地址对应链路的中断次数、中断总时间、每次中断持续平均时间;如指定链路名称点击查询,那么页面会显示该名称链路的中断次数、中断总时间、每次中断持续平均时间;或者也可以分别选定起始时间和结束时间,指定时间段查看各链路中断情况的统计数据。

3 业务应用情况

经过一年半的业务应用,系统共准确监测并及时提供南充市气象信息网络断线报警23次,报警和恢复短信电话均有效实时地传达到信息网络管理人员,使相关工作人员及时响应,在尽快时间内处理网络故障,为气象资料传输的及时和完整提供了有效保障。

4 结语

南充市气象信息网络自动监控与报警系统的设计与实现,为气象资料传输的及时性和完整性提供了有效保障。系统可适时发现网络链路故障,对网络进行有效实时的监控和管理,当网络出现问题时,可将故障信息第一时间传达到需要通知维护网络的报警人员,便于及时准确地处理与查找问题;故障恢复后可发送恢复短信提醒,避免不必要的人力财力资源浪费,使市级气象部门的网络监控与维护向更加高效集约和智能智慧的方向发展,对南充市气象业务服务的运行和发展有重大意义。

猜你喜欢
轮询中断短信
道歉短信
基于等概率的ASON业务授权设计∗
代发短信
跟踪导练(二)(5)
千里移防,卫勤保障不中断
依托站点状态的两级轮询控制系统时延特性分析
利用时间轮询方式操作DDR3实现多模式下数据重排
AT89C51与中断有关的寄存器功能表解
FPGA内嵌PowerPC的中断响应分析
数据链轮询多网优化设计方法研究*