APP下载

网络综合监控及智能运维平台的构建与研究

2019-01-11索宸耀王旭东

智能计算机与应用 2019年1期
关键词:服务器监控模块

索宸耀, 陈 博, 张 斌, 王旭东

(郑州大学 软件与应用科技学院, 郑州 450000)

0 引 言

随着气象信息业务的发展及气象观测体系的建立,多地气象部门已经逐步搭建了气象网络监控系统,即能够提高气象信息网络工效和自动化的信息平台[1]。目前,相对成熟应用的在线检测和带电检测技术有天气检测传感器、服务器机房、网络交换机等设备。这些设备都需要人工干预,不能实现自动处理,且各设备间的数据不能有效整合。同时综合监控平台还存在着综合监控能力弱、智能化水平低、自动化效率差、故障分析不足等缺陷。因此,需要建立功能齐全的网络监控平台,从而减轻人员工作量, 避免因故障处理不及时而产生的安全隐患。针对上述状况,研究中采用客户端网络通信框架OkHttp、Java序列化/反序列化、Gson、Activity、开源数据库LitePal、网络服务器(Tomcat8.0)以及Android和Web服务器数据同步(HTTP)等技术,搭建一套完善的网络综合监控及智能运维平台,从而实现监视信息系统运行健康高效、数据传输及时准确、设备日常维护规范标准、机房环境参数达标稳定、出现问题准确报警并提供快捷实用的排除方法等,有效填补了现有系统的不足之处。

1 核心技术简介

1.1 基于HTTP、TCP/IP协议的设备数据智能获取

由于设备数量庞大,人工检测会有大量的时间浪费,且不能及时检测出设备故障。为避免设备故障导致工作滞留问题,研究采用了基于HTTP协议、FTP协议的实时数据获取技术来获取设备的HTTP、FTP数据[2],实时查看所有监控设备和接口的工作状态、响应时间、链路负载等信息,判断设备状态是否良好,是否给予处理。分析各类信息系统和设备状态维护数据,进行信息数据的统计和挖掘,增加各类数据关联性,定期生成历史报表,得出共性问题,从而减轻人工监控工作量。

在获取数据过程中,Server端的守护程序始终在HTTP端口等候Client端的连接请求,当Client端向Server端发起一个连接请求时,Client和Server之间经过3次握手建立连接。守护程序接收到Client请求后,对其进行解析,读取URL,映射到对应的hosts.ini配置文件中。守护程序读取配置文件作为HTTP响应消息中的实体返回给Client。守护程序读取配置文件时,利用HTTPClient.GetMethod函数请求获取设备HTTP连接状态,利用sun.net.ftp.FtpClient函数建立指定设备、指定端口上的FTP服务器的连接,同时利用Ping命令使用ICMP回显请求报文和ICMP回显应答报文来测试主机之间连通性,用来诊断网络连接状态,最后利用Java序列化技术避免大量设备请求并发,实现持久化保存数据,便于统计分析[3]。

1.2 基于Linux的设备故障处理

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统[4]。能运行主要的UNIX工具软件、应用程序和网络协议。支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux是构成自由软件协议基础的一种操作系统,完全满足网络对操作系统多用户、多任务、多线程的要求。Linux本身拥有非常丰富的命令,可以帮助用户完成很多系统工作。

在获取到设备连接状态和网络状态后,若发现故障,客户端将会发起处理故障请求,服务器接收到请求之后,会运行Linux重启命令。Linux操作系统在登录系统或者关闭系统时都要调用系统设置的运行级别, 才能进行相关的操作。本系统运用的是shutdown -r now 命令,关闭计算机并关闭电源立刻重启[5]。

获取设备数据和处理的流程如下:

(1)管理员登陆后台向服务器发送设备状态查询请求。

(2)服务器接受请求后读取相应的配置文件。

(3)服务器调用函数获取设备的HTTP、FTP连接和网络连接状态。

(4)若连接正常,则将数据传送之后台界面;若连接异常则利用Linux编程技术进行重启命令,使得异常设备进行重新启动。

(5)若设备重启后故障没有排除,则在网络监控页面中进行准确报警。

(6)进行信息统计分析,生成历史故障报表,得出设备常出故障原因。

获取设备数据和处理过程如图1所示。

