基于图像处理与SNMP的通信状态告警系统设计与实现*

2019-09-03 08:57:42张应忠
通信技术 2019年8期
关键词:网络设备指示灯像素点

殷 强,张应忠,陆 滔,李 浩,林 放

(中国人民解放军32037部队,云南 姚安 675300)

0 引 言

随着通信业务的不断扩展,设备不断增加,岗位人员的值班压力也不断增大,终端告警需要及时发现,因此进行智能化管理,开发自动告警系统显得越发重要。

目前网络管理大多采用简单网络管理协议(Simple Network Management Protocol,SNMP),SNMP是目前应用最为广泛的TCP/IP网管标准,也是应用最为广泛的网络管理协。该协议由国际互联网工程任务组(The Internet Engineering Task Force,IETF)基于TCP/IP参考模型制定,是计算机网络管理的标准之一[1]。设备中开启SNMP服务,网络管理员就可以远程查看设备状态,同样也能够在事件发生时向网络管理员发出警告[2]。但对不支持SNMP协议而又需要监视的设备,作者在现有查阅文献中暂未发现对此类问题的研究,对此,本文利用计算机来处理数字图像很好的解决了这一难题。

当图像传输、办公网、程控等通信出现中断时,告警系统发出警报,管理人员就能及时的发现各系统、各设备在运行中出现的异常状况。自动告警系统通过图像处理实现对不支持SNMP的设备进行状态监视,同时对支持SNMP设备,监视其端口状态、流量信息、错误等信息并实现主动上报。维护人员无需逐个巡视和查看告警信息,就能及时感知、发现、定位故障,弥补人员巡查存在的工作漏洞,确保通信业务的正常运行。

本文采用图像处理技术与SNMP相结合的方法,开发了通信状态告警系统,实现了对通信设备的状态监视,通过集中控制软件就能及时的发现各设备的运行情况。该系统的实现具有一定的现实意义和较高的推广应用价值。

1 系统设计目标

本文利用电荷耦合元件(Charge-coupled Device,CCD)图像传感器外设方式,采集指示灯状态信息,统计设备的颜色指示灯像素信息,实现对不支持SNMP协议通信设备的监视;利用SNMP协议获取设备端口信息,实现对支持SNMP协议的通信设备的监视。使用上述方法,可以实现不对现有设备状态进行更改,从而完成一个完整的状态告警系统。

本系统设计目标包括:

(1)通过图像传感器获取图像信息。

(2)基于OpenCV对采集的图像进行处理。

(3)开启通信设备SNMP协议获得端口状态信息。

(4)设计客户端与服务器模式,实现语音告警。

2 系统总体设计

系统硬件部分由摄像头、服务器、客户端主机、网络设备等组成,其结构如图1所示。网络设备状态的原始图像由OpenCV调用摄像头进行采集获得;SNMP开启后,服务器作为网络管理系统(Network Management System,NMS)通过被管理设备Trap获取网络设备端口状态信息。通过数字图像处理技术,服务器对获取的原始图像进行处理分析,从而获取被监视设备状态信息。客户端主机用于接收远程告警信息并上报,从而进行语音告警输出。

图1 告警系统总体设计

软件部分利用OpenCV强大的图像处理能力和SNMP简单易配置的优点,采用Python、C#语言进行自主开发[3]。

3 系统模块设计与实现

系统各个模块具体工作流程如图2所示。

图2 系统模块工作流程

3.1 图像处理模块

图像处理模块实现图像采集、定位像素点位置、RGB颜色识别、异常报警等功能。

图像采集由OpenCV库程序调用摄像设备读取设备完成。图像处理的第一步是对图像数据进行采集。图像采集模块主要是以每秒15帧的帧频(使用的摄像头最高扫描频率为每秒15帧)对图像进行提取,实时获取设备原始状态信息,为后续处理提供图像。

对于像素点位置的获取,由于摄像头是固定的,图像位置没有移动,手动确定该状态指示灯的相对位置。

获得固定位置后,通过统计每个指示灯图像各像素点的RGB颜色分量,来判断链路状态。一个像素点的颜色是由RGB三个值来表现的[4],所以像素点矩阵对应三个颜色矩阵,本文所采集的主要设备的指示灯有红、绿、灰三种状态,对不同状态指示灯的R、G、B三种颜色分量进行直方图统计,如图3、图4、图5所示。分析直方图可知,红灯状态下各像素点红色分量值较高,其中又以255最多,我们把这种像素点称为R点,经过实验比对,设置红灯判定条件为:R点占总像素点比例大于等于30%。类似地,绿灯状态下各像素点绿色分量值较高,基本位于200以上,我们把这种像素点称为G点,由于实际光照条件下,绿灯像素偏白,经过实验比对,设置绿灯判定条件为:G点占总像素点比例大于等于10%。

