李 璟,吴 萍,黄俊慧
(1.国家海洋局东海预报中心 上海市 200136;2.海洋赤潮灾害立体监测技术与应用国家海洋局重点实验室 上海市 200090)
远端站点传输连接状态异常分析和监控研究
李璟1,2,吴萍1,黄俊慧1
(1.国家海洋局东海预报中心上海市200136;2.海洋赤潮灾害立体监测技术与应用国家海洋局重点实验室上海市200090)
摘 要:目前海洋观测点所处地域分散,数据传输经历环节繁多。传输中断时,如何及时定位故障点是急需解决的问题。在传输枢纽处建立监控系统,通过远程监控发现连接异常,可以有效缩短故障解决的时间,提高传输的及时性和连续性。本研究分析了远端节点发生传输连接异常的原因和表现形式,设计了判断规则,通过二次开发建立远程监控系统,实现自动化地获取异常信息和数据入库。
关键词:连接状态;异常分析;远程监控;二次开发
目前,海洋实时观测数据被广泛地运用于海洋预警报和防灾减灾工作中。随着上述业务的技术研究不断发展,对观测数质量的要求也不断提高。因此,如何保障观测数据传输,提高传输及时性和连续性尤为重要。
观测数据从观测点传输至数据中心的过程所涉及的环节繁多。传输节点内部的终端、网络设备等故障以及设备之间的连接故障、节点间的链路故障都可能影响传输。远端海洋站点所处的地理位置往往比较分散,观测数据通常采取逐级传输的方式汇总到区域数据中心。因此,在传输枢纽处(即区域中心)建立对各级数据节点的传输连接状态的远程监控,可及时判断传输中断的位置,缩短处理时间,对保障传输顺畅起到辅助作用。此外,远程监控还可有效弥补由于站点分散以及维护人员技术水平不均造成的不足。
本文以东海区的观测数据传输为研究对象,分析了数据传输流程中发生的连接异常的原因和表现形式,设计了异常发生和解除的规则。在已有网管软件的基础上结合日常运维业务的具体需求进行了二次开发,研制了远程监控系统以自动化地识别远端节点的传输连接异常及解除,区分并标识不同的异常以及异常之间的关联性。
为了便于监控,首先对数据在上传过程中经历的各种传输环节进行分析。目前东海区的海洋观测数据主要采取逐级传输的方式,节点之间通过专线连接,从底层节点(目前为三级节点)开始依次传输至区域中心(即一级节点),呈成树状结构。各级节点内建有局域网,且网络结构较为相似(如图1所示)。根据业务量不同各节点内的设备规模略有不同。
图1 节点内网络结构示意图
因此,就传输环节而言,影响数据从某个远端节点传输至区域中心的因素包括远端节点和上级节点间的连接、节点内的网络连接以及区域中心内的网络连接。
为便于分析和实验,本研究将监控中心设在区域中心节点,同时由于二级节点处于中间环节且设备规模适中,选取其中一个为作为典型的监控对象,共同组成实验环境,如图2所示。在进行远程监控系统开发前,先对数据从监控对象节点至监控中心的传输分段研究。据此,数据传输经过的设备包括监控对象节点设备和监控中心设备两部分,经过的链路包括3部分:监控对象节点内局域网网络、其与监控中心间的运营商链路、监控中心内局域网网络。监控中心内局域网可由本地的网管软件直接监控并提供异常反馈,此处暂不列入研究。所以进一步分析监控对象节点内的设备、设备之间、以及节点间(即和监控中心间)的连接异常(以下简称异常)的原因以及表现形式如下:
图2 监控试验环境选取示意图
(1)异常成因:
节点内部的网络设备(路由器、交换机等)和终端(计算机、服务器等)发生异常的原因包括死机、关机、断电、网线松脱、网口故障等。节点间的异常可能由于地面光纤故障、运营商机房调整、落地设备等故障造成。
(2)异常表现:
1)某个终端在带电情况下死机或关机时,终端上的用户处于离线状态,但和他相连的网络设备端口识别不到中断。当终端网线断电或是网线脱落时,和该终端连接的网络设备的对应端口表现连接中断。这两种异常能直接被监控中心识别到。
2)路由器、交换机等网络设备整体发生故障时,和该设备直接相连的其他设备或终端的连接状态对监控中心而言,处于无法识别的状态,同时,和该设备有间接连接的部分设备也处于这种状态。
3)当节点间链路故障时,虽然两个节点各自的接入设备(如路由器)的接入端口状态正常,但这两个设备间不可互访,且对于监控中而言,监控对象节点的所有设备均处于无法识别的状态。
能被监控中心直接识别到异常,本文定义为直接异常,无法被监控中心识别当前状态的异常,定义为间接异常。结合上述异常原因及表现形式还可知,间接异常的影响范围由设备间的级联关系来决定。为解决对2类不同异常的识别,同时便于编程实现对异常及其解除的判断,定义规则如下:
(1)上下行规则:
以监控中心节点最外侧的接入设备为中心,向外辐射,各设备依次互为上行和下行关系,且上下行关系可嵌套。每个设备和其上行设备直连的网口为上行接口,和其下行设备直连的网口为下行接口。
(2)异常判断规则:
1)发生以下3种情况时判断为发生直接异常:①终端由于关机或死机致使终端上的用户处于离线状态;②网络设备端口当前状态和初始状态相反;③两节点的接入设备无法互访。3种情况的异常分别定义为终端异常、端口异常和节点间异常。
2)当网络设备整体故障、网络设备端口故障或是节点间无法互访,造成其下行的各级设备或终端无法被访问,判断为发生间接异常。
(3)异常规则解除:
1)发生以下3种情况时判断为直接异常解除:①当终端用户恢复在线;②网络设备端口恢复初始状态;③两节点的接入设备恢复互访。
2)当某个直接异常解除时,和其相关的且未解除的间接异常均解除。
2.1技术路线
依托其他项目支持,被监控的二级节点已具备了设备可为网管软件(IMC)纳入监控的条件。IMC软件可监控终端的硬件使用情况、用户在线等,也可监控网络设备的CPU、内存、端口流量等。对本研究关注的用户在线状态和网络设备端口状态2类数据,该软件可提供数据接口。
在此基础上,本研究的远程监控系统可分为3部分:底层监控、二次开发的监控程序和数据库。其中,IMC软件和开发的访问检测程序作为底层监控,IMC获取节点内的终端用户在线状态和网络设备端口状态,并通过数据接口抛出;访问检测程序获取节点间连接状态并通过日志抛出。二次开发的监控程序实现对底层提供的原始数据进行提取,并按监控规则对异常进行识别、过滤,最后将数据入库,过程如图3所示:
图3 远程监控系统运行流程示意图
目前,在气象观测[1,2]、船舶与海洋工程[3,7]、海洋石油生产[4,5]等行业远程监控技术已广泛应用,海洋观测、监测领域的监控实例[6,8]也陆续出现。上述远程监控通常是针对具体的监控对象进行定制性的监控开发,监控程序和监控对象本身的相互依赖度较高。本研究采取对现有的监控软件进行二次开发的方式,如监控对象改变或是底层监控程序更换,只需根据新的底层监控程序的接口调整数据对接即可,工作量相对较小且较为灵活。同时本研究建立了监控信息数据库,后期可扩展性较高,同时也易于和其他监控系统集成。
2.2技术实现
2.2.1底层监控
底层监控使用IMC软件提供WebService接口。每台终端都有1个用户,调用接口acmUserService可获取当前在线用户列表,从而间接获取离线用户的信息,即终端异常信息。每台网络设备都有名称和IP,且设备上每个端口也都有名称,调用接口imcplatResService可获得当前可访问到的网络设备的各个端口状态。比较设备端口的当前状态和初始状态,两者不同为端口异常,从而得到当前端口异常信息。
底层监控读取访问检测程序提供访问日志。日志包含了对一系列目标地址的访问记录。通过读取日志可获得当前发生的链路连接异常的信息,即节点间异常信息。
上述3种底层监控数据共同组成了原始监控数据集,供二次开发的监控程序调用。
2.2.2监控程序
监控程序需要完成原始数据提取、异常及其类型识别、解除识别、过滤重复、数据入库这几项功能。根据得到的3种原始监控数据,在监控程序中分别建立终端监控、端口监控、节点监控3个监控模块。
监控程序通过定时轮询的方式从IMC的acmUserService和imcplatResService两个接口提取用户在线数据集和端口状态数据集,从访问检测程序的日志中提取节点访问数据集。然后3个监控模块分别根据异常和解除的判断规则进行预处理后得到当前的直接异常发生和解除两个初始数据集,通过比对已有记录过滤掉重复记录,然后按上下行规则标识出间接异常和解除,最后将所有新增的异常和解除写入数据库。上述过程通过编程实现时分解如下:
(1)异常判断和处理:包含预处理、过滤、规则干预3个阶段。
1)预处理:
对原始监控数据进行处理,得到包括以下3类数据:
*终端离线数据集:终端用户集作为初始数据集,在线用户集是已有的原始监控数据。终端离线数据集为在终端用户集中去掉在线用户集后得到的数据集。
*端口异常数据集:端口此处指的是网络设备的网口,且有一个初始状态数据集。端口当前状态集是已有的原始监控数据。端口异常数据集是提取初始状态数据集和当前状态数据集中那些不同的记录得到的数据集。
*节点间异常数据集:通过从访问检测程序的访问日志中提取访问失败记录获得。
2)过滤
预处理后的“终端离线数据集”、“端口异常数据集”、“节点间异常数据集”是对当前所有连接状态进行轮询检查后得到的异常数据集。这些异常可能之前已经存在且仍处于未解决的状态,所以需要和已有的未解决的异常记录进行比较,过滤掉重复记录,仅保留新增的异常。
3)规则干预
经过滤处理后,所有新增的“终端离线”、“端口异常”、“节点间异常”根据之前定义的直接和间接异常的规则进行区分和标记。同时,对新增的“端口异常”和“节点间异常”还需要对所涉及的下行设备进行嵌套查询,并增加相应的间接异常记录。最后将所有新增异常入库。
(2)解除判断
1)直接异常解除:
比较未解决的终端离线数据集和当前用户在线数据集,重合的终端记录表示终端连接已恢复,相应的终端异常解除。比较未解决的端口异常数据集和端口当前状态集,状态不一致的端口记录表示该端口连接已恢复,相应的端口异常解除。比较节点间异常数据集和当前访问失败记录集,地址不重合的记录表示节点连接恢复,相应的节点间异常解除。
2)间接异常解除:
“端口异常”和“节点间异常”两类异常解除时,恢复正常的端口需嵌套查询下行设备,符合查询结果的未解除的间接异常记录均更新为解除状态。
监控程序除终端监控、端口监控、节点监控3个模块外,还包含1个“下行设备查找”的公共方法。通过输入设备和端口名称,根据链路表进行嵌套查找,可输出指定设备和端口关联的所有下行设备。
2.2.3数据库
监控信息数据库包含静态和动态2类数据表,前者用于存储设备、接口、链路等初始信息,后者用于存储动态更新的异常及解除信息,各自包含的数据表如下:
(1)静态信息表:
1)设备表:记录设备信息(如:名称、IP、隶属节点等);
2)网络设备端口表:记录网络设备端口信息(如:端口名称、端口初始状态等);
3)链路表:记录连接两端信息(如设备、端口、上下行属性);
4)节点表:记录节点信息。
(2)动态信息表:
1)终端异常表:记录终端直接异常的信息(异常状态、发生时间、解决时间等);
2)端口异常表:记录网络设备端口直接异常的信息(异常状态、发生时间、解决时间等);
3)节点间异常表:记录节点间连接异常的信息(异常状态、发生时间、解决时间等);
4)间接异常表:记录终端或网络设备的间接异常的信息(发生时间、解决时间、与之关联的端口异常或节点间异常等)。
其中:设计“节点表”是为了便于后期集成化的监控平台中以业务节点为单位进行监控;在“间接异常表”中设计了“与直接异常关联”的字段,为了便于后期进行统计分析。
在A地的监控中心部署远程监控系统服务端,包括远程监控程序和数据库,位于B地的被监控点部署测试终端(计算机)和测试网络设备(交换机),终端上安装IMC客户端,网络设备上开放SNMP协议。实验环境如图4示:
图4 实验环境示意图
图5 模拟场景示意图
用测试计算机和交换机分别模拟几种连接异常的发生和解除,具体如下:
(1)交换机B和计算机B直连(如图5场景1所示),先关闭计算机模拟发生终端连接异常,然后重新开启计算机模拟异常解除。
(2)交换机A下联交换机B,交换机B直连计算机B(如图5场景2所示),先拔出交换机A上连接交换机B的连线,模拟交换机A发生端口连接异常,然后重新插入网线模拟异常解除。
(3)交换机A和B通过集线器C和D相连,模拟监控中心的接入设备为A,被监控点的接入设备为B,下联终端为计算机B;集线器C和D模拟为2节点各自的运营商落地设备,两者间连线模拟为节点间专线(如图5场景3所示)。先断开集线器C和D间的连接,模拟2节点间专线中断的即发生节点间连接异常,然后重新连接C和D模拟异常解除。
测试远程监测系统是否能识别到异常的发生和解除并将信息入库,结果如下:
A点和B点间场景1* √场景2-* -* * -√ -√ √场景3-* -* * -√ -√ √备注 *:出现直接异常记录,-*:出现间接异常记录√:出现直接异常解除记录,-√:出现间接异常解除记录对象场景异常发生 异常解除终端 端口 节点间 终端 端口 节点间计算机B交换机B交换机A A点和B点间计算机B交换机B交换机A
实验结果表明,远程监控系统可识别到被监控节点发生的终端、端口和节点间三类连接异常。
本研究分析了远端节点在数据传输过程中发生连接异常的原因和类型,通过设计判断规则和基于现有软件进行二次开发,实现了对远端节点传输连接异常的远程监控。由远程监控系统获取的监控信息,包含了异常发生和解决的时间,异常的类型以及关联性。这些数据不仅可辅助运行维护人员在传输中断时,快速进行故障定位,而且可用于统计分析,便于制定预防措施。同时,系统提供了数据接口,便于上述信息被集成到其他海洋观测监控平台中。
本研究也存在一些局限性,目前系统对终端的状态获取依托第三方客户端软件,程序故障将影响监控效果,后期将研究其他更稳定的方式进行替代。此外,本次研究涉及的传输设备种类有限,今后将陆续对其他传输设备进行监控研究。
参考文献:
[1]雷卫,延陈刚,陈武框.CAWS600型自动站运行状态实时监控系统设计[J].气象水文海洋仪器,2011,28(1):86-89.
[2]陈峰,云卢剑,吴静,等.自动气象站资料传输报警系统的实现,[J].气象水文海洋仪器,2011,28(2):77-79.
[3]李铁刚,张晓明.船舶报警监控系统概述及调试方法[J].科技资讯,2011(9):33-33.
[4]邵月磊,韩鹏.海洋石油行业生产设施远程监控手段分析[J].技术与市场,2012(2):59-59.
[5]王殿龙,谭王丽.基于以太网技术的海洋平台安全自动化组态软件的设计与实现[J].中国海洋平台,2004,19(1):45-49.
[6]宋坤,周智海.海洋动力环境实时立体监控平台设计[J].海洋技术,2006,25(3):36-40.
[7]王文俊,周智海,罗林.海洋立体监测系统监控平台的设计与实现[J].计算机工程,2005,31(1):33-35.
[8]聂雪媛,时忠民,黄映城,等.基于B/S的海洋平台远程监控系统设计[J].微计算机信息,2007,24(5/3):1-3.
收稿日期:2016-03-30
基金项目:海洋赤潮灾害立体监测技术与应用国家海洋局重点实验室开放研究基金 (MATHAB201308)。