图1 数据获取和处理过程

2 系统架构

鉴于检测目标设备的特殊性,本系统在故障检测模块采用了C/S架构[6],同时在信息管理模块采用了B/S架构[7]。这样做的好处在于:故障检测面向的是一类设备,更加具有针对性,同时利用C/S架构可以除去中间环节,更加快速,符合监测的特性;在信息管理模块采用B/S架构是为了便于维护,同时可以使用linux系统减少系统上的开销,由于B/S还具有0安装的特点,在客户端只需要一个浏览器即可使用系统,减少了系统部署的开销。

由巡检人员将不同设备的状态信息和监测到的数据发送至服务器,由服务器进行加工整理之后同步到数据库上,并将这些加工过后的信息显示在终端上。与此同时,系统定时对这些气象设备进行监控,如果期间设备发生异常,则系统将会按照预定的方式对设备进行自动处理,若处理无效或判定超出系统自动处理的能力范围,系统将会通知管理人员进行报修[8]。系统架构如图2所示。

图2 网络综合监控和智能运维平台架构

Fig.2Networkintegratedmonitoringandintelligentoperationandmaintenanceplatformarchitecture

3 系统功能模块

信息管理模块是对工作人员或者故障处理模块采集的数据进行存储和处理,并反馈在终端上。故障处理模块会定时监控设备的运行情况,对出现问题的设备进行自动处理,如果判定故障不能由系统自动解决,则将这个故障通过短信或者反馈界面提醒管理人员报修。本系统分为2个模块,如图3所示。

3.1 信息管理模块

信息管理模块主要负责对于采集来的气象信息和自动检测到的设备故障进行处理分析,存入数据库,并根据不同的用户权限反馈不同的信息到PC和移动端上。信息管理模块处理的数据包括:设备的状况、工作人员的信息、设备的故障记录和设备故障的详细信息。该模块的主要功能有:权限管理、数据处理、图标生成、数据反馈。

图3 网络综合监控和智能运维平台整体框架

信息管理模块解决了纸质记录设备状态、检测和故障信息的问题,将纸质记录的数据经由信息模块进行存储和处理,避免了使用纸质表格记录数据。同时还可以由系统生成报表展示给管理员,而不需要工作人员进行人工的汇总整合。

3.2 用户权限管理

根据各类用户对于系统的需求和信息安全性考虑,本系统将系统用户划分为4种角色,分别为:游客、值班员、管理员和超级管理员。其中游客只具有访问、查看主界面信息的权限;值班员具有将气象设备数据和检测数据录入和查看的权限;管理员除了具有值班员的权限之外,还具有查看人员信息的权限;超级管理员除了具有管理员的权限之外,还可对管理员的信息进行修改、添加和删除。这4种角色的划分优点是:使各类人员各司其职,同时使信息尽可能得到安全上的保障。

3.3 图表生成、数据处理与反馈

系统接收工作人员采集的气象设备状态和监测数据,将这些数据通过反序列化以及其它处理存入数据库,并将经过处理的数据反馈在终端上,由Web前端程序通过amcharts可视化插件或者移动端通过smartchart生成表格,大大增强数据的直观性,同时比传统方式更加便捷。

3.4 故障检测模块

故障检测模块的功能主要包括故障检测、故障处理、故障记录、故障分析和故障预警。系统对检测到的不同设备的不同故障进行不同的处理。其中详细参数和处理策略可以一定程度上经由配置文件的修改进行约定。自动故障处理指的是网络故障,硬件故障将由系统通知维修人员进行实地的维修。

3.4.1 故障检测

鉴于本系统主要用于检测和处理网络故障,本系统采用以下检测策略:

(1)命令法。即在本机或者发送命令到指定计算机并执行。根据命令执行的输出来判断计算机是否故障和故障类型,进而对不同的故障进行不同的响应。比如要检测目标设备的连通性,就在本机执行ping命令,根据得到的ping命令的输出判断和目标机器是否联通[9]。

(2)请求法。即在本机和目标设备之间建立网络连接。通过发送指定的http、ftp等协议的请求,目标设备收到请求后的返回信息来判断目标设备是否发生故障和目标设备的故障类型。如向目标设备发送http请求或者ftp请求等,通过目标设备的response来判断目标设备的故障类型[10]。