图3 红色状态灯的RGB直方图分布

图4 绿色状态灯的RGB直方图分布

图5 灰色状态灯的RGB直方图分布

对像素点个数统计和颜色分量识别后就完成了告警信息统计,若出现告警,则向告警输出模块发送告警信息。状态获取日志如图6所示。

图6 监视状态获取

3.2 SNMP模块

SNMP模块主要用于采集被监视端性能指标,如设备特性、数据流量(包括发送和接收)、通信超载、错误等信息,实现在最短的时间内发现故障[5]。

基于.NET平台,利用C#开发,开发工具Microsoft Visual Studio 2010。同时为保障使用SNMP协议与网络设备相连,必须要在防火墙设置中允许SNMP协议通过[6]。该模块本质上就是从被管设备上的管理信息库(Management Information Base,MIB)取得相应的对象标识符(Object IDentifier,OID)对象值,图7为MIB树形结构图。

图7 MIB树形结构图

实现SNMP模块需进行网络基础配置及网络设备MIB参数获取,和获取网络设备属性值[7]。

(1)网络基础配置

网络设备开启中SNMP。具体步骤为:①开启Agent服务,②配置SNMP版本,③配置NMS管理权限,④配置向SNMP Agent输出Trap信息。

(2)获取网络设备MIB参数值

主要是通过已知的网络设备管理IP和交换机的OID来查询实现,例如华为交换机2403系统时间标识为1.3.6.1.2.1.1.3.0。但大多数时候网络设备的OID信息是未知的,如何知道OID属性值成为要点。一种方式是通过厂家获取,另一种方式是通过软件获得。本文利用软件GetIf来获得,通过它可以知道当前设备的状况,能把网络设备的OID信息、端口状态、路由表、ARP、支持的协议以及网络设备中mac-address-table中的信息都读了出来。本软件主要对ifOperStatus(当前接口操作状态),name(接口名称),ifInOctets(接口接受到的字节),ifOutOctets(接口发送的字节),ifSpeed(接口速率)的状态进行获取。

(3)获取网络设备属性值

.NET可以通过调用SnmpSharpNet库,来获得设备状态,通过数据分析后,设置门限。当设备状态出现异常时,应用程序将通过声音、图像变化等手段进行报警。图9为网络监视界面。

图8 GetIf软件获取Oid值

图9 网络监视界面

获取网络设备通知首先要在被管理的网络设备上设置trap发送的目的IP地址为管理系统的IP地址,以及发送的端口号,默认端口号为162。管理系统在设置好的端口号上接收被管网络设备的trap数据包,当收到数据包时,将数据包的详细内容以弹出对话框的形式显示在界面上,同时进行声音提醒。

3.3 告警输出模块

本文采用局域网模式将各机房连接,实现远程状态监视,告警采用终端、服务器模式,进行告警输出。如图10所示。

告警输出模块通过TCP/IP协议在接收图像处理和SNMP模块告警信息时,通过调用Windows Sapi.spvioce自带语音服务,实现语音告警,并进行告警日志记录[8]。

图10 告警设计

程控和网桥告警输出日志如图11所示。

图11 告警输出日志

4 结 语

本文通过利用Python语言和OpenCV对图像处理的成熟技术,简单、灵活、高效的完成了对通信链路的状态监视。在设备不能通过端口读取状态信息时,可以完成对所有具有状态指示灯设备的监视;通过启用网络设备的SNMP,在网络管理服务器上基于.NET平台利用C#开发了统一的管理系统,通过图像处理和SNMP协议的结合,高效完成了对网络设备进行监视,大大提高了网管效率,具有较高的推广应用价值。

猜你喜欢
网络设备指示灯像素点
一种基于C# 的网络设备自动化登录工具的研制
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
数据中心唯“快”不破
荣威750车ABS指示灯和防侧滑指示灯异常点亮
基于Node-Cell结构的HEVC帧内编码
电视技术(2014年11期)2014-12-02 02:43:28
上海大众POLO充电指示灯点亮
2013年波罗车充电指示灯异常点亮
基于列车监测网络设备的射频功放模块设计
基于三层交换技术架构数字化校园网络设备的配置与管理