Foglight—应用系统监控解决方案

推荐:VMWare公司的 开源 Hyperic HQ 应用性能管理解决方案,    Foglight 中文汉化包

欢迎与我们联系咨询  010-62139280 北京铸锐数码

  • 1、方案介绍

    Foglight 应用管理同时满足对IT和业务的管理需求,管理人员可以从最终用户的视角了解应用运行状况,然后根据业务需求提供服务水平。管理人员可以通过Foglight 了解基础构架和数据库的变更将如何影响应用,并采用恰当的手段确保应用的性能和可用性。最重要的是,Foglight从所有这些相关的地方收集数据,直接确认问题的根本原因,并用最快的方法解决问题,从而保持业务的平稳运行。

    图:Foglight应用与服务管理架构

    1.1、管理内容

    Foglight管理内容覆盖基础架构、数据库、应用服务器及应用等各个组件。

    1、服务水平管理

    Foglight将关键应用和服务管理信息融入管理构架,提供整体的业务服务管理和IT过程自动化。Foglight服务水平管理集成了所有组件,以服务的形式进行评测和报告,能够启动增强服务质量和减少服务中断。

    使用服务水平管理,可以实现:主动避免服务水平下降;从多个视角了解服务提供的情况;获取实时和历史ITTL遵从报告;了解被影响的用户的类型和数量决定解决问题的优先级;建立服务和底层元素的映射减少问题解决时间。

    2、最终用户管理

    Foglight 提供最终用户管理能力,检测应用性能和用户体验,包括使用水平,使用场景,和会话分析。Foglight 提供应用的有效性,不管从技术还是从内容方面,了解客户需求,加强用户体验来留住客户,支持合作伙伴,服务员工。

    使用最终用户管理,可以实现:通过会话重放提供用户体验可视化体验;关联应用问题和最终用户和业务的营业影响;管理合成的实际的用户事务;通过影响的用户数量和类型确定问题解决的优先级。

    3、应用性能管理

    Foglight提供服务关联信息,包括最终客户,业务服务,IT资源和关键基础构架组件,例如应用和数据库。 Foglight提供多种数据收集方法,以及直觉的、灵活的仪表板。通过Foglight, IT能提供管理环境的模型和视图,经过裁减供决策者使用。通过主动地监控和实时诊断,IT能在最终用户被影响前容易地解决事件和问题。

    使用应用性能管理,可以实现:在最终用户被影响前解决应用性能和可用性问题;关联应用性能,从最终用户、到应用,到数据库,提供应用性能的完整画面;了解哪些元素支持关键应用和业务服务,可以获得最快的MTTR;提供和确保关键应用和服务的服务水平。

    4、数据库管理

    通过Foglight, 管理人员可以从一个便利的位置管理企业环境中所有数据库。Foglight提供DBA的专用信息,帮助有效地管理数据库环境,从而提高投资回报。 Foglight不仅仅报告问题发生了,还提供深入的问题诊断、分析和优化能力。

    使用数据库管理,可以实现:提高服务质量;减少解决问题的时间;流线型的系统维护;满足服务水平要求;变被动的管理方式为主动的管理方式。

    5、基础构架管理

    成功地管理应用的前提是进行基础构架的管理。Foglight管理支持应用和服务的所有基础构架,包括操作系统,网络设备,虚拟服务器和虚拟机器。

    使用基础架构管理,可以实现:在所有的物理环境自动发现组件;保证组织实时调整,确保优化的性能;管理虚拟化的基础构架;发现和配置管理应用服务器、数据库服务器、Web服务器和网络设备。

    1.2、方案特点

    Foglight的核心是一个使能深入理解应用管理、大幅降低响应时间的适应性架构。此结构由一系列基于已经证明了的开箱即用的管理技术打包而成的模块组成,有力地支持了Foglight良好的可扩展性。

    1、问题报警

    Foglight对应用全方位管理使得从多个相关联的角度对问题进行告警成为可能。在监控终端用户体验的同时监控关键服务(包括对IT内部和对IT外部客户与业务的可视化)以及应用环境的各组件。广泛的监控保证相关管理人员前瞻性地在业务和终端用户受影响之前对问题发出告警并提供深入诊断视图和工作流快速解决问题。

    监控人员在终端用户受影响之前就知道发生了问题。

    技术人员提前就能知道组件何时出错而影响到了关键业务。

    IT管理者很快就能知道SLA受到什么影响,什么正影响SLA,谁正在着手解决问题。

    2、可视化

    作为核心能力的一部分,Foglight通过一个管理Portal提供完全可视化的应用及应用组件性能和可用性可视化视图。Foglight提供了一个企业级的、单一的入口,适用于从高层管理者到中层管理者到普通员工。基于角色的视图能标准化什么样的数据被使用,这些数据怎么被观察,应当采取什么样的行动响应等。

    提供一个一致的针对业务和IT的应用管理视图。

    提升高层管理者、中层管理者和普通员工之间的协作,导向到一个公共的应用管理目标。

    使得员工能前瞻性地工作,作出更好的决定。

    3、问题根源诊断

    理解性能下降或应用可用性下降的深层次原因是很困难的,代价也很高。即使IT全力去解决问题,终端用户和业务仍不得不等待,知道系统或服务处于正常。

    Foglight提供了问题根源诊断能力,帮助IT极大地减少应用的MTTR。通过对收集到的数据进行下钻式分析,Foglight有选择性地聚焦到问题发生点。Foglight使用低负载的Agent收集这些信息而最小化对生产环境的影响。

    对JAVA和.NET应用的动态用户事务跟踪技术有助于隔离问题事务并定位瓶颈。

    低负载的Agent有助于有选择性地定位问题组件或元素。

    集成的诊断工作流有助于IT快速诊断并解决故障和重复发生的问题。

    4、报表

    Foglight提供灵活的、强有力的报表能力保持股东或管理者对IT和业务的关注。Foglight将受管理环境中的逻辑表现和物理IT架构进行分离,允许构建视图最大化效率和生产力。

    Foglight提供以下报表服务:

    开箱即用式的报表反映了典型的终端用户、应用和数据库的运行状态。

    拖拉方式使得IT能快速建立有关数据单项、各指标的可视化报表。

    报表构造器能使任意的报表或仪表板被格式化满足各个管理角色的需要。

    5、基于角色

    Foglight采用基于角色的管理机制,可以有效地满足企业安全性和管理分工方面的需求。在Foglight中可以根据管理分工定义不同的角色用户,使不同角色的用户看到不同的管理界面,执行不同的管理功能。

    例如,一个企业可能有数据库管理员,J2EE管理员,应用管理员,IT经理等等。他们的职责各不相同:

    数据库管理员:集中管理企业环境的所有数据库,对可用性进行监控;主动进行数据库的性能管理,在数据库出现问题时快速诊断和解决;给上级主管提供数据库的日常运行状态报告。

    J2EE管理员:集中管理企业环境的所有数据库,对可用性进行监控;主动识别J2EE应用方面的问题,在应用服务器出现问题时快速诊断和解决;给上级主管提供应用服务器的日常运行状态报告。

    应用管理员:管理企业环境的一个或多个应用,对最终用户的响应时间进行管理,了解应用系统的服务等级是否满足要求,为上级主管提供服务等级报告。

     IT经理:宏观了解系统中的技术关键点-主机、数据库、J2EE的运行状况,了解最终用户的响应时间,了解应用系统是否达到服务等级标准;关心关键点的性能问题及解决方法。 

    2、数据库管理

    2.1数据库监控

    Foglight提供了企业级的数据库监控能力,可以同时监控企业中众多数据库,实现数据库24X7无人职守监控,并对其深入分析。

    Foglight可以监控的数据库包括Oracle、DB2、Informix、Sybase和SQL Server。

    图:Foglight监控企业级数据库

    Foglight不仅监控数据库运行状态和性能指标,而且给出具体性能建议及数据库配置变化等信息。Foglight可以提前发现性能瓶颈,及时通知管理人员,在告警电话到来之前就着手解决故障,防止故障蔓延、恶化,影响最终用户。

    Foglight管理特色和内容包括:

    预定义规则和自定义规则

    时间控制、指标变量、影响范围

    多级阀值、阀值可调整

    发出告警、触发行动

    事件集成

    告警趋势/故障趋势分析

    指标变化趋势告警

    Foglight采用真正的仪表板,通过图形化的数据流展现数据库性能、可用性和可靠性等指标,并对指标进行关联分析。

    图:Foglight数据流展现方式

    对任何发生问题的组件,可以直接点击Foglight图形界面进行深入分析。如下图所示,利用Foglight分析会话和表空间使用状况:

    图:监控RAC中的Session

    图:管理表空间

    2.2、数据库性能分析

    Foglight Performance Analysis实现对数据库进行深入分析。Foglight Performance Analysis利用低负载、高采样的专利技术(StealthCollect)收集数据库活动状况,适合于大并发压力环境。

    Foglight Performance Analysis可以将数据库的活动状况和用户、程序以及数据库耗结合起来,并将这些信息显示在易于使用的、形化的界面中。

    Foglight Performance Analysis提供了大量特征用于7X24自动分析数据库性能并给出具体建议。

    系统总体视图:实时反映各种数据库等待事件和OS指标,及变化曲线。

    性能基线能力:可以根据应用实际压力自动设置性能基线。对超出基线的指标给出告警。

    专家建议能力:对当前的数据库运行状态进行健康检查,给出合理化建议。

    下钻能力:快速识别性能瓶颈和应用运行趋势,直接找到产生性能问题的根本原因。

    自动报告能力:可以针对重要的系统管理内容,如系统健康状况、性能和容量规划等方面产生和调度历史诊断报告。

    实时实例监控能力:包括会话的活动情况,并定位到具体的执行程序。

    改变跟踪能力:识别和追踪系统、实例、Schema、SQL执行计划的变化。

    超长数据存储。可以保存性能数据长达数年,Foglight PA自动过滤、聚合数据。

    Foglight Performance Analysis进行能自动分析数据库性能问题,提供包括Top SQL、各种等待事件分布等在内的各种信息。特别地,录了所有Top SQL的执行时间、CPU使用时间、IO等待时间、网络等待时间、Redo等待时间、执行次数等详细信息,随时可以根据各种资源使用排序Top SQL。如下图所示:

    图:Foglight Performance Analysis分析执行次数最多的Top SQL

    Foglight Performance Analysis提供了一个完整的诊断、分析、解决、验证的数据库性能管理方法论。它存储了多年的、详细的性能数据,可以随时分析任意历史时间段的性能。

    通过Foglight数据库监控、直接用户反馈等手段发现性能问题,在Foglight Performance Analysis中定位问题发生时间点或时间段;

    图:定位问题发生点

    检查这一时间段中DB资源消耗与OS资源消耗的分布情况,定位资源消耗最大的部分,或者定位Top SQL;

      检查Foglight Performance Analysis给出的自动化性能建议;

    图:自动的专家级性能建议

      根据性能建议制定解决方案,并在合适的时间在数据库中实施。

      通过Foglight Performance Analysis的负载对比功能比较优化前后数据库的性能,检查是否有提升。

      如此往复,不断优化提升数据库性能。

      Foglight Performance Analysis支持的数据库包括Oracle和SQL Server。 

    3、应用服务器管理

    Foglight能够深入地诊断、定位及解决功能。发现低效率的Servlet、JSP、EJB、Java类和方法;应用服务器配置和部署问题;低效率的第三方组件;JVM 堆使用和配置问题;集群配置和负载平衡问题;内存泄露问题;运行缓慢的SQL语句等。同时提供对J2EE基础构架的监控。

    图:Foglight监控与追踪J2EE请求

      Foglight支持的应用服务器包括:WebLogic,WebSphere,Oracle Application Server,Tomcat,JBoss等。

    3.1、应用服务器监控

      Foglight对应用服务器的监控内容包括:

    1、应用服务器性能数据

      收集和监控应用服务器上部署的应用的性能数据,包括JVM使用、EJB、JMS、JDBC等。

      应用服务器实例的运行可用性信息,监控实例是否正常运行,记录运行状态。

      应用服务器实例的运行时性能数据,包括处理的事务数,提交的事务数、连接数、JAVA堆利用率、打开的Socket连接数等信息。

      应用服务器实例上部署的应用的具体信息。

      Web应用的运行信息,包括执行时间和调用的次数。

      实例JVM的使用和空闲的统计和详细信息,堆垃圾收集的统计和详细数据。

      实例的执行队列的各种信息。

      应用包含的EJB的总体运行信息,包括实体Bean、消息驱动Bean、无状态会话Bean 、有状态会话Bean等的总体使用和空闲情况。

      实例上运行的每个EJB的情况,包括实体Bean、消息驱动Bean、无状态会话Bean 、有状态会话Bean等的使用和空闲情况。

      实例上运行的每个EJB的具体信息,包括实体Bean、消息驱动Bean、无状态会话Bean 、有状态会话Bean等,以数表的形式给出具体的详细的部署和运行信息。

      实例上部署的JMS的统计和运行时详细信息,包括JMS Server、JMS队列、JMS Topic等。

      部署的每个应用的当前HTTP Session的信息。

      实例上部署的所有JDBC连接池的使用信息。

      实例上部署的所有Data Source数据源的使用信息。

      实例上部署应用的Servlet的运行信息。

      实例上的JTA的相关详细信息。

      2、应用服务器门户

      收集和应用服务器门户相关的性能数据,如门户响应时间、存取访问频率、内存使用率等。

      当前门户的基本信息。

      Portal的Portlet 的性能数据。

      Portal的服务及状态的信息。

      Portlet组成元素如Framework、Desktop、Books、Page等的性能数据。

    3、应用服务器域

      提供对域的全面监控,在整个域范围内,无论是集群的 实例,还是单独的被管理的服务器实例,只要使用一个域Agent就可以同时进行监控,实现对整个给定域的运行状况的管理。

      为了及时发现问题,Foglight预定了大量规则及时发出告警,例如某请求响应时间太长、垃圾内存回收太频繁等。下面以WebLogic为例说明Foglight预定义的规则。

      JVM类规则:包括堆使用规则、垃圾回收规则、死锁线程规则等。

      Thread Pool规则:包括执行队列线程池规则、线程池Hog规则、线程池状态规则等。

      Bean规则:包括实体Bean类规则、会话Bean类规则等。

      JDBC规则:包括JDBC连接泄露规则、重连接失败规则、池使用规则、Waiter失败规则等。

      Transaction规则:包括JTA状态规则、Rollback-Application规则、Rollback-Resource规则、Rollback-System规则、Rollback-Application(Named Transaction)规则、Rollback-Timeout规则等。

      JMS规则:包括JMS Pending Bytes规则、JMS Pending Message规则、JMS状态规则等。

      Server规则:包括健康状态规则、服务器状态规则等。

      Application State规则:包括应用实例状态规则等。

      Application Request规则:包括请求时间趋势规则、异常退出百分比规则、未完成Invocation百分比规则、按Object Count检测的内存泄漏规则、请求响应时间规则等。

      Server Security规则:包括Invalid Login Attempt规则、Locked Login Attempt规则等。

      除了上述规则外,用户也可以根据自己的需要创建或修改规则。

    3.2、应用服务器概览和深入诊断

    Foglight可以从服务器概览入手监控整个应用服务器的运行状态,该视图可显示服务器的健康状态及其服务的“总览”,并可作为查看性能问题的开始点。可使用该视图来监控服务器域及其所管理服务器的状态,以及服务器组件的运行状态(如JVM和线程池)。当出现问题时,状态图标将会变更,您可通过深入分析该问题区域以对其进行研究。

    深入某个具体的应用,可以了解服务请求,应用,JVM和服务存在的问题和具体的运行状态。

    针对某个具体的问题点(如JDBC),可以查看相关报警,进行深入诊断。

    3.3、对J2EE服务请求进行追踪

    Foglight可以监控和评测服务的响应时间,即提供对每一个应用服务器上的服务请求的性能数据的监控和收集,完整的服务请求事务指从用户发起请求到最终得到响应的全路径信息,包括从浏览器到网络、中间件各层、数据库等各层。可以监控的内容包括:

      服务请求的次数;

      平均的请求响应时间;

      服务请求中包含的JDBC模块执行的性能状况;

      服务请求整个事务路径里各层的运行时间。

      当发现有服务请求较慢或觉得有问题时,可以启动Foglight对生产系统进行手动或自动录制。如下图:

    图:Foglight监控请求发现超时并告警

    通过追踪,Foglight对事务可以进行自动关联性能数据分析,给出事务的各种性能图表,形成全局视图,包括组成事务的各个部分如HTTP、Servlet、EJB、JDBC等在整个事务中的各自执行时间,确定资源占用情况。可以快速查找事务相关的低效率的Servlet、JSP、EJB、Java类以及相应具体的方法,并给出每个组件、方法的执行时间,找到存在性能瓶颈的问题或应用中需要优化的地方。

    图:Foglight对请求的追踪结果

     

    4、基础架构管理

    Foglight能够主动地管理和监控多种操作系统和服务器,确保业务系统稳定运行。Foglight 支持所有主流的操作系统,包括AIX、Solaris、HPUX、Linux、Windows 等。Foglight提供了许多详尽的监控选项,并提供逐层深入的报警功能,使管理员能够快速识别操作系统环境中性能下降的因素。Foglight提供的主机监控指标主要包括:

      CPU的使用状况。

      内存使用状况。

      文件系统使用状况。

      进程统计信息。

      用户利用CPU,内存使用,执行进程状况。

      网络吞吐状况,网卡利用率状况,网络碰撞率,错误率等状况,网络端口状态。

      系统可用性状况;系统响应时间。

     

    5、技术架构

    Foglight 包括Foglight Management Server、Foglight Management Agent和Foglight Console三部分。

    图:Foglight技术架构(逻辑模型)

    5.1、Foglight Management Server

    Foglight Management Server包含一个智能化的规则引擎用于关联和解释Foglight收集的信息,在此基础上实现报警通知和触发行动等功能。它包含一个内置的高性能、低维护的开放式数据库,专门用来存储性能数据。数据库中的信息可用于报表和容量规划分析,也可以被导出用于其它作用。Foglight Management Server还包含一个Apache Web Server,用于Web信息展现和Web Console的使用。

    Foglight Server支持Windows、Linux和Solaris平台。

    5.2、FoglightAgent

    Foglight Agent负责按照预先定义的时间间隔收集信息并发送给Foglight Server,进行存储、分析或报警处理。Foglight Agent运行于被监控的服务器,CPU和内存占用很少,是一种轻型数据采集方案,对被监控系统和网络流量不会产生影响。

      Foglight 采用不同的收集技术,收集数据的范围覆盖操作系统、数据库、应用服务器、Web服务器、最终客户的响应时间,除此之外,Foglight还可以根据需要自己编写Agent,将需要管理的内容纳入管理构架。

      Foglight Agent支持所有流行操作系统平台包括Window、Linux、Unix平台等,以及各种流行的应用服务器平台包括WebLogic、WebSphere、Oracle AS、MQ等,和各种流行的数据库包括Oracle、DB2、Sybase、SQL Server等。

      5.3、Foglight Console

      Foglight提供基于Web界面的控制台,可用于查看性能和可用性信息、事件报警、Agent状态及报表等。整个管理环境的配置也是通过Foglight Console 完成的。

     

      6、管理方案优势

      6.1、全方位管理

      应用系统主要由基础架构和应用本身构成,Foglight运维管理覆盖到这两个方面。其中,重点和核心是针对应用的运维管理。

      Foglight提供统一的管理机制,进行操作系统、数据库、应用服务器、Web服务器和最终用户响应时间管理;同时还提供强大的开发接口,可以自定义特殊的监控管理内容,将所有的基础构架纳入管理范围。

      在应用管理方面,Foglight可以定义服务,建立服务和应用的关联,进行服务水平管理。

      6.2、性能管理

      应用运行性能直接影响业务,因此必须提供深入的性能管理手段。Foglight性能管理包括以下几个方面:

      重点针对数据库和中间件。

      运行状况的全面把握:这是应用运维管理的基础。只有实时把握应用的运行状况,才能更加积极、主动地利用和协调资源、提前制定和采取措施。

      巡检及健康检查:建立定期的巡检和健康检查制度,防患于未然。

      问题的快速定位和深入分析:当问题发生时,快速地定位问题并及时找到应对措施,将问题及时解决。

      和开发测试环境无缝结合,通过公用的“语言”,建立运维和开发之间的性能管理纽带。

      6.3、完善运维体系

      通过Foglight可以实现运维管理的自动化、专业化,起到事半功倍的作用。

      Foglight提供了强大的开发定制能力,可以据此建立企业级的应用管理平台,数据库和中间件管理员、应用管理员以及IT经理可以通过统一的界面访问Foglight。

      基于Foglight的运维管理体系包括以下几个方面的内容:

      1、建立运维人员职责和分工

      根据不同的职责和管理内容对运维人员进行分工,使运维人员的管理工作更具有针对性和专业性。

      Foglight采用基于角色的管理机制,可以有效地满足企业安全性和管理分工方面的需求。在Foglight中可以根据管理分工定义不同的角色和用户,使不同角色的用户看到不同的管理界面,执行不同的管理功能。

      2、建立故障处理流程

      当问题发生时需要根据不同的报警级别和内容启动相应的报警预案。

      3、建立巡检及健康检查制度

      建立巡检及健康检查制度可以有效保障系统的稳定运行。

      4、优化应用系统

      优化应用系统是运维管理中的一个重要内容,通过不断的优化可以使系统达到最佳的运行状态。