机房终端在线监测与远程管理系统设计与实现

2021-02-14 08:24马延立
信息记录材料 2021年12期
关键词:管理员机房客户端

马延立

(许昌职业技术学院信息中心 河南 许昌 461000)

1 引言

计算机机房终端管理主要包括终端设备硬件的日常维护、系统软件优化、网络信息配置与管理、故障终端的维修等。传统机房终端管理软件往往以客户端的形式安装在每个机房管理机,不能做到集中管理,且功能较为简单,智能化水平不高[1-3]。针对传统系统设计模式和功能存在的问题,本文设计实现了一套机房终端在线监测与远程管理系统,该系统可实现机房管理员远程监测所有终端运行情况,实现终端故障及配件变更自动告警、远程进行网络设置维护等功能。

2 机房终端在线监测与远程管理系统的设计

2.1 系统需求分析

机房终端在线监测与远程管理系统的主要需求分析如下:

(1)资源可查可控

监测机房终端设备的CPU、内存、显卡、硬盘、MAC地址、网络资源等使用情况,实现对这些资源查看、管理的目的[4]。

(2)终端远程运维

远程对终端进行基础的开关机及重启操作,实现远程设置终端网络信息,通过Shell命令实现远程运维Linux服务器,减轻管理人员工作量。

(3)易于教学管理

便于对机房课表的管理,结合课表可设置终端自动启停。可对机房利用率、终端维修率、终端使用率进行统计,以此为管理人员提供决策依据。

(4)客户端易于部署

机房终端设备上安装的客户端软件易于部署安装,开机自启,且支持多平台操作系统。

2.2 机房终端在线监测与远程管理系统总体功能架构

机房终端在线监测与远程管理系统的总体目标为实现对机房终端的实时监测,通过远程管理终端、规范终端维修流程达到提高机房的管理水平和效率。系统整体功能可归纳为终端监测、远程管理、终端报修、系统管理4部分。机房终端监测与远程管理系统总体功能架构见图1。

图1 机房终端监测与远程管理系统总体功能架构

2.3 机房终端在线监测与远程管理系统功能设计

(1)终端监测:终端开机后通过客户端agent软件自动上报终端相关信息,系统根据每个机房IP段信息自动把终端归类到相应机房。同时对在线终端的CPU、内存、硬盘、网络信息等进行监测,当监测到最近两次终端硬件发生变化时会自动告警,向管理员发送通知,以便管理员可以及时处理。

(2)远程管理:机房管理人员可通过系统远程对终端进行开机、关机、重启等操作,可远程单个或批量修改机房的网络信息,如IP地址、DNS、网关等。同时可通过发送命令的方式远程启动终端上安装的软件。

(3)终端维护:系统管理员可对配件进行新增、修改、删除等操作,终端故障自动上报后,管理员实际查看故障原因后可上报申请配件进行维修,经审核后可从配件中自动调配相应配件,同时生成配件及维修记录[5]。

(4)系统管理:系统角色分为系统管理员、审核员、机房管理员,每个角色可灵活配置相应权限。系统管理员有最高权限,审核员主要是对故障报修及配件进行审核,机房管理员为该系统主要使用人员。系统管理还包括日志、报表的管理功能。

3 机房终端在线监测与远程管理系统的实现

3.1 系统架构及技术选型

机房终端在线监测与远程管理系统架构见图2。前端Web界面通过WebSocket向服务器端发送指令,服务器端收到相应指令后转发至相应终端,终端执行命令后返回数据至服务器,并保存相应数据至数据库,Web端调用相应API获取相应数据。

图2 系统架构

(1)Web端:系统采用B/S系统架构,使用目前比较流行的前后端分离的MVVM架构设计模式。前端采用Vue.js进行开发,Vue是一个轻量级前端框架,具有双向数据绑定、组件化、数据和结构的分离、虚拟DOM等特点,且运行速度快。Web端与服务器端的指令通过WebSocket进行双向通信,WebSocket可以在前端Web浏览器和服务器之间进行任意的双向数据传输。WebSocket协议基于TCP协议实现,包含初始的握手过程以及后续的多次数据帧双向传输过程,这样做是为了在WebSocket应用和WebSocket服务器进行多次双向通信时,避免服务器打开多个HTTP连接,以此节约服务器资源,提高了资源利用率和工作效率。

(2)服务器端:服务器端主要提供系统API接口及Socket通信,其中API使用ThinkPHP5进行开发。ThinkPHP是一个免费开源的轻量级PHP开发框架,具有快速、简单的面向对象等特点,而ThinkPHP5专门为API开发进行了性能优化,很适合快速搭建API接口。Socket通信采用Workerman框架,Workerman是一款基于PHP的开源高性能异步socket框架,支持高并发,支持TCP长连接,支持WebSocket、HTTP等协议,支持自定义协议,稳定性较高,应用领域十分广泛。

由于Web端的WebSocket服务无法与终端基于TCP的客户端服务直接进行通信,因此在服务器端开启一个WebSocket服务与Web前端进行通信,同时开启一个TCP服务转发前端命令与机房客户端进行通信。

(3)客户端:系统通过在机房终端安装agent客户端软件获取终端资源信息,客户端软件基于Python开发。Python的基础代码库和第三方库非常完善,覆盖了网络、文件、GUI、数据库、文本等多方面内容,使用Python当中的wmi、os、socket等模块,可以很方便快捷地开发满足本系统需求的客户端软件,且开发的客户端软件体积非常小,本系统终端运行的客户端软件大小不到2 M。

