服务器应用监控系统设计本科毕业设计.docx
《服务器应用监控系统设计本科毕业设计.docx》由会员分享,可在线阅读,更多相关《服务器应用监控系统设计本科毕业设计.docx(66页珍藏版)》请在冰豆网上搜索。
服务器应用监控系统设计本科毕业设计
服务器应用监控系统
摘要
随着各行业信息化建设的不断深入发展,单独的服务器已经再无法满足企业的需求。
网络和应用规模日趋扩大,服务器网络集群大量应用于中、小型企业中,服务器性能监控和日常维护变得复杂。
服务器管理员迫切需要一个实用的监控系统来帮助他们实时了解服务器的运行状态,检测服务器故障,令维护服务器的正常运行。
服务器性能监控是指针对服务器系统的运行状态以及各项指标的监控。
监控指标包括:
CPU使用率、CPU负载、内存使用率、磁盘I/O、磁盘空间、网络流量等。
并实时的将监控获得的服务器性能参数传回来显示在客户端,同时上传至中心服务器上的数据库中,便于以后查询,分析。
本文围绕服务器应用性能监控系统的研究与实现,研究了Web服务技术,服务器的性能参数获取和利用Char组件动态显示服务器的运行状态。
Web服务的使用简化了客户端系统,服务器的性能参数获取过程封装在一个Windows进程中,系统具有很好的扩展性。
系统的实现目标是服务器性能的远程监控,一对多监控,服务器管理员可以查看服务器历史一段时间运行状态。
关键词服务器应用监控;远程监控;Web服务;Windows性能
ServerApplicationMonitoringSystem
Abstract
Withtherapiddevelopmentofnetworktechnologyandapplication,asingleserverhasfailedtomeettheneedsoftheenterprises.Withtheserverscaleincreasingdayafterday,andserverclusterwidelyusedinthemediumandsmallenterprises,aserver’smanagementandmaintenancearebecomingdifficult.Thesystemadministratorurgentlyneedapracticalserverperformancemonitoringsystemtohelpthemknowserver’soperationstatereal-time,monitoringserverfailure,inordertomaketheserverworknormally.
ThisWebservicetechnology,theserverperformanceparametersoftheacquisitionanduseofMicrosoftChartcomponentdynamicdisplayoftheserverrunningstate.
Thispaperfocusontheserverperformancemonitoringsystemofresearchandimplementation,researchtheWebservicetechnology,theserverperformanceparametersoftheacquisitionanduseofMicrosoftChartcomponentdynamicdisplayoftheserverrunningstate.WiththeWebservice,theclientbecomesmuchsimple.PackingprocessofgettingtheserverperformanceparametersasaserviceofWindowsmakethesystemhasgoodexpansibility.Systemgoalistorealizetheserverperformanceforremotemonitoring,amonitoringmore,enablethemanagerinquiringtheserver’ssomepastperiodoftimerunningstate.
KeywordsServerPerformanceMonitoringSystem;RemoteMonitoring;
WebService;WindowsPerformance
摘要……
Abstract
第1章绪论
1.1选题目的和意义
在网络中部署的服务器系统,随着时间的推移,系统中的用户数量和数据量不断增加,系统压力越来越大,系统速度越来越慢,对客户端的响应时间越来越长,有时服务器甚至会停止服务,无法响应用户请求,从而使整个网络陷入瘫痪。
面对这样的情况,网络管理员总希望在第一时间找到问题出在哪里,而往往由于缺少必要的分析和诊断工具,无法迅速找到到底是CPU,内存,磁盘,网络等哪个部分出了问题,是硬件配置较低需要升级设备,还是受到木马攻击,被木马抢占了资源。
如何监控和解决服务器性能问题,成为管理员面临的最棘手的问题。
尤其是随着互联网络的发展,单一的服务器已经无法满足企业需求,大规模的服务器集群得到广泛应用,云计算发展势头迅猛,如何调整服务器部署,均衡负载,使服务器资源得到充分利用,大大提高资源的利用率成为最重要的关注点。
服务器的性能监控显得越来越重要了。
1.2国内外文献综述
当前,企业信息化规模越来越大,水平不断提高,如何维护并有效管理这些资源,已经成为企业信息化过程中面临的严峻问题和关注的焦点。
在对这些资源的管理中,服务器是核心设备,对它的管理至关重要。
Windows服务在企业中应用十分广泛,对其性能进行管理非常必要。
Windows服务器自带有性能管理功能,但只能在本机上才能查看其运行情况。
而且只能实时查看,无法查看过去一段时间内的服务器运行状态。
目前知名的Windows服务器性能监控系统有NEC公司的MasterScopeSystemManager,Micrisoft公司的WMI,Bakbone公司的SpotlightOnWindows,上海哲涛公司的SUM(ServerUnifiedMonitor&Management),神舟泰岳的Ultr@NMS。
相比较而言,国外产品功能强大,但价格昂贵,操作界面不符合中国人习惯;而国内产品技术落后,可移植性差。
服务器应用性能监控可以了解到服务器的各种状态,比如CPU的利用率,内存的占用率,磁盘的I/O速率,虚拟内存的占用率等。
可以根据监控的数据结果来判定企业应用的工作情况,可以查看数据库内的监控数据,分析出服务器的性能,便于服务器的部署,使资源得到更有效更充分的利用。
未来服务器不再是传统的单服务器,而是由多个服务器构成的服务器群。
对于服务器群来说,服务器的管理变得更加重要。
合理的利用资源,使所有服务器资源得到最大化利用,不仅仅可以节约硬件上的成本,同时可以加快服务器的响应速度,提高服务器的吞吐量,而要实现服务器的管理,依据的就是服务器的性能,了解单服务器的性能,均衡服务器,避免服务器出现“饥饱过度”。
服务器应用性能监控将在提高服务器性能方面发挥重大作用。
1.3论文研究内容
本课题主要研究服务器应用的性能监控,获取服务器的性能参数,保存至数据库并且显示,提供用户可以查看过去一段时间服务器的运行状态。
具体内容包括以下几个方面:
1.获取服务器的性能参数:
设计一个组件WindowsInfoMonitor,WindowsInfoMonitor是一个Windows下进行的线程,里面使用Sigar获取服务器的性能,包括CPU的利用率,内存的占用率,磁盘I/O的数据传输速度,网络带宽等信息。
2.服务器性能数据上传至中心服务器数据库:
通过在中心服务器安装的WebService提供的借口,将服务器的性能数据上传到中心服务器的数据库中。
3.客户端从中心服务器数据库提取数据:
客户端通过在中心服务器安装的WebService提供的接口,获取数据库内服务器的性能数据。
4.服务器性能参数在客户端界面上的显示:
使用Jsp技术和Highcharts控件将服务器的性能数据显示在客户端界面上,用绘制曲线图,直方图条或者文字报告等形式展示,直观的向用户展示服务器性能。
第2章相关技术概述
本章将主要介绍系统使用到的相关技术。
服务器应用性能监控实现远程监控,用到JavaWeb技术。
Web服务提供接口,将系统的业务逻辑从客户端移到了中心服务器上,大大简化客户端操作。
2.1服务器应用性能监控
服务器性能监控是指针对服务器系统的运行状态以及各项指标的监控。
监控指标包括:
CPU使用率、CPU负载、内存使用率、磁盘I/O、磁盘空间、网络流量等。
远程服务器监控系统是本地计算机通过网络系统Internet/Intranet,对远程服务器进行监控和控制。
并实时的将监控获得的服务器性能参数传回来显示在客户端,同时上传至中心服务器上的数据库中,便于以后查询,分析。
服务器性能监控技术目前比较成熟,并且应用在调整服务器部署中。
服务器的稳定性及其性能资源利用状态需要长时间的累计服务器相关数据,然后进行分析,最后得出正确结论。
可以针对所有设备的CPU负载、内存利用率等进行全网记录。
也可以对单独的应用服务器等进行记录。
服务器的网络流量来自服务器与外界的数据交换。
这个流量包括了正常的应用程序与外界的数据交换,也包括了非法服务或进程(例如病毒)产生的数据量。
定期分析一段时间来的服务器网卡流量,可以发现是否有不正常的变化,如突然增高或突然很低,这对检查服务器的运行状态很有帮助。
对应用服务器的性能资源进行记录,帮助管理人员根据这些统计结果分析出这些设备的主要运行参数的变化规律,从而为正确评定用户网络设备的承载能力提供依据。
另外,如果必要的话,也可以对所有的服务器连接线路的流量指标进行记录,以便对整个网络的流量分布全面了解,以确定网络的瓶颈,为今后的网络扩容提供依据。
2.2服务器性能参数获取
服务器性能参数获取是指通过一定的方法,获取服务器的性能指标的过程。
服务器的性能指标包括CPU使用率、内存使用率、磁盘I/O、磁盘空间、网络流量等。
Java语言下服务器性能参数选择利用sigar控件和Windows性能计数器。
2.2.1使用Sigar
Sigar是英文SystemInformationGathererAndReporter的简写,中文意思是系统信息采集者,是一个开源的工具,提供了跨平台的系统信息收集的API,由C语言实现的。
可以收集的信息包括:
1.CPU信息,包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait);
2.文件系统信息,包括Filesystem、Size、Used、Avail、Use%、Type;
3.事件信息,类似ServiceControlManager;
4.内存信息,物理内存和交换内存的总数、使用数、剩余数;RAM的大小;
5.网络信息,包括网络接口信息和网络路由信息;
6.进程信息,包括每个进程的内存、CPU占用数、状态、参数、句柄;
7.I/O信息,包括I/O的状态,读写大小等;
8.服务状态信息;
9.系统信息,包括操作系统版本,系统资源限制情况,系统运行时间以及负载,JAVA的版本信息等;
2.2.2使用Windows性能计数器
服务器性能监视,是WindowsNT提供的一种系统功能。
WindowsNT一直以来总是集成了性能监视工具,它提供了有关操作系统当前运行状况的信息,针对各种对象提供了数百个性能计数器,在本地计算机可以打开管理工具,选择性能监视器,点击添加计数器按钮,可以查看WindowsNT具体提供了哪些性能计数器,同时可以查看性能监视对象,对象实例等。
性能计数器能实时采集系统内的应用程序、服务、驱动程序等的性能数据,以此来分析系统的瓶颈,最终帮助用户进行系统的合理调配。
通过编写程序可以访问所有的Windows性能计数器,通过计数器可以获得服务器的性能参数。
2.3Web服务概述
Web服务(WebService)是一种实现Internet环境下组建开发的技术。
目标是把全世界的Internet/Intranet变成一个虚拟计算环境,实现跨平台的可操作性。
2.4本章小结
本章主要对服务器应用监控系统用到的技术进行了阐述,包括服务器性能监控,Web服务技术。
第3章系统需求分析
本章将主要对系统的需求进行分析。
主要从系统的功能性需求和非功能性需求进行深入细致的分析。
对系统需求进行全面细致的分析是系统快速高效开发的前提,才能保证设计实现的系统满足系统的需求。
3.1需求背景
随着网络的发展,单一服务器已经无法满足企业需要,服务器集群已广泛应用。
服务器部署,服务器管理越来越重要。
服务器监控是服务器管理的前提,只有监控了服务器运行状态,才能合理部署服务器,调整服务器,均衡服务器,使服务器资源得到充分利用,避免出现服务器“过度饥饱”的情况。
网络中的服务器系统部署完成后,随着时间的推移,系统的数据量和用户量不断增加,系统压力越来越大,系统运行速度越来越慢,客户端用户等待时间越来越长,有时甚至等待不到响应。
Windows网络服务系统自带的服务器性能监视工具只可以在本地监视自身系统,无法远程监控其他服务器,但现在的服务器不再单一,管理员需要同时监控多个服务器,而且有时管理员有事离开,回来发现服务器瘫痪了,无法知道服务器瘫痪原因,因此还要求服务器监控系统能提供查询功能,查询服务器过去一段时间的运行状态。
服务器性能监控技术已经比较成熟了,只是没有实现远程监控,不提供查询功能,只是提供了日志,而没有更详细的记录服务器过去一段时间的运行状态。
目前云计算非常流行,几大云计算公司都针对自己的云计算平台开发了监控系统,比如盛大的“云监控”,亚马逊的“AWS”等,这些监控系统虽然功能很强大,但是系统太大,对于小企业,小范围内的服务器群监控不太适合,在小规模的服务器群远程监控这一块,市场几乎是空白。
虽然服务器群在朝着更大,更集中发展,但小规模的服务器群还将在未来一段时间长久存在,而服务器的监控则在任何大小的服务器群中都是必须的,因为服务器的监控对服务器的调整至关重要。
3.2系统总体的需求
本系统主要实现服务器远程监控功能。
本系统的设计首先满足服务器性能监控的要求,同时要考虑到系统的可靠性,灵活性,方便管理员管理监视服务器。
服务器集群数量比较大,管理员需要同时监控多个服务器,管理员可能有事离开,但监视不停,之后可以查阅之前一段时间服务器的运行状态。
直观的显示服务器运行状态便于管理员了解服务器的运行情况。
本系统正常运行需要如下三个环节:
首先开启被监控服务器上的WindowsInfoMonitor服务,其次开启中心服务器上的ShowWinInfo程序,最后打开浏览器根据设定进行监控。
本系统功能用组成如图3-1所示。
图3-1系统功能做成图
3.3系统功能性需求分析
本系统在功能上主要分为WindowsInfoMonitor服务和ShowWinInfo程序。
WindowsInfoMonitor服务又分为获取服务器性能和持久化数据两大模块。
ShowWinInfo程序主要为查询数据库中存储的持久化数据,并且在浏览器中进行显示,这个是管理员最直接接触到的。
3.3.1系统功能
本系统的功能是服务器上WindowsInfoMonitor服务采集服务器的运行状态,然后发送给客户端提供客户端显示,同时把性能参数存储到服务器上的数据库。
远程监控可以使得一个管理员可以在客户端同时监控几台服务器,中心服务器提供数据库,使得管理员可以查看过去一段时间服务器的运行状态。
3.3.2WindowsInfoMonitor服务功能需求
WindowsInfoMonitor服务是安装在服务器上,获取服务器的性能参数。
在服务运行时候需要向中心服务器注册自己的服务器信息,包括服务器名和服务器的IP地址,注册的目的是客户端可以访问中心服务器获取服务器的信息,和服务器进行通信。
WindowsInfoMonitor服务运行后要实时监听客户端ShowWinInfo发来的监控命令,包括开始监控,停止监控等。
根据命令控制服务器监控线程的运行。
在监控线程中,每隔一段时间获取一次服务器的性能参数,然后向中心服务器发送性能参数,存入数据库,同时把性能参数发送给客户端ShowWinInfo用于客户端显示。
WindowsInfoMonitor服务功能用组成如图3-3.
图3-3WindowsInfoMonitor服务功能组成图
3.3.3ShowWinInfo客户端程序功能需求
ShowWinInfo客户端为架设在中心服务器上的以web技术为基础的程序,管理员可以直接使用,发出监控命令,同时直观显示服务器的运行状态供管理员查看,分析调整服务器部署。
ShowWinInfo客户端在运行时访问中心服务器上的数据库,获取所存储的服务器的信息,添加到服务器列表中,管理员可以选择这些服务器进行监控。
管理员可以通过添加性能计数器,移除性能计数器选择要监控的服务器性能参数。
发送开始监控,停止监控,更新,查询过去一段时间的服务器的运行状态等命令,获取服务器的性能参数,再以直方图型,线条,报告等形式显示在浏览器窗口中。
服务器的性能是实时动态显示的,非常直观。
更新频率决定了监控的强度。
更新间隔时间越短,监控强度越大,能发现服务器出现的瞬间瘫痪原因。
但不是更新时间越短越好,更新时间越短。
服务器的开销越大。
ShowWinInfo客户端程序功能组成图如3-4。
图3-4ShowWinInfo客户端程序功能组成图
3.4系统非功能性需求分析
系统的非功能性需求,是指系统为满足用户业务需求而必须具有的妾除功能需求以外的特性。
往往包括可靠性、易用性、效率、维护性、可移植性等。
3.4.1可靠性要求
本系统要实现服务器性能的远程监控,服务器的性能参数较多,同时一个管理员要能同时监控多台服务器,服务器性能的监控过程是间隔一段时间获取一次服务器的性能参数,间隔时间太长就失去了实时监控的效果,间隔时间一般在5S左右,一段时间内产生的数据量比较大,对中心服务器上的数据库是一个考验,可靠性非常重要。
在客户端要实时显示服务器运行状态,较短时间内处理较大量的数据,软件的压力比较大,可靠性是非常重要的。
3.4.2易用性要求
本系统目标是把管理员从复杂的服务器监控中解放出来,因此要具有很好的易用性。
服务器的性能的参数很多,选择必要的性能参数,直观的显示给管理员,便于管理员分析然后调整服务器的部署,均衡服务器是非常必要的。
管理员不一定对服务器的性能有很深的研究,因此易用性,直观的显示给管理员是本系统的要求。
3.4.3效率要求
本系统是实时监控,处理的数据量较大,效率很重要,要在间隔时间内把数据发存入中心服务器的数据库,同时发送到客户端显示,如果效率很低,则这次处理还未完成,下次数据已经到来,可能冲掉上一次的数据,这要求系统的处理速度很快,同时间隔时间不能太短。
还有随时间的推移,中心服务器上数据库的数据量逐渐增大,数据量可能太大,占满磁盘空间,因此需要清除一部分数据,只保存一段时间内的数据。
3.4.4可移植性要求
由于本系统中的WindowsInfoMonitor是安装在每个服务器上的,因此要有很好的移植性,便于WindowsInfoMonitor的安装,运行。
3.5系统开发环境
系统的开发环境包括软件环境和硬件环境两部分。
是开发系统必备的环境。
3.5.1软件环境
1.客户端操作系统为MicrosoftWindows7及以上版本。
2.服务器端和中心服务器端的操作系统为WindowsServer2000版本及以上版本。
采用Windows系统是因为本系统是调用Sigar工具来获取服务器的性能数据。
3.数据库操作系统为MySQL5.1。
4.系统开发语言:
JAVA程序设计语言。
5.系统开发工具:
MyEclipse8.5及MySQL-Front工具。
6.系统运行环境:
JDK1.6。
3.5.2硬件环境
1.客户机配置:
建议采用Intel处理器(1.5GHz)以上、内存2GB、硬盘100GB以上。
2.中心服务器配置:
建议采用Intel双核处理器(2.0GHz)、内存2GB、硬盘150GB以上。
3.服务器配置:
建议采用Intel处理器(1.5GHz)以上、内存2GB、硬盘100GB以上。
3.6本章小结
本章先阐述了需求的背景,然后对系统进行了各方面的需求分析,主要包括:
系统总体需求分析、系统功能性分析、系统非功能性需求分析。
在系统的功能需求分析中对系统功能进行了详细化划分,画出了用例图,并描述各个模块的功能需求。
在非功能性分析中对系统的可靠性、易用性、效率、可移植性需求进行了分析。
最后,对系统的开发环境进行简要的介绍。
第4章系统设计
本章将主要是系统的设计阶段。
根据第三章的系统需求分析主要从系统的总体架构、系统的功能模块划分、独立模块的设计以及数据模型的设计等方面对系统进行了详细设计。
采用了Web服务技术,使系统具有了松散耦合性,良好的扩展性和可移植性特点。
4.1系统概述
WindowsInfoMonitor服务和ShowWinInfo程序组成了服务器应用监控系统。
WindowsInfoMonitor服务安装在服务器上,获取服务器的性能参数。
ShowWinInfo程序是管理员操作端,所有的监控命令都是由此发出,监控到的服务器性能参数返回到浏览器中,在浏览器中动态直观的显示服务器当前的运行状态。
4.2系统总体架构
本系统主要实现服务器远程监控功能。
在一个客户端浏览器中可以同时监控多台服务器,服务器的性能参数上传至中心服务器数据库中,在客户端可以访问中心服务器上的数据库,查询服务器的性能参数,并在客户端动态显示。
系统的总体架构图如下图4-1。
图4-1系统总体架构图
4.3划分功能模块
本系统实现的服务器应用监控。
实现远程监控。
并非本地监控,但同时利用了sigar采集系统性能参数,因此把服务器性能参数获取放在服务器上,同时在中心服务器上保存服务器的性能参数及服务器信息。
客户端用于管理员操作,发送监控命令,查看服务器运行状态。
系统分为两大模块WindowsInfoMonitor服务模块和ShowWinInfo程序模块。
系统的逻辑模块图如图4-2所示。
图4-2系统的逻辑模块图
4.4独立模块设计
4.4.1WindowsInfoMonitor服务模块设计
WindowsInfoMonitor服务模块主要用于获取服务器的性能参数,并将服务器的性能参数发送到客户端程序及存入中心服务器上的数据库。
服务性能参数的获取是通过使用Sigar工具包。
服务器的性能参数根据性能对象分为操作系统、文件存储、CPU_内存、分区、磁盘I/O、TOP进程、网卡流量、登录用户、用户操作。
操作系统对象的主要性能参数有设备ID、主机名称、操作系统版本、操作系统内核、开机时间等。
文件存储对象的主要性能参数有设备ID、类别、文件存储目录、文件大小等。
CPU_内存对象的主要性能参数有设备ID、CPU个数、CPU主频、CPU使用率、内存总量、内存使用数量、内存剩余数量、内存使用率等。
分区对象的主要性能参数有设备ID、磁盘名称、分区挂载点、分区