发明内容
本公开为了解决上述问题,提出了一种智能站全景数据监测分析系统及方法,本公开通过优化智能站的数据采集、解析、处理和展示各环节,提高数据监测分析的及时性和准确性。
根据一些实施例,本公开采用如下技术方案:
一种智能站全景数据监测分析系统,包括终端层、通信层、数据分析层和数据展示层,其中:
所述终端层包括智能站内各电气设备的监测设备;
所述通信层将终端层采集的监测信息传输给数据分析层;
所述数据分析层包括:报文记录与分析模块、事件分析模块、诊断维护模块和故障录波分析模块;
所述报文记录与分析模块,被配置为构建SCD文件模型,对接收到的报文进行优化存储,对接收到的报文进行解析,得到报文文件数据,根据得到的报文文件数据,进行在线结果分析;
所述诊断维护模块,内置故障检测模块,用于检测系统磁盘占比过高故障、网口故障和串口故障,并将诊断结果推送给展示界面;
所述事件分析模块,被配置为获取故障诊断以及接入的终端设备的事件信息,解析并提取事件关键信息,根据预先设定的优先级,依次传输/处理相应的事件信息;
所述数据展示层,被配置为展示采集的监测数据、报文文件分析结果、故障诊断结果和事件信息。
作为可选择的实施方式,所述智能站全景数据监测分析系统还包括多线程管理模块,被配置为监控分析系统的各线程的工作状态,监视并定位故障线程。
作为可选择的实施方式,终端层包括但不限于巡检机器人监控系统、辅助设备监控系统和主设备监控系统。
所述巡检机器人监控系统,被配置为对至少一巡检机器人进行监控;
所述辅助设备监控系统包括视频主机、环境监测设备、消防主机、安防主机中的至少一个;
所述主设备监控系统,包括在线检测装置和一体化电源监控系统。
作为可选择的实施方式,所述报文记录与分析模块包括:
SCD文件构建模块,被配置为构建SCD文件模型;
报文解析模块,被配置为对接收到的报文进行优化存储和解析,得到报文文件数据;
报文分析模块,被配置为根据得到的报文文件数据,进行在线结果分析。
作为可选择的实施方式,所述分析系统内置有故障检测模块,至少用于检测系统磁盘占比过高故障、网口故障和串口故障;
所述故障检测模块分析出具体故障后,将故障信息写入故障信息文件,并在诊断维护模块上进行可视化的显示。
作为进一步的限定,所述分析系统内置有故障处理模块,用于查看故障信息文件,并至少处理系统磁盘占比过高故障、网口故障和串口故障;
当故障处理模块无法进行故障处理时,则提出故障处理合理化建议,并在诊断维护模块上进行可视化的显示。
作为进一步的限定,如果显示分析系统正常运行,所述诊断维护模块至少用于进行四遥监视、报文监视、下发遥控和遥调。
作为可能的一些实现方式,所述多线程管理模块,具体包括:主程序进程、数据线程及监视程序进程;
所述主程序进程与数据线程通信,数据线程利用各种采集规约对测控装置,保护装置和录波器装置进行数据采集;
将监视程序进程与主程序进程之间通过本地管道进行通讯;
利用独立的监视程序进程来管理分析系统上主程序进程中多线程处理管理和控制操作,具体为:监视和定位主程序进程的多线程管理工作。
作为进一步的限定,所述监视程序进程由分析系统本身的看门狗负责监视启动管理。
作为进一步的限定,每个线程均有一个管道通讯接口,通过管道通讯接口与监视程序进程进行通讯,监视程序进程负责监视管理主程序进程的每一个线程。
作为进一步的限定,监视程序进程作为管道通讯的服务端,主程序进程的每个线程作为管道通讯的客户端。
作为进一步的限定,所述事件分析模块,具体包括事件采集模块、事件服务模块和事件数据库,其中:
所述事件采集模块,包括多个,被配置为远程获取网络装置、工作站、隔离装置的事件信息;
所述事件服务模块,被配置为通过消息总线获取所述事件采集模块上传的事件信息,并根据各事件采集模块的数量和流量实现对各事件采集模块请求的限流或熔断的自动控制,同时获取事件信息,解析并提取事件关键信息,根据预先设定的优先级,依次传输相应的事件信息;
所述事件数据库,被配置为存储并分类所述事件服务模块汇总的事件信息,并提供存取接口,以接收所述事件服务模块的请求,提供需要读取的事件信息。
作为可选择的实施方式,所述事件采集模块包括SNMP微服务模块、SYSLOG微服务模块和微服务模块,所述SNMP微服务模块被配置为对网络接入设备进行网络接入、流量超限事件的事件记录,所述SYSLOG微服务模块对站内工作站的登录、操作等事件进行事件记录;具有自定义事件记录接口的微服务模块对本机的操作、维护、运行事件进行事件记录。
作为可选择的实施方式,所述事件采集模块具有标准SNMP协议接口、标准SYSLOG协议接口或/和自定义的直接日志调用接口。
作为可选择的实施方式,所述事件采集模块采用REACTOR模式,事件发生时能够快速响应,事件先记入缓存,经过分析处理后按时间顺序记入同时,缓存的高等级事件通过带缓存的消息总线发往事件服务模块。
作为可选择的实施方式,所述事件服务模块包括至少两台,一台作为主服务模块,另一台作为备用服务模块,且主服务模块和备用服务模块之间热切换。
作为可选择的实施方式,所述主服务模块和备用服务模块,根据事件数量、时间间隔和主备机状态进行定时或实时同步,保证事件记录的完整性。
作为可选择的实施方式,所述事件服务模块采用本地RPC技术,采用负载均衡的方式,根据事件采集模块的链路数量和流量实现对事件采集模块请求的限流或熔断自动控制,从而实现各事件采集模块的高并发处理、及高效的汇总功能。
作为可选择的实施方式,所述事件服务模块具备主流SQL数据库存取接口,根据实际需求,将事件记录备份到数据库中,进行更加通用化的持久化记录。
作为可选择的实施方式,所述事件数据库包括本地KV库和事件SQL数据库,本地KV库用于存储汇总后的事件分类数据,事件SQL数据库用于存储备份数据。
一种智能站全景数据监测分析方法,包括以下步骤:
获取智能站内各终端设备的监测数据;
构建SCD文件模型,对接收到的报文进行优化存储,对接收到的报文进行解析,得到报文文件数据,根据得到的报文文件数据,进行在线结果分析;
观察分析系统是否正常运行,如果显示运行不正常,则对分析系统进行故障诊断;
获取故障诊断以及与分析系统连接的接入设备的事件信息,解析并提取事件关键信息,根据预先设定的优先级,依次传输/处理相应的事件信息;
展示分析系统采集的监测数据、报文文件分析结果、故障诊断结果和事件信息。
作为可选择的实施方式,对接收到的报文进行优化存储,具体为:
将设定的存储分区划分为多个代码块;
将采集到的报文缓存到一定大小后开始压缩,形成相应的压缩包;
所述压缩包顺序存储在代码块内,每一个代码块的最后写入索引信息;
报文存储过程中,若当前代码块存储已满,则存入下一个代码块中,如果所述存储分区内所有的代码块均已存满;则返回覆盖第一个代码块内存储的内容。
作为可选择的实施方式,根据得到的报文文件数据,进行在线结果分析,包括调取相应的报文文件,根据报文文件中当前帧时间戳和上一帧时间戳的时间差,进行报文完整性分析的过程;具体为:
根据报文文件中当前帧时间戳和上一帧时间戳的时间差,进行报文完整性分析,具体包括:
读取报文文件中的帧总数;
判断当前帧和上一帧内容是否为空,如果不是,计算当前帧时间戳和上一帧时间戳的时间差,并判断所述时间差与设定值之间的差值ΔT;
如果ΔT<A,则数组N中最右端的数值加1;如果ΔT>B,则数组N中最左端的数值加1;如果A<ΔT<B,则数组N中间的数值加1;其中A、B为设定值,A<B;
重复上述过程,遍历报文文件中的所有帧,得到数组N;
建立直角坐标系,根据数组N,绘制柱形图纵坐标,横坐标为A~B,得到能够显示报文离散分析度的图形。
进一步的,计算当前帧时间戳和上一帧时间戳的时间差,具体为:
获取当前帧报文时间戳中的秒和纳秒值,分别计算前一帧报文时间戳和当前帧报文时间戳的秒和纳秒的时间差,然后将秒和纳秒的时间差求和,得到当前帧时间戳和上一帧时间戳的时间差。
进一步的,存储报文文件中所有当前帧时间戳和上一帧时间戳的时间差,所述数组N={i,j,k},其中,i表示使得所述差值ΔT属于ΔT<A范围内的时间差的数量,j表示使得所述差值ΔT属于A<ΔT<B范围内的时间差的数量,k表示使得所述差值ΔT属于ΔT>B范围内的时间差的数量。
作为可选择的实施方式,分析系统通过预置的故障解决脚本,分析故障信息文件里的具体信息,如果此故障能够在故障解决脚本中进行解决,直接进行解决,并更新故障信息文件,并在可视化界面上显示为此故障已解决。
作为可选择的实施方式,如果故障解决脚本无法解决此故障,则提出合理化建议,运维人员依据故障解决脚本提出的故障建议,设计解决方案,进而远程解决故障;当远程无法实现故障及时解决时,将故障类型、故障位置和故障解决方案发送给现场工作人员进行现场解决。
作为可选择的实施方式,当主程序进程的每个线程启动后,首先向监视程序进程发送一次握手消息,监视程序进程收到握手消息后,会立即向此线程发送一次心跳信息,此后会定时的向此线程发送一次心跳信息,线程收到心跳信息后,发送心跳响应,监视程序进程以此来监视主程序进程的每个线程是否正常存活状态。
作为可选择的实施方式,主程序进程中每个线程中可能出错的地方,都会记录相应的运行信息,以日志类型通过管道通讯接口传输给监视程序进程,监视程序进程通过调用日志库接口来记录相关的运行日志;
当某个线程出现问题时,通过查找监视程序进程记录日志,准确的定位到出现异常问题的线程。
作为可选择的实施方式,通过分析系统的看门狗程序进程监视,当启动时,进行定时喂狗操作,当监视程序进程自身发生问题时,就会停止进行喂狗。
作为可选择的实施方式,在展示报文信息之前,对报文进行图形化,具体过程包括:
定义SV报文帧结构体,定义绘制SV波形所需信息的结构体,定义与SV通信链路的应用标识相关联的帧结构体指针数组对应的map变量;
解析SV链路报文信息,获取绘制SV波形所需信息的结构体信息;
建立SV通信链路当前应用标识与结构体指针数组对应的map变量的对应关系;
将获取到的结构体信息保存到对应的帧结构体指针数组中;
以时间为横轴,以SV通信链路各帧中对应的数值为纵轴,绘制相应SV通信链路的波形。
与现有技术相比,本公开的有益效果为:
本公开提供了一种智能站全景数据检测分析技术,通过优化智能站的数据采集、解析、处理和展示过程,实现系统间数据共享、系统间智能联动。全景数据监测与分析系统对数据进行汇集后,通过对数据进行分类、识别,可实现告警分析、故障诊断以及巡检结果判定等功能。提高数据的全景监测与分析,保证信息处理的及时性和准确性。
本公开通过可视化的维护模块,利用预置的故障诊断模块可直接进行故障诊断,并输出结果到可视化界面,不需人工下载日志进行分析,就可以得到具体故障。
本公开提出了一种终端自适应事件监控分析技术,研制了事件监控定位分析系统,实现事件的分布式采集、边缘计算分析和集中报表汇总,提高了事件处理系统部署的灵活性、事件定位的效率准确性和系统整体的鲁棒性。
本公开提出了一种分布式高并发数据引流技术,通过对事件信息进行解析、筛选和定级,将优先级高的事件信息优先传送、显示,以提醒相关人员进行处理,保证事件的及时解决,提高变电站事件、事故的准确定位能力和处理响应能力;实现事件的分级高速记录和序列化处理,提高了大数据并发情况下前端的事件记录效率和事件记录的完整性。
本公开提出了事件在线可配免重启部署技术,实现系统功能与实际环境要求的一致性部署,提高了事件记录模式灵活性、适应性和事件的时间完整性。
本公开在原本对报文数据边采集边存储的处理方式上,建立存储模型,对流量数据进行合理压缩。合理最大化利用硬盘存储空间。能够提高报文存储能力,改善读取方式,减少磁头移动对磁盘的损伤,提高使用寿命,节约成本。
本公开在每一个代码块内写入索引信息,可直接精确到查询柱面,或是减少移动的柱面范围,总的磁头移动会大大减少,性能及磁盘寿命也会因此达到改善。
本公开通过计算所有差值ΔT的数值范围,确定数组N的值,根据数组N绘制相应的柱状图,根据绘制的图形能够高效的分析报文的完整性。
本公开通过SV报文的图形化展示,能够直观的展示SV报文中对应的各通信链路信息,每一个通信链路对应的数据能够在同一个时间坐标轴上全部展示出来,解决了用户需要点击SV链路的每一帧才能看到相应数据的缺点,改善了用户交互性,提高了工作效率。
本公开通过预置的故障解决模块对故障进行诊断并进行解决,对于故障解决脚本可以直接解决的故障,直接解决,不需要人工再去操作,极大的节省了工作量,提高了工作效率。
本公开利用预置的故障解决模块对于一些脚本无法解决的故障提出合理化建议,运维人员依据建议设计解决方案,最终解决故障,保证分析系统稳定长期正常运行。
本公开采用一个独立的监视程序进程来管理分析系统上主程序进程中多线程处理管理和控制操作,独立的监视进程功能单一且只拥有一个主线程,只用来监视,操作,控制和定位主程序进程的多线程管理工作。监视进程与主进程之间通过本地管道进行通讯,保证了实时快速性。监视进程功能单一且只有一个主线程操作,出现问题的概率比较小。
具体实施方式:
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
一种智能站全景数据监测分析系统,如图1所示,包括终端层、通信层、数据分析层和数据展示层,其中:
所述终端层包括智能站内各电气设备的监测设备;
所述通信层将终端层采集的监测信息传输给数据分析层;
所述数据分析层包括:报文记录与分析模块、事件分析模块、诊断维护模块、多线程管理模块和故障录波分析模块;
所述报文记录与分析模块,被配置为构建SCD文件模型,对接收到的报文进行优化存储,对接收到的报文进行解析,得到报文文件数据,根据得到的报文文件数据,进行在线结果分析;
所述诊断维护模块,被配置为提供可视化界面,观察系统是否正常运行,如果显示运行不正常,则对系统进行故障诊断;
所述事件分析模块,被配置为获取故障诊断以及接入的终端设备的事件信息,解析并提取事件关键信息,根据预先设定的优先级,依次传输/处理相应的事件信息;
所述多线程管理模块,被配置为监控系统的各线程的工作状态,监视并定位故障线程;
所述数据展示层,被配置为展示采集的监测数据、报文文件分析结果、故障诊断结果和事件信息。
当然,在部分是实施例中,可以不包括多线程管理模块。
终端层包括但不限于巡检机器人监控系统、辅助设备监控系统和主设备监控系统。
本实施例利用变电站全景监控技术,是在智能站基础上,采用规约转换装置、通信层设备等设备,统一模型配置,数据格式,由规约转换装置数据转换,实现系统间数据共享、系统间智能联动。全景数据监测与分析系统对数据进行汇集后,通过对数据进行分类、识别,可实现告警分析、故障诊断以及巡检结果判定等功能。由于运维人员只需要对智能识别后的数据进行确认,可减少运维人员的工作量,降低系统部署成本,提高资源利用率,进而提高变电站自动化生产水平。
下面依次介绍各模块的具体技术方案。
其中,所述报文记录与分析模块,报文记录与分析的具体过程包括:
构建SCD文件模型;
对接收到的报文进行优化存储;
同时,对接收到的报文进行解析,得到报文文件数据;
根据得到的报文文件数据,进行在线结果分析。
其中,进行在线结果分析包括:
根据得到的报文文件数据,进行在线结果分析,包括调取相应的报文文件,根据报文文件中当前帧时间戳和上一帧时间戳的时间差,进行报文完整性分析的过程;
以及,对于SV报文的图形化显示的过程。
示例性的,数据优化存储的过程具体包括以下过程:
(1)参照图2(a),将设定的存储分区划分为多个代码块;每个存储分区结尾可能会存在不够一个块大小的空间被浪费掉,参照图2(a)和图2(b)中的黑色区域;
(2)将采集到的报文缓存到一定大小后开始压缩,形成相应的压缩包;
(3)参照图2(b),压缩包顺序存储在代码块内,每一个代码块的最后写入索引信息;
(4)若当前代码块存储已满,则存入下一个代码块中,如果所述存储分区内所有的代码块均已存满;则返回覆盖第一个代码块内存储的内容。
目前,出于经济效益考虑,网分装置内基本配置的机械硬盘,而其存储原理依托于硬件组成。所有的盘片都固定在一个旋转轴上,这些盘片一般是以铝为主要成分的片基表面涂上磁性介质所形成,在磁盘的每一面上,以转动轴为轴心、以一定地磁密度为间隔的若干个同心圆就被划分成磁道(track),每个磁道又被划分为若干个扇区(sector),数据就按扇区存放在硬盘上。在每一面上都相应地有一个读写磁头(head),所以不同磁头的所有相同位置的磁道就构成了所谓的柱面(cylinder)。传统的硬盘读写都是以柱面、磁头、扇区为寻址方式。硬盘在上电后保持高速旋转(5400转/min以上),位于磁头臂上的磁头悬浮在磁盘表面,通过磁头控制器在不同柱面之间移动,对不同的柱面进行读写。
在之前的存储方式中,为了保证大量的报文数据能写入存储和删除,每次操作的物理地址是不可知的。对于需要磁头寻道的存储介质来说,随机寻道会消耗大量时间,效率低下。
如果在现场发生意外,文件系统的索引在中断时发生损坏,则可能整个扇区的数据都会丢失,对网分装置的稳定性影响是极大的。
硬盘空间有限,在长时间不间断的报文采集存储后,内存空间需要频繁的覆盖擦写,极易出现磁盘表面被划伤,磁头损害的情况,这对盘上存储的数据带来的不可修复的后果。
本实施例方式在对报文文件进行存储时,模拟文件系统,对报文进行流式存储,将报文进行处理后存储,提高存储能力,改善读取方式,减少磁头移动对磁盘的损伤,提高使用寿命,节约成本。
本实施例方式中,将采集到的报文缓存到一定大小后开始压缩为zip(1.2…n),此过程区别于原本的边采集边存储的模式,一方面有利于最大化合理利用磁盘存储空间,另一方面为建立索引区间实现便利查询提供基础。
将zip信息顺序排列在代码块block(1.2…n)内,每个block内包含多个zip压缩包。压缩后的报文并不会全部存满block,在block的尾部留有一小部分空间用于建立索引信息区间,该区间写入相应block的索引信息,索引信息包含报文长度、起始时间和结束时间。由于索引区间的存在,在报文查询时可减少寻道时间,减少磁头的移动次数,提高性能。
对于磁盘,访问时间包括两个主要部分:
寻道时间:是磁臂移动磁头到包含目标扇区的柱面的时间;
旋转延迟:是磁盘旋转目标扇区到磁头下的额外时间;
磁盘带宽是传输字节的总数除以从服务请求开始到最后传递结束时的总时间。通过管理磁盘I/O请求的处理次序,可以改善访问时间和带宽。
每当进程需要进行磁盘I/O操作时,它就向操作系统发出一个系统调用。这个请求需要一些信息:
这个操作时输入还是输出;
传输的磁盘地址是什么;
传输的内存地址是什么;
传输的扇区数是多少;
例如:考虑一个磁盘队列,其I/O请求块的柱面顺序如下:
78,123,24,122,13,154,63,66。
如果磁头开始位于柱面52,那么它首先从52移动到78,接着再到123,24,122,13,154,63,最后到66,磁头的移动柱面总数为514。从24到122再到13的这种较大范围移动可以说明磁头的移动频繁及不合理性。当经过压缩后,调取索引信息查询,可直接精确到查询柱面,或是减少移动的柱面范围,总的磁头移动会大大减少,性能及磁盘寿命也会因此达到改善。
示例性的,参照图3,报文数据分析的过程主要包括以下步骤:
(1)获取报文文件,读取报文文件中的帧总数M;
(2)定义帧结构体,为所述的帧结构体定义一个指针;
(3)判断报文文件第一帧结构体的指针是否为空,如果不是,进入步骤(4);否则,进入步骤(8);
(4)判断当前帧指针和上一帧指针是否为空,如果不是,计算当前帧时间戳和上一帧时间戳的时间差,并判断所述时间差与设定值之间的差值ΔT;进入步骤(5);否则,进入步骤(8);
(5)如果ΔT<A,则数组N中最右端的数值加1;如果ΔT>B,则数组N中最左端的数值加1;如果A<ΔT<B,则数组N中间的数值加1;其中A、B为设定值,A<B;
(6)重复步骤(4)-(5),直到当前帧遍历完报文文件中所有的帧结构体;
(7)建立直角坐标系,根据数组N,绘制柱形图纵坐标,横坐标为A~B,得到能够显示报文离散分析度的图形;
(8)结束。
在变电站的通信中,61850报文是应用比较广泛的报文文件,下面基于61850报文文件,对本实施方式的方法展开具体说明。当然,下述过程对于其他通信报文的完整性分析同样适用。
步骤1,开始该程序流程;
步骤2,读取报文文件或者由下位机上送的61850报文;
步骤3,读取报文中的帧总数,并记录该总数M;
步骤4,定义帧结构体,该结构体包括帧类型、帧长度,帧时间戳,保留位,帧数据内容等;为所述的帧结构体定义一个指针;首先定位到报文起始位置,若第一帧报文结构体指针不为空,进入步骤5;反之,说明该报文不存在;进入步骤11;
需要说明的是,帧结构体的指针为空说明该帧结构体的帧数据内容为空,也就是当前报文没有对应的内容或报文不完整。
步骤5,备份前一帧内容,获取当前帧报文时间戳中的秒和纳秒,计算前一帧报文时间戳和当前帧报文时间戳的秒和纳秒的时间差,然后分别将秒和纳秒的时间差求和,得到当前帧时间戳和上一帧时间戳的时间差;
步骤6,遍历所有帧中当前帧和前一帧报文的时间差,判断当前帧指针和上一帧指针是否为空,若不为空,将所有的时间差值与250微秒的进行比较:
若差值大于10,则数组N中最右端的数值加1;若差值小于-10,则数组N中最左端的数值加1;若差值处于-10-10之间,则数组N中中间位置的数值加1。
若为空,进入步骤11;
本实施例中,如果上述的差值处于-10-10之间,说明该报文属于正常报文,无丢帧,反之出现丢帧。
步骤7,缓存报文文件中遍历所有当前帧得到的所有差值ΔT,差值ΔT的计算公式为:(当前时间戳T2-上一帧时间戳T1)/1000-250,确定所有差值中的最大值和最小值;
步骤8,将帧总数、差值的最大值和最小值,以及数组N缓存在一个结构中;
步骤9,利用Qt绘图工具,建立纵坐标(%)和横坐标(时间均匀度-10~10);
步骤10,根据差值数组N,绘制柱形图形纵坐标,横坐标为-10~10,纵坐标为数组N中的数值;柱形图可以显示报文的离散分析度,若最中央位置为98%以上,则报文完整性良好,反之,有丢帧情况。同时,显示差值的最大值和最小值。
步骤11,结束该流程。
本公开实施方式的设计方法思路简单,代码可读性强,能准确判断报文的误码率,重用率高,能大大减少维护工作,降低了维护成本和节省了资源。
如图5所示,作为一种实施方式,通过诊断维护模块的可视化界面,观察系统是否正常运行,如果显示运行不正常,则进行故障诊断。
所述系统内置有故障检测模块,至少用于检测系统磁盘占比过高故障、网口故障和串口故障。
所述故障检测模块分析出具体故障后,将故障信息写入故障信息文件,并在诊断维护模块上进行可视化的显示。
所述系统内置有故障处理模块,用于查看故障信息文件,并至少处理系统磁盘占比过高故障、网口故障和串口故障。
当故障处理模块无法进行故障处理时,则提出故障处理合理化建议,并在诊断维护模块上进行可视化的显示。
如果显示系统正常运行,所述诊断维护模块至少用于进行四遥监视、报文监视、下发遥控和遥调。
具体的操作过程包括:
步骤如下:
对系统的运行进行远程可视化实时查看,当正常运行时,进行系统四遥监视、报文监视、下发遥控和遥调;
当运行不正常时,通过系统内预置的故障检测脚本,进行故障诊断,将故障具体信息写入故障信息文件,并进行可视化显示。
系统通过预置的故障解决脚本,分析故障信息文件里的具体信息,如果此故障能够在故障解决脚本中进行解决,直接进行解决,并更新故障信息文件,并在可视化界面上显示为此故障已解决。
如果故障解决脚本无法解决此故障,则提出合理化建议,运维人员依据故障解决脚本提出的故障建议,设计解决方案,进而远程解决故障。
当远程无法实现故障及时解决时,将故障类型、故障位置和故障解决方案发送给现场工作人员进行现场解决。
如图6所示,系统最重要的就是主程序进程,通过采集数据线程,利用各种采集规约对下面的测控装置,保护装置和录波器装置等进行数据采集,采集的数据可以是遥测,遥信,遥脉,定值和录波文件等数据信息。
具体的数据线程的处理为:
采集上来的数据交给实时数据存储线程处理,将数据以键值队格式存储到实时数据库中。
转发数据线程,主要根据配置的转发表数据从实时库中读取相应的数据,然后转换成相应的规约帧格式数据,转发给调度主站。
对于一些特殊的合成的需要参数计算的数据,计算量数据处理线程主要负责从实时库中取出相应的数据,进行相应的计算,如果调度需要,则将数据传递给转发数据线程,最后传递给调度。
同时后台数据处理线程也可以从实时数据库中读取所需数据,将数据传递给后台进行处理.
同理调度也可以下发遥控等命令操作,将命令传递给采集数据线程,进而下发到具体的某个装置。
系统通过主程序进程的各个线程完成各自功能来实现,由于每一个线程完成的功能比较独立且相对复杂,线程个数又比较多,所以必须对每一个线程进行监控记录,否则一旦出现问题,很难进行定位查找问题。
每个线程都有一个管道通讯接口,通过管道与监视程序进程进行通讯。监视程序进程负责监视管理主程序进程的每一个线程。
通讯的方式如要如下:
监视程序进程作为管道通讯的服务端,主程序进程的每个线程作为管道通讯的客户端。
当主程序进程的每个线程启动后,首先向监视程序进程发送一次握手消息,监视程序进程收到握手消息后,会立即向此线程发送一次心跳信息,此后会定时的(每隔10秒)向此线程发送一次心跳信息,线程收到心跳信息后,发送心跳响应。监视程序进程以此来监视主程序进程的每个线程是否正常存活状态。
具体实施时,主程序进程的每个线程与监视程序进程之间交互的每个消息中,都有一个标识自己线程的唯一id标识,就是通过这个id,监视程序来区分不同的线程发过来的消息。比如主程序进程叫做A,他下面的各个线程叫A1,A2,A3。监视程序进程叫B。双方是否都能收到,是根据B来判断的,双方约定一个超时时间T0,启动时,A和B同时启动的,A1A2A3分别会向B发送一条握手消息,如果B超过T0时间没有收到A1的握手消息,就认为A1线程出问题了,同理其他线程一样处理;运行时,B会定时向A1,A2,A3发送心跳消息,然后A1A2A3向B发送心跳响应消息,当B发送完在T0时间内收不到相应进程的响应时就认为出问题了。不回应时,就认为出问题了,出问题了以后,就不正常了,停止运行,需要查找日志,解决BUG。
主程序进程中每个线程中可能出错的地方,都会记录相应的运行信息,以日志类型通过管道通讯接口传输给监视程序进程,监视程序进程通过调用日志库接口来记录相关的运行日志。
具体实施例子中,可能出错的地方就是程序代码实现方式或者实现逻辑可能出错的地方,比如申请内存失败,下标越限,数组数据量超过特定限值,处理耗时的操作等等。
当监视程序进程收不到某个线程的心跳响应消息,则判断该线程出现问题,通过查找监视程序进程记录日志,就可以准确的定位到出现异常问题的线程,从而解决BUG。
监视程序进程,主要通过系统系统的看门狗程序进程监视,当启动时,进行定时喂狗操作,当监视程序进程自身发生问题时,就会停止进行喂狗。因为此程序完成的功能单一简单,且有且只有一个主线程,故不需要复杂的线程管理,就可以轻易的定位到问题。
如图7所示,事件分析模块,包括采集前端和服务模块端。
采集前端包括多个事件采集模块,被配置为远程获取网络装置、工作站、隔离装置的事件信息;
服务模块端包括事件服务模块和事件数据库,其中:
事件服务模块,被配置为通过消息总线获取所述事件采集模块上传的事件信息,并根据各事件采集模块的数量和流量实现对各事件采集模块请求的限流或熔断的自动控制,同时获取事件信息,解析并提取事件关键信息,根据预先设定的优先级,依次传输相应的事件信息;
事件数据库,被配置为存储并分类所述事件服务模块汇总的事件信息,并提供存取接口,以接收所述事件服务模块的请求,提供需要读取的事件信息。
具体的,事件采集模块具备功能服务接口:标准SNMP协议接口、标准SYSLOG协议接口以及自定义的直接日志调用接口。分别能够对网络装置、工作站、隔离装置等具备上述标准规范的站内设备进行远程事件采集,从而可对站内的安全事件进行日记记录;提供的日志记录接口可对本机上的人机操作、维护、运行等事件进行事件记录,提供可开关的调试接口,供初期运维人员调试使用;因为采用微服务模块化设计,接口和功能模块易于扩展,可根据需要对其他类型的装置进行事件记录。
这些接口通过微服务模块的形式提供,可部署在采集装置端或单独设置微服务模块,形成事件采集前端,可有针对性的进行相关日志的采集;如SNMP微服务模块针对路由器、网关机等设备进行网络接入、流量超限等事件的事件记录,SYSLOG微服务模块对站内工作站的登录、操作等事件进行事件记录;具有自定义事件记录接口的微服务模块对本机的操作、维护、运行等事件进行事件记录;
通过上述部署方式,实现了微服务的分布式部署和各种类型事件的采集,一定程度上实现了事件处理的分流,避免大量突发数据时的处理和记录压力;采集前端采用REACTOR模式,事件发生时能够快速响应,事件先记入缓存,经过分析处理后按时间顺序记入KV数据库(这样的数据库体积小,对采集前端的软硬件要求低,且读写速率很高),同时,缓存的高等级事件通过带缓存的消息总线发往事件服务模块。缓存+KV库的方式保证事件记录的快速高效,带缓存的消息总线传输技术保证事件传输的完整性;
采集策略、优先级、传输方向、事件类型等配置项事先配置,通过配置项对事件信息进行上送过滤,可保证事件的优先级上送和传输带宽。
事件采集前端记录的事件,通过消息总线汇集到事件服务模块,形成站内所有相关事件的汇总。事件服务模块采用本地RPC技术,如事件接收采用线程池+负载均衡的方式,功能模块的管理采用服务发现技术及RPC服务治理技术,根据采集前端的链路数量和流量实现对采集前端请求的限流、熔断等自动控制,从而实现各采集模块事件的高并发处理、及高效的汇总功能;汇总后的事件分类记录到主机的本地KV库中,为后续的站内事件分析提供全局数据基础。
对于事件采集前端,先进行各事件采集模块的加载配置,实现初始化,然后进行主备选择,如果选择事件服务模块(主机)则将其注册到消息总线,实现监听,如果监听成功,则等待事件的发生,采集事件。如果监听不成功,则进行主备切换,继续等待事件的发生,采集事件。
同时事件服务模块具备主流SQL数据库存取接口,可根据实际需求,将事件记录备份到数据库中,进行更加通用化的持久化记录。
两个事件服务模块具备热备功能,可根据事件数量、时间间隔、主备机状态进行定时或实时同步,保证事件记录的完整性。
如图8所示,对事件服务模块进行加载配置,实现初始化,确认是否使用主机,如果是,则将主机注册到消息总线,如果成功则继续后续处理,如果不成功则进行主备切换,切换至备用机上,进行后续处理。后续处理包括负载均衡,以及发现功能模块进行相应的加载和启动,等待事件发生,如果有事件发生,则确认是否是高并发,如果是,则进行动态扩容,如果不是,则进行事件的筛选、分类和定级处理,传输相应符合预设条件的信息进入数据库中备份。
如果有不符合预先设定条件的时间信息,则创建进行实例信息,加入服务管理,进行负载均衡和事件处理,按照时间顺序,合并数据库中的信息。
如图9所示,采用微服务架构,支持分布式部署,易于扩展和移植;分布式部署时可配置热备功能。
采用高速缓存+二级缓存技术+本地数据库的记录方式,采用高速查找引擎技术+缓冲式消息总线技术,事件记录、查找和处理性能高,能够满足高速、高并发等情况下事件记录的快速实时性和完整性需求,支持事件记录永久存储,可根据配置时间间隔自动覆盖,保证存储容量不越限。
同时,事件记录参数可配置,具体表现为:
可配置监控装置及装置类型,记录该装置某种类型的事件;
上送平台及上送策略可配置,能够记录事件的源地址和目的地址,来源去向都可记录,保证事件流向的记录完整性;
事件记录等级、事件等级、记录时间间隔、记录容量、记录文件格式等都可以根据实际需求灵活配置,具有审计、操作、事件等类型日志。
系统预留日志事件上送接口,支持标准化的日志上送协议(syslog等),上送协议可配置,支持日志导入导出,可导出为普通文本文件何csv文件及报表,支持日志导出文件的远程上传。
具备基本的权限鉴别功能,可配置远程用户是否具备浏览、下载、修改、删除的用户权限,事件汇集后分析处理,可进行按照设备类型、日志类型、事件类型、事件等级等分类分析、处理,生成事件报表,便于快速定位某一事件。
对记录效率要求高的大型应用场合,可将各个服务模块分别部署到不同的主机上,定制配置文件,实现该主机的功能定制,分别记录不同等级、不同类型的事件。完全部署到单台主机上则免去远程数据传输,具有更高的记录和分析效率。
各个服务模块通过消息总线支持分布式集群和热备功能,保证每台主机保存有完整的事件记录。
通过配置后台主机地址、用户权限等,可将本地事件记录按过滤条件招到后台主机上,实现远程事件浏览,也可将事件记录文件上传到后台主机。
综上,本公开可以通过优化系统的各部分环节,进而优化智能站的数据采集、解析、处理和展示过程,提高数据的全景监测与分析,保证信息处理的及时性和准确性。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。