马占中
(通号通信信息集团有限公司,北京 100070)
近些年中国铁路取得了飞速高质量发展,截至2021年底,中国高铁运营里程突破4万千米,中国铁路营运总里程突破15万千米。伴随着中国铁路的飞速发展,铁路综合视频监控系统作为铁路运营的重要安全保障,其规模不断扩大、设备种类越来越庞杂、系统结构越来越复杂、系统维护工作越来越繁重。
铁路综合视频监控系统如果采用传统的人工运维方式,其被动运维效率低下,经常出现漏检问题,数据统计不全、考核无法下手,无法适应视频规模高速增长和相关业务应用不断增加的管理需求。
视频图像质量诊断系统是一种用计算机来代替人工对摄像机的图像质量自动诊断的系统。但是现有的视频图像质量诊断系统诊断效率低下、诊断结果准确率不高,容易对摄像机故障造成误判,不能满足当前铁路综合视频监控系统的发展要求。
铁路综合视频监控系统的网管模块对网络中的硬件进行了监控,但是监控功能简单,随着综合视频监控系统不断发展,网管功能不能满足当前系统维护工作的需求。
为了解决上述问题,本文依据《QCR 575—2017铁路视频监控系统技术规范》,以铁路综合视频监控系统的运维工
作为对象,研究一个系统方案,用于指导铁路综合视频监控智能运维系统的开发工作。方案通过对全网视频设备、IT设备、系统软件及应用软件等进行实时监控、故障告警、故障定位、自动化工单和大数据分析,实现对视频监控系统及其基础支撑运行环境的可视、可控、可管理,持续提升视频监控系统的整体运行维护管理水平,保障视频监控系统长期稳定。
方案以铁路综合视频业务为出发点,实现全面、海量视频数据的收集,同时融合基础设施和系统软件的监控数据,向用户提供多维立体可视化监控服务,提升视频数据价值,提供智能运维,全方位感知设备状态、用户行为,感知业务运行质量,降低人员工作强度、提升工作效率,有效指导运维工作,实现故障全周期跟踪。
方案系统逻辑架构分为6层,如图1所示。
图1 智能运维系统逻辑架构图
感知层指被监控的硬件设备与软件,包括摄像机、编码器、解码器、服务器、交换机、磁阵、防火墙、UPS、操作系统、视频监控系统软件、云存储系统软件等。
协议层指监控服务与被监控对象之间的通信协议,包括SSH、HTTP、HTTPS、IMAP、TCP、Telnet、Zabbix agent、SNMPv1 agent、SNMPv2 agent、SNMPv3 agent、ICMP ping、RTSP,铁标A接口协议等。
服务层指执行监控任务的服务程序,包括Zabbix服务、图像质量诊断服务、运维管理接入服务。
数据层指系统的基础数据与服务层从监控对象采集到数据,包括运维管理数据库、Zabbix服务数据库、图像质量诊断数据库、消息队列数据等。
应用层指数据的管理和处理层,是用户直接使用的各种应用,包括系统基础数据管理、设备管理、图诊任务管理、告警管理、工单管理、数据统计等。
展示层指系统与用户交互信息界面,向用户展示信息,接收用户的输入,包括Web浏览器、大屏幕展示、手机APP、电子邮件、短消息等。
感知层的硬件设备通过启用SNMPagent、开通IPMI接口、安装Zabbix agent等技术措施,使设备中的数据能够采集到Zabbix监控服务器。感知层的云存储系统通过restful格式的应用程序接口为运维管理接入服务提供监控数据。感知层的视频监控系统通过TCP/IP技术将视频数据传输到图像质量诊断服务。
服务层的Zabbix监控服务是一种企业级的分布式开源监控解决方案,能够监控众多网络参数和服务器的健康度和完整性的软件。图像质量诊断服务采用C++技术开发,实现了铁路视频监控系统技术规范中的A接口,通过TCP与综合视频监控系统通信,获取视频流,并将视频图像解码,将图像数据送入深度学习模型中进行图像分析,再将分析结果写入数据库并发送MQ消息通知运维管理系统。
数据层的数据库选用MySQL数据库,MySQL是当前最流行的关系型数据库管理系统之一。消息队列选用ActiveMQ,它是Apache出品的开源消息总线,是一个完全支持JMS规范的JMS Provider实现,支持多种语言和协议编写客户端。
应用层的各功能模块采用Java EE技术,基于当前流行的SpringBoot开发框架实现。SpringBoot开箱即用,提供各种默认配置来简化项目配置,使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。应用层通过SpringMVC框架为展示层提供Restful开发接口并处理用户请求,通过Hibernate、JPA等持久层框架访问数据库,通过JMS与消息队列进行即时通信。
展示层采用Layui开源框架开发,并集成了echarts、bootstrap等多种组件,通过Ajax、WebSocket等技术与应用层进行数据交互。Layui是一套开源的Web UI解决方案,采用自身经典的模块化规范,并遵循原生HTML/CSS/JS的开发方式,风格简约轻盈,而组件优雅丰盈,非常适合网页界面的快速开发。
视频图像质量诊断功能包括摄像机资源管理、诊断模板与算法管理、诊断任务管理、诊断数据统计等,融合了信息处理技术、图像处理技术、计算机视觉技术、计算机图形学、人工智能、图像分析等多项技术,涉及运维管理服务、图像诊断服务和图像诊断算法模块,网络结构如图2所示。
图2 视频图像质量诊断功能网络架构图
视频图像质量诊断功能能够支持多种诊断类型,诊断类型及说明如表1所示。
表1 视频图像质量诊断类型
视频图像质量诊断功能的工作流程如图3所示。
图3 视频图像质量诊断功能工作流程图
首先要获取摄像机的资源信息,视频图像质量诊断功能中的摄像机资源数据的来源是视频监控系统。用户在运维管理服务提供的Web界面上,通过点击“资源同步”按钮触发摄像机同步事件。运维管理服务后台收到摄像机同步消息后,发送“资源同步”命令到ActiveMQ的消息队列。图像诊断服务接收到ActiveMQ转发的“资源同步”命令后,通过铁路综合视频规范中的A接口协议连接视频监控系统获取摄像机资源信息,并将获取到的数据写入数据库中。
用户通过视频运维管理系统的Web界面,可以管理诊断任务。创建诊断任务时,每个诊断任务需要配置几种不同的诊断类型。为了简化诊断任务的配置,系统中通过增加诊断模板,将诊断类型进行组合,每个任务只选择一个模板即可。诊断任务分为单次任务和周期任务。单次任务主要用于临时诊断,周期任务由系统根据参数设置自动执行。
诊断任务的执行由图像诊断服务完成。诊断服务通过ActiveMQ接收诊断命令,收到执行任务的命令后,通过A接口协议调取视频监控系统的视频流,对视频流解码并将图片发送给诊断算法模型。进行图像数据分析的算法模型是基于深度学习技术训练得出的,经过了大量实景图片的监督学习,提高了图像诊断的准确率。一张图片经过算法模型运算可诊断出多种类型的概率,提高了图像诊断诊断效率。算法模型对图片进行运算后,输出各种诊断类型的概率,确定诊断结果,并将结果输出到诊断服务。诊断服务将诊断结果写入数据库中,并通过ActiveMQ将诊断进度通知到运维管理系统。运维管理系统收到诊断任务的实时进度后,通过WebSocket将消息实时发送到正在查看诊断任务的用户的Web浏览器上,用户可以实时了解任务诊断的进度。
用户在视频运维管理系统Web界面可以对诊断历史结果进行数据统计,以表格和图表的形式展现,并支持将统计结果导出为Excel格式文件。
设备与软件监控功能包括设备管理、设备实时监控、告警通知与处理等,涉及运维管理服务和Zabbix监控服务,网络架构如图4所示。
图4 设备与软件监控功能网络架构图
Zabbix负责设备与软件的实时监控、数据采集、生成告警等业务。Zabbix是一种高度集成的网络监控解决方案,支持轮询和被动捕获。Zabbix由几个主要的功能组件组成,组件及职责如表2所示。
表2 Zabbix主要功能组件及职责
Zabbix可从任何设备、系统、应用程序上采集数据;支持Zabbix agent主动和被动监控模式;支持多种协议的无代理监控(ICMP和TCP检查、IPMI、SNMP(v1/2c/3)轮询和trapping、SSH/Telnet检查、Modbus和MQTT协议支持、使用外部脚本或插件进行扩展);存储数据之前对任何类型的数据进行规范和转换;支持定义非常灵活的问题阈值,便于精准发现问题;支持多个渠道发送告警事件消息;支持自动扫描网络并添加发现的设备;支持使用开箱即用的模板或自定义监控模板;通过部署Zabbixproxy,支持分布式监控;提供可编程接口,用于大规模操作、第三方软件集成。
视频监控系统中的摄像机、编码器、解码器、交换机、磁阵、防火墙、UPS等设备都安装了SNMP代理,Zabbix服务可以通过SNMP方式进行数据采集。服务器和操作系统可以启用IPMI并安装Zabbix agent,Zabbix服务能够获取到更为丰富的数据。视频监控系统软件和云存储系统软件提供restful接口,Zabbix服务通过调用外部脚本的方式采集数据。
运维管理服务采用B/S结构开发,提供用户操作界面和后台服务,支持对监控设备信息的维护、设备监控信息的实时展示、告警信息的显示及处理等功能。用户通过Web浏览器访问运维管理服务,经后台服务认证授权进入设备维护界面,输入设备信息,通过ajax技术将设备信息提交到后台服务,后台服务将信息存储到MySQL数据库并调用Zabbix提供基于JSON-RPC 2.0协议的WebAPI在Zabbix服务中创建设备的监控信息。Zabbix服务根据设备的监控策略执行监测任务,并将采集的数据进行处理后存储到Zabbix数据库中,如果收到的数据超过设置的阈值会产生告警事件,并根据设置的媒介类型和消息格式发送消息。通过JDBC数据库连接访问Zabbix的数据库服务,读取监控数据。
铁路综合视频监控系统智能运维管理方案综合运用Zabbix、spring boot、C++、AI、echarts、bootstrap、Ajax、WebSocket、Messagequeue等多种技术,对综合视频监控系统的硬件设备、网络状况和软件系统的运行数据进行了实时采集,对采集的数据进行分析,及时产生告警事件,以多种方式通知到用户。该方案使用户可以实时了解综合视频监控系统的运行状况,及时发现系统故障告警、快速解决故障,降低系统维护的难度,能够有效地保障综合视频监控系统稳定运行。