由于Python语言是跨平台的,所以客户端支持Windows和Linux操作系统,但是因为Windows操作系统存在的版本较多且不同版本之间差异性较大,目前客户端暂时只支持Linux、Windows server 2008以上及Windows 7以上操作系统。

3.2 系统主要数据库表的设计思路

为了使系统能够更加灵活、快速地部署在不同操作系统的服务器上,本系统选择使用的数据库为MySQL,MySQL是一个具有体积小、命令执行速度快、总体拥有成本低、跨平台等优点的开源数据库。

(1)终端基本信息表(BaseInfo):该表主要存放终端的基本信息,包括IP地址、MAC地址、硬件信息等,表内数据的获取由终端开机后自动向服务器发送保存。由于不同终端基本信息有差异,比如内存条的个数不确定,就不便使用某个固定字段去存放内存信息,因此本系统将终端发送的基本信息数据以JSON格式存放在单个字段bi_info内,读取数据时后台接口通过算法解析数据后发送前端显示。

(2)终端使用情况表(UsedInfo):该表主要存放终端内存、CPU、硬盘使用情况及网卡流量等需要监测的数据,由于系统要不断监测终端的实时使用情况及历史记录,因此该表也是数据量最大、交互最为频繁的表。对于硬件使用情况的历史记录存放范围,在系统中可以自由设置,默认普通PC终端保存最近一周使用情况,服务器终端则保存最近3天的记录。

(3)终端在线情况表(OnlineInfo):该表设计存放在线终端的MAC、最近一次终端在线时间、终端离线时间。当终端首次上线后,该表保存终端MAC地址及上线时间,当后台服务在约定时间内监测不到终端发送的心跳包后认为终端离线,此时向表中插入终端离线时间。当同一终端再次上线、离线后更新表中数据,每个终端最多在表中生成两条记录。

3.3 系统运行的主要功能

(1)资源监测:机房管理员设置每个机房的IP地址范围,终端开机后客户端软件首先自动上报资源信息,系统根据终端IP自动把终端归类到相应机房,可监测终端CUP、内存、操作系统等资源信息。资源监测使机房管理员可整体掌握每个机房终端状况,发现异常或故障终端可及时处理,提高了处理效率。系统监测到终端硬件参数发生变化时,系统会自动发出告警提示,在硬件变更监测中可以查看具体发生变化的硬件参数。系统监测终端上报的资源信息如下:

(2)远程操作:机房管理员可单个或者批量修改终端的网络设置信息,当选择批量修改时,只需填入首个终端IP地址、掩码、网关等信息,系统根据所选终端数量IP地址自动进行增加,实现了对机房网络资源的统一管理。当需要进行远程关机或者重启终端时,客户端收到前端发送的指令后,在预设的时间内进行相应操作,其中关机、重启操作调用Python中的os模块来实现,关机代码为os.system('shutdown /s /t 0'),重启代码为os.system('shutdown /r /t 0')。远程开机指令则需要终端开启“允许魔法包唤醒”,通过网卡接收指定的唤醒数据进行开机。同时结合机房的课表,系统可设置每个机房的终端自动开关机时间,这极大地减轻了管理人员的工作量。远程网络设置主要实现的Python代码如下:

(3)Linux服务器运维:选择要运维的Linux服务器之后,通过选择系统中设定的常用Shell命令模板或者输入命令进行执行,可以得到命令执行的结果。同时通过“任务计划”菜单新建任务,设置任务执行频率,可以进行Shell命令自动按计划执行,达到对Linux服务器的自动运维。任务执行失败时,可通过“任务告警”菜单进行查看。

(4)故障上报:机房终端开机后在约定的时间内不在线的终端会被认定为存在故障,系统会自动向管理员发出告警,管理员需要实地查看确认终端是否存在故障,若确实终端存在异常,机房管理员查明故障原因后可以通过故障维修申请配件进行维修,提交申请后,按照维修流程,审核员需进行审核,同意维修后发放配件维修。这种方式能够让管理员主动去发现解决问题,规范维修配件使用流程,保证机房可用终端数量,为计算机教学提供有力保障。

(5)权限管理:系统对不同角色分配不同菜单显示权限、按钮操作权限。用户登录后,根据数据库保存的用户角色权限列表,前端通过动态路由加载显示菜单信息。通过配置按钮操作权限实现前端页面增加、删除、修改按钮的显示或者可用状态。

(6)客户端软件:客户端软件安装后自动设置为开机自启。客户端启动后自动上报本机资源信息及网络状态,若由于网络故障等原因发生连接服务器超时,客户端则会一直保持重连状态,直到连接成功,之后客户端按照设定的心跳间隔发送指定数据并等待响应前端指令。客户端软件默认后台运行,终端使用者无感知。客户端自启关键代码如下:

4 结语

本文设计实现的机房终端在线监测与远程管理系统为计算机机房管理提供了一套切实可行的方案,是对机房管理工作的创新和升级。后期可把机房空调、门禁、监控等物理设备的管理加入系统之中,实现更为综合、完整的机房管理系统。

猜你喜欢
管理员机房客户端
我是小小午餐管理员
我是图书管理员
我是图书管理员
可疑的管理员
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
N通信公司机房节能技改实践
某IDC机房结构设计
新型有线电视机房UPS系统的配置