夏 林
(中国民用航空中南地区空中交通管理局广西分局,南宁 530000)
随着民航业务的发展,信息化建设脚步的加快,业务系统对网络环境、主机平台、生产环境状态等依赖程度越来越高,运维日常维护越来越复杂,用户比运维人员先发现故障,处理故障无头绪,无法快速定位故障。目前民航清算系统每天通过设备维护人员定期巡视检查硬件和软件的状态,缺少对各硬件、软件信息的实时监控系统,无法及时发现运行隐患及故障,无法快速进行故障定位、故障分析。
基于SNMP(simple network management protocol)和WMIC(windows management instrumentation command-line)的民航清算监控管理系统是对清算系统的软件模块、硬件模块的运行情况进行监视和控制的应用系统,有效提高监测和管理业务系统的性能。该系统通过主机的管理信息库(management information base,MIB)提供CPU、内存、磁盘利用率等对象信息,通过WMIC 获取以及控制Window 系统的设备进程运行情况,对清算系统进行监测、分析,实现监控、管理、告警,充分发挥技防的作用,实现对清算系统全天24小时不间断跟踪。
本系统采用基于Java 语言的C/S 架构进行系统搭建,能实时远程监控连接在网络上清算服务器、终端设备参数和运行状态,主要包括:CPU 利用率、内存利用率、磁盘利用率、服务器和终端的进程、服务器主备状态及主备切换等[1]。系统通过多线程自动定期完成各设备的CPU 利用率、内存空间、磁盘空间、进程运行情况的原始数据收集、处理、存储、显示,实现监控系统重要性能状况,保证设备和连接容量不会被过度使用到不利影响的程度。系统主要分为性能数据采集模块、性能数据分析处理模块、终端显示模块、告警计算模块和控制与管理模块。性能数据采集模块主要使用SNMP协议读取设备的CPU、内存、磁盘空间等原始数据以及使用WMIC 读取各服务器及终端的服务进程运行情况;性能数据分析处理模块主要对收集到的原始数据进行分类、过滤、计算;告警计算模块主要对解析后数据进行过滤、计算,根据用户自定义的设备资源的利用率和进程运行情况,设计相应的阈值,并进行告警计算后发出告警;控制与管理模块对各服务器和终端的关机和重启、进程的关闭、打开和重启。终端显示模块主要将数据信息、告警信息通过图形化界面呈现出来,并提供有效的解决方案。系统的结构框图如图1所示。
图1 系统结构图
数据采集模块设计是通过SNMP协议的采集方法实现。采集原理为基于SNMP 的GET 机制,结合标准的网络管理信息库(MIB),使用多线程技术固定时间按照被管设备的MIB 对象标识发出SNMPGETNEXT 请求,等待消息回来,成功完成SNMP查询操作[2],对返回的PDU进行解码获取所需数据,并将数据在自定义变量中依次查询各项MIB 对象标识,以此来获取服务器或者主机的CPU 使用率、内存、磁盘空间等原始信息,将这些信息存储在自定义哈希表中。基于WMIC 命令,使用多线程技术固定时间获取相关服务进程运行情况(FIPSexport. exe、NewAirClearManagementSysDataParse. exe、 Data-ACQS.exe、DadaProc.exe)。其流程图如图2所示。
图2 原始数据采集流程
性能数据分析处理模块主要是接收主动采集返回的各类动态数据,对各数据要素进行分类、计算和服务器主备状态判断。本模块可设置黑白名单,对黑名单的被管设备的数据进行过滤丢弃不处理[3],对白名单的被管设备的CPU、内存、硬盘数据项进行计算、转换成CPU 利用率、内存利用率、硬盘利用率后发送至终端显示模块和告警计算模块。其流程图如图3所示。
图3 原始数据处理流程
本模块还对清算服务器主备用状态进行判断和监测。程序首先定义1个局部变量Num,其含义为服务器进程数量,检测两台服务器是否存在进程“NewAirClearManagementSysDataParse. exe”,如相关进程存活,则Num数量加1,输出时间及进程状态到日志,反之只输出时间及进程状态到日志。当服务器只有一个进程NewAirClear-ManagementSysDataParse.exe 存在并且进程状态正确,说明清算服务器运行正常(即一台服务器处于在线状态,另一台处于离线状态),正常状态发送至监控终端显示,绿色底色代表服务器主用,黄色底色代表服务器备用,如图4 所示。反之,则说明清算服务器运行状态异常(两台均在线或离线状态),异常状态传递至告警计算模块[4],其流程图如5所示。
图4 服务器主备状态显示
图5 主备状态判定流程
系统的告警计算模块是对采集的数据进行分类、计算,根据类别不同进行相应告警。告警计算模块分为硬件资源模块和软件运行模块。硬件资源告警模块实现对CPU 利用率、内存利用率、磁盘空间利用率异常指标满足告警计算后发出告警,如图6所示。软件运行模块实现对各服务器、终端的进程异常退出或者进程占用率超出阈值后发出告警。告警计算是由线程触发的,每个定时周期(5分钟)性能数据分析处理后的性能指标数据都会进行告警计算、判断。
图6 主备状态判定流程
告警设计流程分为告警检测和告警恢复。通过告警检测实现精准反映设备故障;通过告警恢复可以进行告警消除。告警检测流程介绍如下:①判断当前指标是否处于告警状态;②是则结束处理;③判断是不是达到告警检测次数变量;④没有达到则告警检测次数变量加1;⑤达到则发出告警信息,并且将状态置为告警状态。告警恢复流程介绍如下:①判断当前指标是否处于恢复状态;②是则结束处理;③判断是不是达到告警检测次数变量;④没有达到则结束处理;⑤达到则发出告警恢复信息,并且将状态置为恢复状态。
告警计算方法使用静态阈值检测方法。基于CPU 利用率属于抖动类指标,当性能计算指标大于或者等于阈值,满足检测方法。设置告警检测次数变量为3,告警检测触发条件是“3个采集周期满足3 次检测方法”,告警恢复检测的触发条件是“3 个周期少于3 次检测算法”。满足告警检测触发条件后系统自动声音告警、红色警示。其算法见算法1。
算法1CPU利用率告警算法
输入:服务器或主机的CPU利用率
输出:WarnList
初始化各利用率告警变量为0
通过各利用率达到预设阈值,告警检测次数变量加1
循环检测后续2个周期,forifrom 0 to 2
当告警变量等于3,保存在Warnlist
当告警变量小于3,告警变量重新置0
返回
基于磁盘空间利用率、设备内存利用率、进程是否退出、进程占用内存空间属于非抖动类指标,设置告警检测次数变量为1。当性能计算指标大于或者等于阈值,满足检测方法,系统自动声音告警、红色警示。其算法见算法2。
算法2内存、磁盘空间利用率、进程退出告警算法
输入:内存、磁盘空间利用率、进程状态
输出:WarnList
初始化各利用率、进程告警变量为0
通过各利用率达到预设阈值或者进程不存在,告警检测次数变量加1
保存在Warnlist
返回
控制与管理模块是基于WMIC 指令实现对网络中被管终端的进程关闭或者启动、主机的重启、关机等[5],其控制人机界面如图7 所示。监控管理终端创建Telnet客户端,与被管终端建立远程通信并确认其工作状态,若被管终端在线,则向被管终端发送封装好的控制指令(关机、主机重启、进程重启、进程关闭、主备切换),被管终端接收控制指令。当控制指令执行完后,监控管理终端发送断开通信连接的指令;若被管终端离线,则向监控终端发出“被管终端无法建立远程连接”的告警提示,其工作原理如图8所示。
图7 控制人机界面
图8 控制与管理示意图
终端显示模块主要功能是单个清算设备状态查询,提交性能分析处理后的结果,并以图形化方式显示,便于查询性能结果,如图9 所示。显示分为三类:第一类是实时监控与显示清算系统的指标,每个设备均有一个性能页面,在性能页面中展示设备的静态信息:设备名称、IP 地址、设备类型、当前告警信息等,右键点击设备图标,弹出控制窗口,集成设备关机、设备重启、进程重启、进程关闭、进程启动等命令,同时在性能页面可以查看当前设备指标情况(CPU、内存、磁盘占用大小及利用率、进程运行状态),以柱状图显示;第二类则是报表统计分析显示,提供设备历史性能、告警统计报表,报表可以展现出设备的当前负载状态、健康状态,如查询过去某一时间段内服务器的内存利用率;第三类是异常参数实时报警,则以告警窗口显示,告警信息直观、易懂,以语音告警、红色告警窗口呈现。
图9 监控人机界面
目前应用系统监控软件比较多,跨平台性和可移植性差,而且大多配置复杂。本文提出清算监控管理系统的结构简单,可以满足用户的个性化需求,非常方便进行系统部署和移植。对清算系统整体性能监测,为实现对清算系统参数的性能调优提供数据支持,判定清算系统的使用趋势和分离出性能问题,利用跟踪评价资源利用水平,从而发出性能出现的警示信息,告知设备监控人员错误发生的程度,及时发现运行隐患,有助于在产生不利影响之前予以解决,有效防止问题严重化,保证网络高效、稳定、可靠地运行,提高工作效率。