3.4.2 故障处理

检测到故障之后,系统根据上述方法中传来的命令输出或者请求回复进行网络故障类型判断。若判断为可以处理的类型,就向目标设备发送命令,经目标设备执行命令后,随即进行下一次的检测,设备确认状态无误后,结束故障处理的流程。如果故障被判断为超出系统能力的故障,或是系统采取自动处理措施后故障仍然存在,此时系统将向PC终端发出警报或者向管理人员发短信提醒。

需要检测的故障设备和故障的处理方式均可通过配置文件进行规定。这大大提高了系统对于故障处理的灵活性。

3.4.3 故障记录

检测到设备故障之后,系统将此次故障的时间、地点、设备标识和故障种类等信息记录下来,以便于系统对其进行分析处理。

对于系统无法处理或问题不明故障,工作人员在检修之后还可以对故障信息进行详细的修改,完善故障记录的信息。

3.4.4 故障分析

系统检测到设备故障之后,将相关故障信息经过反序列化存储在数据库中。再通过分析综合生成历史报表。故障历史报表中往往可以发现一些设备故障规律,如在哪一地区的设备易出故障,或者哪一个设备近期故障的次数过多,这些规律可以提醒使用者及时检修或者更换设备。

系统对故障信息记录生成历史报表并反馈给工作人员的处理过程,将会大大减少工作人员的工作量,提高工作效率,提高气象工作的自动化程度。

3.4.5 故障报警

当系统检测到无法处理的故障,或对故障采取的自动检测措施无效时,系统会将故障信息通过PC端网页显示或者短信的形式提醒工作人员,进行检修。在一定程度上减少了工作人员的检修频率和通信成本,减少了工作量。

4 系统实现

4.1 客户端实现

工作人员通过客户端查看信息时,服务器端从数据库中提取数据,在服务器端包装成Java对象处理,再将对象序列化为json字符串,通过http协议传输给客户端。在对前端的反馈信息编码中,使用Jquery、Ajax、Bootstrap编写前端界面,利用Jquery的轻量级特点和其中的DOM操作的封装。此外,Jquery将所有的Ajax操作封装到一个函数$.ajax()里,使其在处理Ajax的时候,能够专心处理业务逻辑而无需关心复杂的浏览器兼容性和XMLHttpRequest对象的创建和使用问题。在Web网页中使用amcharts可视化插件,在移动端使用smartchart技术生成图表。信息统计界面如图4所示。

图4 信息统计界面

4.2 服务器实现

在信息管理模块中,着重解决了气象工作人员采集信息的接收、整合、处理和持久化至数据库服务器中的问题。由于工作人员采集数据决定了在短时间内没有大量的数据发送到服务器端,服务器端面对的并发量是非常小的。

综上,在服务器操作系统上选取Linux(centos)作为操作系统,使用tomcat8作为服务器。信息由工作人员采集,并在客户端填写。服务器端轻量级框架spring mvc编写后端代码对反序列化的采集数据进行处理,最后通过轻量级持久层框架mybatis写入数据库中。完成整个信息采集的步骤。Mybatis避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

在系统维护上,采用了ini4j框架和Java内置的.properties解析技术分别解析.ini和.properties配置文件,使工作人员可以根据自身需要配置系统特性。同时使用日志框架log4j生成日志,方便调试系统异常。

5 结束语

本文对于传统网络监控系统综合监控能力弱、智能化水平低、自动化效率差、故障分析不足等问题深入研究,利用客户端网络通信框架、权限管理技术、数据库技术、网络服务器以及Android和Web服务器数据同步等技术,搭建出一套完善的网络综合监控及智能运维平台。通过统一的监控平台使得监控维护工作从被动转向主动,实现全方位、智能化监控并提升了故障处理时效,大大提高了监控效率减轻了人工量。该系统是提升气象信息网络综合监控的智能化、自动化水平的有效工具。

猜你喜欢

服务器监控模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
冬奥项目训练监控方法的研究——TRIMP、sRPE在短道速滑训练监控中的应用
2018年全球服务器市场将保持温和增长
通信电源监控系统在电力通信中的应用
GPS/DR/GIS技术在基于GSM—R列车监控系统中应用
必修模块相关知识过关训练
侦察兵
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