实现对web服务器可用性进行检测的监控系统和方法

文档序号:7894530阅读:856来源:国知局
专利名称:实现对web服务器可用性进行检测的监控系统和方法
技术领域
本发明涉及一种实现对web服务器可用性进行检测的监控系统和方法,属于计算机网络技术领域,特别是属于电信web服务器性能在线监控技术领域。
背景技术
随着电信运营商新产品和新业务的快速发展和不断商用,各种产品和业务门户 web网站的数量迅速增多,而且呈现分布式部署,这些数量众多的web网站在管理方面逐渐暴露出多方面的问题现场维护工程师或客户对web网站运行状态、性能变化趋势缺乏必要的监控和运行状况分析手段;web网站在提供服务时,由于种种突发情况,可能造成访问 web网站时间过长,以致用户体验不好,而现场维护工程师却不能及时的发现和解决问题; web网站在长时间超负载的运行即将宕机的情况下,现场维护工程师或客户无法在第一时间知道并进行处理,导致web网站发生故障,无法提供服务;当现场维护工程师或客户发现 web网站无法提供服务时,通常需要一系列的检查,所以无法快速的定位到故障发生的原因,不能够快速的恢复服务;web网站存在安全漏洞隐患,如彩铃网站被外挂脚本攻击、网站内容被篡改等,而web网站很难彻底根除安全隐患。因此如何能够实时在线无侵入地对网络web服务器进行可用性监控成为目前电信网一个急需要解决的技术难题。

发明内容
有鉴于此,本发明的目的是发明一种实现对web服务器可用性进行检测的监控系统和方法,能够实现对web服务器的实时在线无侵入检测,达到web服务器可用性的实时监控和故障告警功能。为了达到上述目的,本发明提出了实现对web服务器可用性进行检测的监控系统,所述监控系统包括如下子系统监控项目执行子系统该子系统包括监控项目调度模块、检测任务调度模块和代理模块,该子系统的功能是负责监控项目的调度、执行检测任务,保存检测结果等,是本发明所述监控系统的最核心后台子系统;核心数据库子系统该子系统是整个监控系统的数据中心,是其它各子系统之间的联系纽带,主要包括代理信息库、监控项目库、检测任务结果库、账户管理库和权限管理库,该子系统的功能是组织、存储和管理整个监控系统的数据,并向其它子系统提供数据支持,具体是存储监控项目执行子系统所得到的检测结果数据,给告警子系统提供最新的检测结果数据,给统计分析子系统提供过往的检测结果数据等;告警子系统,该子系统包括告警处理模块和告警信息库,该子系统的功能是按照设定的告警策略,对最新的检测结果数据进行分析,当所监控web服务器出现异常时,实现及时告警,并进行告警抑制,当所监控web服务器恢复正常时实现及时的告警清除;所述的告警策略包括监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条数和监控项目的检测响应时间阀值等参数的设置;所述的监控项目告警分析前溯条数是指告警子系统在每次进行告警分析时要提取所设定前溯条数的最近检测结果,该监控项目告警分析前溯条数为系统所设定的大于等于I的自然数;所述的监控项目告警产生抑制条数是指即告警子系统只有连续分析到此抑制条数的表示监控项目出现错误的检测结果后才产生告警,该监控项目告警产生抑制条数为系统所设定的大于等于I的自然数; 监控项目告警清除抑制条数是指告警子系统在监控项目异常前提下,连续分析到此条数的正常检测结果时才产生告警清除,该监控项目告警清除抑制条数为系统所设定的大于等于 I的自然数; 统计分析子系统该子系统包括统计分析模块、监控报告通知模块和统计信息库, 该子系统的功能是负责本发明所述监控系统的统计功能,具体是统计检测结果数据,并保存在统计信息库中;定时生成监控报告,并发送给指定管理人员;统计的指标包括监控项目可用率、监控项目检测平均响应时间、监控项目检测最长响应时间、监控项目检测最短响应时间、监控项目检测响应时间分布、不可用时间段、检测失败次数和累计故障总时长;通信子系统该子系统包括短信模块、邮件模块和其他通信模块,该子系统的功能是为告警子系统和统计分析子系统提供各类通知途径,将告警子系统产生的告警信息通过短信、邮件或其它方式推送给用户,将统计分析子系统生成的监控报告发送给指定管理人员。所述的监控项目执行子系统中的各个模块的具体功能如下监控项目调度模块监控项目调度模块是本发明监控系统最核心的调度模块,负责从监控项目库中提取监控项目信息,根据监控项目的变化,调整调度计划,修改监控项目的执行;调度所有监控项目,按照监控项目的监控属性执行检测任务的调度,把检测任务发送给检测任务调度模块,并保存检测执行结果;所述监控项目的监控属性,包括监控项目标识ID、监控项目更新时间、监控项目创建时间、监控项目的存在状态、监控项目的监控时间间隔、监控时间段开始时间、监控时间段结束时间、监控项目在检测失败后的重试次数、监控项目在检测失败后重试时间间隔、监控项目的检测响应时间阀值、监控项目的运行状态、 监控项目检测的HTTP/HTTPS请求方法、监控项目检测的HTTP/HTTPS请求头信息、监控项目检测的HTTP/HTTPS验证用户名、监控项目检测的HTTP/HTTPS验证密码、监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条数;检测任务调度模块检测任务调度模块是监控项目执行子系统的调度执行模块, 负责各个监控项目的调度执行,向监控项目调度模块提供接口,接收来自监控项目调度模块的检测任务,将检测任务分解为多个检测操作,并将检测操作形成检测指令分配给各个代理点执行,并收集监控返回结果,回送给监控项目调度模块;代理模块代理模块负责接收和执行来自检测任务调度模块的检测指令,并返回检测操作的响应结果;所述的检测任务调度模块与代理模块之间采用服务器-客户端模式进行连接,其中检测任务调度模块为服务器,代理模块为客户端;检测任务调度模块与代理模块之间通过HTTP/HTTPS协议和流推送来实现双向通信;代理模块能够连接到检测任务调度模块,注册该代理模块所在代理点的状态信息;保持与检测任务调度模块的长连接,与检测任务调度模块进行心跳;从检测任务调度模块获取检测指令并执行,返回相应检测结果;代理模块部署在一个或多个代理点上;所述代理点是指网络中安装和运行代理模块的物理网元;所述的检测任务调度模块分配给代理模块的检测指令分为三类URL检测操作指令、代理点环境检测操作指令、代理模块升级操作指令;所述的URL检测操作指令是指检测任务调度模块发送包含待检测监控项目的URL地址的命令给代理模块,促使代理模块启动检测过程;所述的代理点环境检测操作指令是指检测任务调度模块发送指令给代理模块,促使代理模块检测所在代理点的网络情况;所述的代理模块升级操作指令是指检测任务调度模块发送包含升级后的代理模块可执行代码包的URL地址的指令给代理模块,促使代理模块自动下载升级后的代理模块可执行代码包,以完成自动升级。所述的核心数据库子系统中各个模块的具体功能如下代理信息库代理信息库用于保存所有代理点的基本信息和状态信息;基本信息包括代理点标识ID、代理点网络位置、代理点的类型、代理验证标识ID ;代理状态信息包括代理连接情况、代理运行环境相关信息、代理DNS相关信息;其中基本信息由系统管理员录入,代理状态信息由所述的监控项目执行子系统检测和更新;监控项目库监控项目库用于存储监控项目的信息,主要包括监控项目标识ID、 监控项目的URL地址、监控项目更新时间、监控项目创建时间、监控项目的存在状态、监控项目的监控时间间隔、监控时间段开始时间、监控时间段结束时间、监控项目在检测失败后的重试次数、监控项目在检测失败后重试时间间隔、监控项目的检测响应时间阀值、监控项目的运行状态、监控项目检测的HTTP/HTTPS请求方法、监控项目检测的 HTTP/HTTPS请求头信息、监控项目检测的HTTP/HTTPS验证用户名、监控项目检测的HTTP/HTTPS验证密码、监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条数;检测任务结果库用于存储检测任务的结果,对外提供检测任务的搜索、查询等服务;检测任务结果包括基本信息和扩展信息,所述的基本信息包括监控项目标识ID、检测任务发起时间和各个代理点返回的检测数据;所述的扩展信息包括内容异常标志位和检测状态标志位;检测任务结果的基本信息是只读的,而扩展信息可由其他模块修改;账户管理库用于存储系统注册用户的基本信息;信息主要包括注册用户的标识 ID,注册用户名,注册用户的邮箱,注册用户的手机号码,注册用户的登陆密码;权限管理库存储系统所有注册用户的权限信息,权限信息包括注册用户的标识 ID、注册用户的类型和注册用户的权限。所述的告警子系统中各个模块的具体功能如下告警处理模块告警模块主要负责分析检测结果数据,及时向用户反馈所监控 web服务器的故障,具体是定时去检测任务结果库中读取最新的检测结果数据,根据检测结果数据分析被监控web服务器的可用性;利用所得到的所监控web服务器的可用性信息, 结合告警信息库和用户设定的告警策略来决定是否向注册用户或管理员发送告警或告警清除息;告警信息库存储监控项目的告警和故障信息,包括发送告警的记录、监控项目的每次故障发生的开始时间、结束时间和故障类型等;在告警处理模块需要时,告警信息库会向告警处理模块提供所有监控项目的上次检测状态;同时提供特定监控项目前N次检测的结果状态,以便告警处理模块决定是否要发送告警或告警清除信息,其中N是一个自然数, 由创建该特定监控项目的注册用户设定。所述的统计分析子系统中各个模块的具体功能如下统计分析模块根据统计需求,定时从检测任务结果库中获取检测任务结果,对检测任务结果按不同时间段进行归类统计和分析,形成中间结果数据,并将这些中间结果数据保存到统计信息库中;监控报告模块定时将监控项目的运行状况、告警信息、统计报表等通知给相关系统管理人员,具体是按照报表发送周期定时从统计信息库、告警信息库等处获取相应周期内的相关信息通过邮件等方式发送给指定接收人员。统计信息库存储统计分析模块所产生的中间结果数据,中间结果数据主要包括有检测失败时间段、检测失败次数、累计故障总时长、平均可用率、可用率级别、可用率排名、故障类型、各时间段域名系统DNS解析响应时间、各时间段传输控制协议TCP连接响应时间、各时间段数据上传响应时间、各时间段等待响应时间、各时间段页面下载响应时间, 其中上述的各种响应时间均包括最长响应时间、最短响应时间、平均响应时间、平均响应时间分布、响应时间稳定性级别和响应时间稳定性排名等数据;前面所述的可用率级别分为高级、中级和低级三个级别,高级是指监控项目在统计时间段内的可用率保持在100%,中级是指监控项目在统计时间段内的可用率维持在95% 100%,低级是指监控项目在统计时间段内的可用率低于95% ;前面所述的响应时间稳定性级别分为不稳定、稳定和非常稳定三个级别,非常稳定级别是指监控项目在统计时间段内不同时段上其平均响应时间的标准方差小于1,稳定级别是指监控项目在统计时间段内不同时段上其平均响应时间的标准方差在1-2之间,不稳定级别是指监控项目在统计时间段内不同时段上其平均响应时间的标准方差大于2。所述的通信子系统中各个模块的具体功能如下短信模块短信模块的主要功能是为本发明监控系统提供短信通信能力,具体功能是短信发送、长短信自动拆分、短信排队和流量控制、短信发送结果通知、短信自动重发等;短信模块作为一个单独HTTP/HTTPS服务进行部署,对外开放HTTP/HTTPS接口,通过 HTTP/HTTPS调用来发送短信,短信模块对外隐藏了短信发送的细节,不需要用户了解短信发送的具体方式;邮件模块邮件模块的主要功能是为本发明监控系统提供邮件通信能力;其他通信模块其他通信模块的主要功能是为本发明监控系统提供智能手机信息推送能力。 所述的监控项目是本发明所述监控系统的最小监控单位,是一个静态的概念,由要进行监控的一个统一资源定位符URL和其监控属性组成,其中监控属性包括监控项目标识ID、所监控统一资源定位符URL的承载协议、监控策略、告警策略、代理点和监控状态;上面所述的监控项目标识ID是监控项目的唯一标识,从零开始,依次递增,不重复;所述的所监控统一资源定位符URL的承载协议是指访问该监控统一资源定位符URL的网络协议;所述的监控策略进一步包括监控频率、执行时间段和超时时间三个子属性;所述的检测任务是指按照设定的时间间隔对指定的监控项目所进行的检测,一个检测任务可由在一个或多个代理点上执行的一个或多个检测操作构成;所述的检测操作是指对监控项目实施检测的具体过程。所述的监控系统的子系统之间、模块之间,采用统一接口进行信息的交互,统一接口采用超文本传送协议HTTP/安全超文本传输协议HTTPS协议与爪哇脚本对象标记法JSON 格式数据相结合的方式来实现;所述的JSON格式数据的具体格式为{ “key”:” value”},其中key表示数据名称,value表示数据的具体取值,各数据并不按照顺序排列,只靠key区分;JSON通过put ( “key”, ” value”)来存数据,通过get ( “key”)来取数据。所述的代理模块采用基于虚拟机技术的瘦客户端方式来实现,检测任务调度模块把检测指令发送给代理模块;所述的检测指令有可选的数据项和必选的代码项组成,数据项是指与该检测任务相关的数据或下载该检测任务相关数据的统一资源定位符URL,代码项是指该检测任务的可执行代码或下载该检测任务可执行代码的统一资源定位符URL ;代理模块可以缓存检测任务的可执行代码,当本地缓存的可执行代码与新收到的检测任务指令中可执行代码版本一致的话,可以直接使用本地缓存的可执行代码,而不需要再下载。 本发明还提出了实现对web服务器可用性进行检测的监控方法,所述监控方法包括下列操作步骤(I)根据监控需求,建立监控项目库,并根据网络情况,建立代理信息库;(2)监控项目调度模块按照设定的调度策略,把监控项目分配到检测任务调度模块,把返回的监控结果保存在检测任务结果库中;(3)检测任务调度模块将检测指令发送到所设定的代理点执行检测任务,并收集监控返回结果,回送给监控项目调度模块;(4)代理模块执行来自检测任务调度模块的检测指令,并返回检测操作的响应结果;(5)统计分析模块定时从检测任务结果库中获取检测任务结果,对检测任务结果按不同时间段进行归类统计和分析,形成中间结果数据,并将这些中间结果数据保存到统计信息库中;(6)告警处理模块定时从检测任务结果库中读取最新未读取过的检测结果,并对检测结果进行分析和处理,并把处理结果保存在告警信息库中;(7)监控报告通知模块定时将监控项目的运行状况、告警信息、统计报表等通过通信子系统通知给相关管理人员。所述步骤(2)的具体内容包括下列操作步骤(21)按照设定的流量控制调度方法,启动检测间隔定时器,在每个监控项目的检测周期到达时触发监控项目给检测任务调度模块;(22)启动结果超时定时器等待检测任务的检测结果,如果在结果超时定时器到期时监控结果仍未返回,则认为本次检测任务执行失败,自动创建超时失败检测结果;否则接收检测任务调度模块返回的检测结果;(23)监控项目调度模块对检测结果进行数据提取,并保存到检测任务结果库中。 所述的提取的检测结果数据包括检测任务标识ID、检测任务的开始时间、检测任务的结束时间、DNS解析时间、TCP连接建立时间、检测的上传时间、检测的下载时间、检测发送的 HTTP请求内容、检测接收到的HTTP响应内容、检测接收到的HTTP响应码、检测使用的代理点标识ID、错误标识ID和错误信息。所述步骤(21)中设定的流量控制调度方法的具体内容是监控项目调度模块按照均匀调度方法对监控项目进行调度,具体可以采用对监控项目标识ID取模的方式来实现。所述步骤(21)和步骤(22)中定时器的实现方法是由于监控项目调度模块所使用的定时器数量多,至少是监控项目数量的两倍,且定时器触发时间间隔不长,所以定时器的实现方法对本发明监控项目调度模块的性能有很大影响,本发明具体可采用如下三种实现方法第一种方法是把所有的检测任务都放入一个执行队列池,并设定每个检测任务执行的时间,所述的执行队列池会扫描所有检测任务,如果时间到了某个检测任务的执行时间,那么该检测任务被执行;第二种方法是按照优先级队列实现定时器,即按照每个定时器的下一次到期时间对定时器进行排序,然后启动一个定时器,每次仅计算队头定时器的到期时间,并按照这个时间设置定时,到期后取出该队头定时器,并重新计算该定时器下一次定时时间并重新放入优先级队列;第三种方法是使用一个扫描定时器,按照秒级定时,每秒扫描所有定时器,如果发现有定时器到期,则产生一个检测任务到任务队列中。
所述步骤(3)的具体内容包括下列操作步骤(31)检测任务的调度执行对外开放接口,接收监控项目调度模块发来的检测任务;接口调用者主要是“监控项目调度模块”,也可以是本发明系统之外的其他实体;根据检测任务的属性,将检测任务形成检测指令推送给相应代理点并启动超时计时器;等待代理点返回检测结果,将检测结果返回给监控项目调度模块;(32)负责各个代理点的管理、状态更新和在线升级作为服务器维护与代理点之间的连接;根据代理点连接状态等更新代理库,状态包括代理点是否可用、代理模块版本、 代理点所在网路信息等内容;负责进行代理模块的自动在线升级。所述步骤(4)的具体内容包括下列操作步骤(41)代理模块从检测指令所携带的数据中取出要监控URL的信息;(42)执行URL检测任务,具体包括下列子步骤(421)解析所监控URL中域名,获取IP地址和端口号;(422)建立套接字socket连接;(423)上传请求;(424)等待所监控 web服务器返回结果;(425)获取结果;(43)生成结果数据,结果数据中应该包括检测任务基本信息、接收到检测任务的时间、步骤(42)中每个子步骤的起始时间和执行结果、完整的请求和响应消息。所述步骤(5)的具体内容包括下列操作步骤(51)统计分析模块定时从检测任务结果库中读取检测任务结果;(52)将检测任务结果按照监控项目进行归类,然后对每个监控项目进行统计,产生中间结果数据;所述的对每个监控项目进行统计的统计项目包括检测失败时间段、检测失败次数、累计故障总时长、平均可用率、故障类型、响应时间、可用率级别、可用率排名、 响应时间稳定性级别、响应时间稳定性排名;(53)统计分析模块将产生的中间结果数据保存到统计信息库中;(54)按照设定的发送频率定期从统计信息库中取出统计数据,通过通信子系统发送给用户。所述步骤(6)的具体内容包括下列操作步骤(61)故障确认告警处理模块定时从检测任务结果库中读取最新的未被读取过的检测任务结果,然后进行分析,如果根据分析结果和告警策略发现某个监控项目发生异常,再去告警信息库中查看该监控项目上次的状态,如果上次的状态为正常,则表示该监控项目发生故障,通过通信子系统告知用户,并将故障信息存入告警信息库;(62)告警抑制当监控项目故障确认后,会告知用户,同时会将此次故障存入告警信息库;当该监控项目又被检测到故障后,则查询告警信息库,如果该监控项目目前已处于故障状态并且已经告知用户了,则不需再次告知用户,即告警抑制;(63)告警清除告警处理模块定时从检测任务结果库中读取最新的未被读取过的检测任务结果,然后进行分析,如果根据分析结果和告警策略发现某个监控项目正常,再去告警信息库中查看该监控项目上次的状态,如果上次的状态为故障,则表示该监控项目故障已修复,通过通信子系统告知用户,并将告警清除信息存入告警信息库。本发明的有益效果在于系统采用分布式和瘦客户代理相结合的模式,能够支持多种接入网络多个网络地址的联合可用性检测,实现了对web服务器的无侵入式实时在线检测,同时能够将web服务器的故障和恢复情况及时反馈给网站管理者。


图I是本发明所提出的实现对web服务器可用性进行检测的监控系统的结构示意图。图2是本发明所提出的实现对web服务器可用性进行检测的监控方法的流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。参见图1,介绍本发明提出的实现对web服务器可用性进行检测的监控系统,所述监控系统包括如下子系统监控项目执行子系统该子系统包括监控项目调度模块、检测任务调度模块和代理模块,该子系统的功能是负责监控项目的调度、执行检测任务,保存检测结果等,是本发明所述监控系统的最核心后台子系统;核心数据库子系统该子系统是整个监控系统的数据中心,是其它各子系统之间的联系纽带,主要包括代理信息库、监控项目库、检测任务结果库、账户管理库和权限管理库,该子系统的功能是组织、存储和管理整个监控系统的数据,并向其它子系统提供数据支持,具体是存储监控项目执行子系统所得到的检测结果数据,给告警子系统提供最新的检测结果数据,给统计分析子系统提供过往的检测结果数据等;
告警子系统,该子系统包括告警处理模块和告警信息库,该子系统的功能是按照设定的告警策略,对最新的检测结果数据进行分析,当所监控web服务器出现异常时,实现及时告警,并进行告警抑制,当所监控web服务器恢复正常时实现及时的告警清除;所述的告警策略包括监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条数和监控项目的检测响应时间阀值等参数的设置;所述的监控项目告警分析前溯条数是指告警子系统在每次进行告警分析时要提取所设定前溯条数的最近检测结果,该监控项目告警分析前溯条数为系统所设定的大于等于I的自然数,比如10,表示告警子系统在每次进行告警分析时,要提取10条最近的检测结果;所述的监控项目告警产生抑制条数是指即告警子系统只有连续分析到此抑制条数的表示监控项目出现错误的检测结果后才产生告警,该监控项目告警产生抑制条数为系统所设定的大于等于I的自然数,比如8,表示告警子系统只有连续分析到8条表示监控项目出现错误的检测结果后才产生告警;监控项目告警清除抑制条数是指告警子系统在监控项目异常前提下,连续分析到此条数的正常检测结果时才产生告警清除,该监控项目告警清除抑制条数为系统所设定的大于等于I的自然数,比如6,表示告警子系统在监控项目异常前提下连续分析到6条正常检测结果时才
产生告警清除; 统计分析子系统该子系统包括统计分析模块、监控报告通知模块和统计信息库, 该子系统的功能是负责本发明所述监控系统的统计功能,具体是统计检测结果数据,并保存在统计信息库中;定时生成监控报告,并发送给指定管理人员;统计的指标包括监控项目可用率、监控项目检测平均响应时间、监控项目检测最长响应时间、监控项目检测最短响应时间、监控项目检测响应时间分布、不可用时间段、检测失败次数和累计故障总时长;通信子系统该子系统包括短信模块、邮件模块和其他通信模块,该子系统的功能是为告警子系统和统计分析子系统提供各类通知途径,将告警子系统产生的告警信息通过短信、邮件或其它方式推送给用户,将统计分析子系统生成的监控报告发送给指定管理人员。所述的监控项目执行子系统中的各个模块的具体功能如下监控项目调度模块监控项目调度模块是本发明监控系统最核心的调度模块,负责从监控项目库中提取监控项目信息,根据监控项目的变化,调整调度计划,修改监控项目的执行;调度所有监控项目,按照监控项目的监控属性执行检测任务的调度,把检测任务发送给检测任务调度模块,并保存检测执行结果;所述监控项目的监控属性,包括监控项目标识ID (监控项目的唯一标识,从0开始,依次递增,不会重复)、监控项目更新时间、监控项目创建时间、监控项目的存在状态即该监控项目是否已被删除、监控项目的监控时间间隔、监控时间段开始时间、监控时间段结束时间、监控项目在检测失败后的重试次数、监控项目在检测失败后重试时间间隔、监控项目的检测响应时间阀值、监控项目的运行状态(即该监控项目的运行状态是暂停还是运行)、监控项目检测的超文本传送协议HTTP/安全超文本传输协议HTTPSHTTP/HTTPS请求方法(即是GET请求方法还是POST请求方法)、监控项目检测的HTTP/HTTPS请求头信息、监控项目检测的HTTP/HTTPS验证用户名、监控项目检测的 HTTP/HTTPS验证密码、监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条数;检测任务调度模块检测任务调度模块是监控项目执行子系统的调度执行模块, 负责各个监控项目的调度执行,向监控项目调度模块提供接口,接收来自监控项目调度模块的检测任务,将检测任务分解为多个检测操作,并将检测操作形成检测指令分配给各个代理点执行,并收集监控返回结果,回送给监控项目调度模块;代理模块代理模块负责接收和执行来自检测任务调度模块的检测指令,并返回检测操作的响应结果;所述的检测任务调度模块与代理模块之间采用服务器-客户端模式进行连接,其中检测任务调度模块为服务器,代理模块为客户端;检测任务调度模块与代理模块之间通过HTTP/HTTPS协议和流推送(Comet Streaming)来实现双向通信;代理模块能够连接到检测任务调度模块,注册该代理模块所在代理点的状态信息;保持与检测任务调度模块的长连接,与检测任务调度模块进行心跳;从检测任务调度模块获取检测指令并执行,返回相应检测结果;代理模块部署在一个或多个代理点上,代理模块的数目根据实际监控项目的需要可设置很多个,在图I中示意性画了三个;所述代理点是指网络中安装和运行代理模块的物理网元;所述的检测任务调度模块分配给代理模块的检测指令分为三类URL检测操作指令、代理点环境检测操作指令、代理模块升级操作指令;所述的URL检测操作指令是指检测任务调度模块发送包含待检测监控项目的URL地址的命令给代理模块, 促使代理模块启动检测过程;所述的代理点环境检测操作指令是指检测任务调度模块发送指令给代理模块,促使代理模块检测所在代理点的网络情况,如网络设置,DNS设置等;所述的代理模块升级操作指令是指检测任务调度模块发送包含升级后的代理模块可执行代码包的URL地址的指令给代理模块,促使代理模块自动下载升级后的代理模块可执行代码包,以完成自动升级所述的核心数据库子系统中各个模块的具体功能如下代理信息库代理信息库用于保存所有代理点的基本信息和状态信息;基本信息包括代理点标识ID、代理点网络位置(比如北京联通网络、北京电信网络、北京移动网络或杭州电信网络等)、代理点的类型(是稳定的固定代理点还是不稳定的临时代理点)、代理验证标识ID(主要用于代理点发起连接后标识自身的身份证明,可以采用用户名加密码的形式);代理状态信息包括代理连接情况(当前是否连接、状态是否正常,最近一次接受任务时间等)、代理运行环境相关信息(如操作系统等)、代理DNS相关信息;其中基本信息由系统管理员录入,代理状态信息由所述的监控项目执行子系统更新;监控项目库监控项目库用于存储监控项目的信息,主要包括监控项目标识ID、 监控项目的URL地址、监控项目更新时间、监控项目创建时间、监控项目的存在状态、监控项目的监控时间间隔、监控时间段开始时间、监控时间段结束时间、监控项目在检测失败后的重试次数、监控项目在检测失败后重试时间间隔、监控项目的检测响应时间阀值、监控项目的运行状态、监控项目检测的HTTP/HTTPS请求方法、监控项目检测的HTTP/HTTPS请求头信息、监控项目检测的HTTP/HTTPS验证用户名、监控项目检测的HTTP/HTTPS验证密码、监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条数;检测任务结果库用于存储检测任务的结果,对外提供检测任务的搜索、查询等服务;检测任务结果包括基本信息和扩展信息,所述的基本信息包括监控项目标识ID、检测任务发起时间和各个代理点返回的检测数据;所述的扩展信息包括内容异常标志位和检测状态标志位;检测任务结果的基本信息是只读的,而扩展信息可由其他模块修改;账户管理库用于存储系统注册用户的基本信息;信息主要包括注册用户的标识 ID,注册用户名,注册用户的邮箱,注册用户的手机号码,注册用户的登陆密码;权限管理库存储系统所有注册用户的权限信息,权限信息包括注册用户的标识 ID,注册用户的类型(分为超级管理员、一般管理员和普通用户三类),注册用户的权限。所述的告警子系统中各个模块的具体功能如下告警处理模块告警模块主要负责分析检测结果数据,及时向用户反馈所监控 web服务器的故障,具体是定时去检测任务结果库中读取最新的检测结果数据,根据检测结果数据分析被监控web服务器的可用性;利用所得到的所监控web服务器的可用性信息, 结合告警信息库和用户设定的告警策略来决定是否向注册用户或管理员发送告警或告警清除息;告警信息库存储监控项目的告警和故障信息,包括发送告警的记录、监控项目的每次故障发生的开始时间、结束时间和故障类型等;在告警处理模块需要时,告警信息库会向告警处理模块提供所有监控项目的上次检测状态(是否可用,如果不可用,是何种故障);同时提供特定监控项目前N次检测的结果状态,以便告警处理模块决定是否要发送告警或告警清除信息,其中N是一个自然数,由创建该特定监控项目的注册用户设定。
所述的统计分析子系统中各个模块的具体功能如下统计分析模块根据统计需求,定时从检测任务结果库中获取检测任务结果,对检测任务结果按不同时间段进行归类统计和分析,形成中间结果数据(如日报、周报、月报等报表),并将这些中间结果数据保存到统计信息库中;监控报告模块定时将监控项目的运行状况、告警信息、统计报表等通知给相关系统管理人员,具体是按照报表发送周期(如每日、每月、每年等)定时从统计信息库、告警信息库等处获取相应周期内的相关信息(如统计报表和告警信息等)通过邮件等方式发送给指定接收人员。统计信息库存储统计分析模块所产生的中间结果数据,中间结果数据主要包括有检测失败时间段、检测失败次数、累计故障总时长、平均可用率、可用率级别、可用率排名、故障类型、各时间段DNS解析响应时间、各时间段TCP连接响应时间、各时间段数据上传响应时间、各时间段等待响应时间、各时间段页面下载响应时间,其中上述的各种响应时间均包括最长响应时间、最短响应时间、平均响应时间、平均响应时间分布、响应时间稳定性级别和响应时间稳定性排名等数据;前面所述的可用率级别分为高级、中级和低级三个级别,高级是指监控项目在统计时间段内的可用率保持在100%,中级是指监控项目在统计时间段内的可用率维持在95% 100%,低级是指监控项目在统计时间段内的可用率低于 95% ;前面所述的响应时间稳定性级别分为不稳定、稳定和非常稳定三个级别,非常稳定级别是指监控项目在统计时间段内不同时段上其平均响应时间的标准方差小于1,稳定级别是指监控项目在统计时间段内不同时段上其平均响应时间的标准方差在1-2之间,不稳定级别是指监控项目在统计时间段内不同时段上其平均响应时间的标准方差大于2。所述的通信子系统中各个模块的具体功能如下短信模块短信模块的主要功能是为本发明监控系统提供短信通信能力,具体功能是短信发送、长短信自动拆分、短信排队和流量控制、短信发送结果通知、短信自动重发等;短信模块作为一个单独HTTP/HTTPS服务进行部署,对外开放HTTP/HTTPS接口,通过 HTTP/HTTPS调用来发送短信,短信模块对外隐藏了短信发送的细节,不需要用户了解短信发送的具体方式;邮件模块邮件模块的主要功能是为本发明监控系统提供邮件通信能力;其他通信模块其他通信模块的主要功能是为本发明监控系统提供智能手机信息推送能力。所述的监控项目是本发明所述监控系统的最小监控单位,是一个静态的概念,由要进行监控的一个统一资源定位符URL和其监控属性组成,其中监控属性包括监控项目标识ID、所监控统一资源定位符URL的承载协议、监控策略、告警策略、代理点和监控状态;上面所述的监控项目标识ID是监控项目的唯一标识,从零开始,依次递增,不重复;所述的所监控统一资源定位符URL的承载协议是指访问该监控统一资源定位符URL的网络协议(取值可以是HTTP或HTTPS或两者都可以);所述的监控策略进一步包括监控频率、执行时间段和超时时间三个子属性;所述的检测任务是指按照设定的时间间隔对指定的监控项目所进行的检测,一个检测任务可由在一个或多个代理点上执行的一个或多个检测操作构成; 所述的检测操作是指对监控项目实施检测的具体过程。 所述的监控系统的子系统之间、模块之间,采用统一接口进行信息的交互,统一接口采用HTTP/HTTPS协议与爪哇脚本对象标记法JSON(JavaScript Object Notation)格式数据相结合的方式来实现;所述的JSON数据格式为{ “key” ” value”},key表示数据名称,value表示数据的具体取值,各数据并不按照顺序排列,只靠key区分。JSON通过 put ( “key”, ” value”)来存数据,通过get ( “key”)来取数据。所述的代理模块采用基于虚拟机技术的瘦客户端方式来实现,检测任务调度模块把检测指令发送给代理模块;所述的检测指令有可选的数据项和必选的代码项组成,数据项是指与该检测任务相关的数据或下载该检测任务相关数据的统一资源定位符URL,代码项是指该检测任务的可执行代码或下载该检测任务可执行代码的统一资源定位符URL ;代理模块可以缓存检测任务的可执行代码,当本地缓存的可执行代码与新收到的检测任务指令中可执行代码版本一致的话,可以直接使用本地缓存的可执行代码,而不需要再下载。参见图2,介绍本发明所提出的实现对web服务器可用性进行检测的监控方法,所述监控方法包括下列操作步骤(I)根据监控需求,建立监控项目库,并根据网络情况,建立代理信息库;(2)监控项目调度模块按照设定的调度策略,把监控项目分配到检测任务调度模块,把返回的监控结果保存在检测任务结果库中;(3)检测任务调度模块将检测指令发送到所设定的代理点执行检测任务,并收集监控返回结果,回送给监控项目调度模块;(4)代理模块执行来自检测任务调度模块的检测指令,并返回检测操作的响应结果;(5)统计分析模块定时从检测任务结果库中获取检测任务结果,对检测任务结果按不同时间段进行归类统计和分析,形成中间结果数据,并将这些中间结果数据保存到统计信息库中;(6)告警处理模块定时从检测任务结果库中读取最新未读取过的检测结果,并对检测结果进行分析和处理,并把处理结果保存在告警信息库中;(7)监控报告通知模块定时将监控项目的运行状况、告警信息、统计报表等通过通信子系统通知给相关管理人员。所述步骤(2)的具体内容包括下列操作步骤(21)按照设定的流量控制调度方法,启动“检测间隔定时器”,在每个监控项目的检测周期到达时触发监控项目给检测任务调度模块;(22)启动“结果超时定时器”等待检测任务的检测结果,如果在“结果超时定时器” 到期时监控结果仍未返回,则认为本次检测任务执行失败,自动创建超时失败检测结果;否则接收“检测任务调度模块”返回的检测结果;(23)监控项目调度模块对检测结果进行数据提取,并保存到“检测任务结果库” 中。所述的提取的检测结果数据包括检测任务标识ID,检测任务的开始时间,检测任务的结束时间,DNS解析时间,TCP连接建立时间,检测的上传时间(上传HTTP/HTTPS请求时间),检测的下载时间(下载HTTP/HTTPS响应内容时间即获取监控项目URL页面内容的时间),检测发送的HTTP/HTTPS请求内容,检测接收到的HTTP/HTTPS响应内容,检测接收到的 HTTP/HTTPS响应码,检测使用的代理点标识ID,错误标识ID和错误信息。所述步骤(21)中设定的流量控制调度方法的具体内容是监控项目调度模块按照均匀调度方法对监控项目进行调度,具体可以采用对监控项目标识ID取模的方式来实现。比如,初期在监控项目不多的情况下,可先取模数为60,后期随着监控项目的增多,可相应增加为120、180、240等。如果新建一个标识ID为434的监控项目,检测周期为I 分钟,选60作为模数,于是434对60取模后的余数为14,如果当前时间为14:01:05,那么此监控项目检测任务的后续检测时间依次为14:01:14、14:02:14、14:03:14,依此类推。所述步骤(21)和步骤(22)中定时器的实现方法是由于监控项目调度模块所使用的定时器数量多,至少是监控项目数量的两倍,且定时器触发时间间隔不长,所以定时器的实现方法对本发明监控项目调度模块的性能有很大影响,本发明具体可采用如下三种实现方法第一种方法是把所有的检测任务都放入一个执行队列池,并设定每个检测任务执行的时间,所述的执行队列池会扫描所有检测任务,如果时间到了某个检测任务的执行时间,那么该检测任务被执行;第二种方法是按照优先级队列实现定时器,即按照每个定时器的下一次到期时间对定时器进行排序,然后启动一个定时器,每次仅计算队头定时器的到期时间,并按照这个时间设置定时,到期后取出该队头定时器,并重新计算该定时器下一次定时时间并重新放入优先级队列;第三种方法是使用一个扫描定时器 ,按照秒级定时,每秒扫描所有定时器,如果发现有定时器到期,则产生一个检测任务到任务队列中。所述步骤(3)的具体内容包括下列操作步骤(31)检测任务的调度执行对外开放接口,接收监控项目调度模块发来的检测任务;接口调用者主要是“监控项目调度模块”,也可以是本发明系统之外的其他实体;根据检测任务的属性,将检测任务形成检测指令推送给相应代理点并启动超时计时器;等待代理点返回检测结果,将检测结果返回给监控项目调度模块;(32)负责各个代理点的管理、状态更新和在线升级作为服务器维护与代理点之间的连接;根据代理点连接状态等更新代理库,状态包括代理点是否可用、代理模块版本、 代理点所在网路信息等内容;负责进行代理模块的自动在线升级。所述步骤(4)的具体内容包括下列操作步骤(41)代理模块从检测指令所携带的数据中取出要监控URL的信息;(42)执行URL检测任务,具体包括下列子步骤(421)解析所监控URL中域名,获取IP地址和端口号;(422)建立套接字socket连接;(423)上传请求;(424)等待所监控 web服务器返回结果;(425)获取结果;(43)生成结果数据,结果数据中应该包括检测任务基本信息、接收到检测任务的时间、步骤(42)中每个子步骤的起始时间和执行结果、完整的请求和响应消息。所述步骤(5)的具体内容包括下列操作步骤(51)统计分析模块定时从检测任务结果库中读取检测任务结果;(52)将检测任务结果按照监控项目进行归类,然后对每个监控项目进行统计,产生中间结果数据;所述的对每个监控项目进行统计的统计项目包括检测失败时间段、检测失败次数、累计故障总时长、平均可用率、故障类型、响应时间(包括最长响应时间、最短响应时间和平均响应时间)、可用率级别、可用率排名、响应时间稳定性级别、响应时间稳定性排名;(53)统计分析模块将产生的中间结果数据保存到统计信息库中;(54)按照设定的发送频率(每日、每周或每月)定期从统计信息库中取出统计数据,通过通信子系统发送给用户。所述步骤¢) 的具体内容包括下列操作步骤(61)故障确认告警处理模块定时从检测任务结果库中读取最新的未被读取过的检测任务结果,然后进行分析,如果根据分析结果和告警策略发现某个监控项目发生异常,再去告警信息库中查看该监控项目上次的状态(故障或正常),如果上次的状态为正常,则表示该监控项目发生故障,通过通信子系统告知用户,并将故障信息存入告警信息库;(62)告警抑制当监控项目故障确认后,会告知用户,同时会将此次故障存入告警信息库;当该监控项目又被检测到故障后,则查询告警信息库,如果该监控项目目前已处于故障状态并且已经告知用户了,则不需再次告知用户,即告警抑制;(63)告警清除告警处理模块定时从检测任务结果库中读取最新的未被读取过的检测任务结果,然后进行分析,如果根据分析结果和告警策略发现某个监控项目正常,再去告警信息库中查看该监控项目上次的状态(故障或正常),如果上次的状态为故障,则表示该监控项目故障已修复,通过通信子系统告知用户,并将告警清除信息存入告警信息库。对本发明所提出的监控系统和监控方法,发明人已经进行了一些验证性试验,获得了满意的实验效果。
权利要求
1.实现对web服务器可用性进行检测的监控系统,其特征在于所述监控系统包括如下子系统监控项目执行子系统该子系统包括监控项目调度模块、检测任务调度模块和代理模块,该子系统的功能是负责监控项目的调度、执行检测任务,保存检测结果等,是本发明所述监控系统的最核心后台子系统; 核心数据库子系统该子系统是整个监控系统的数据中心,是其它各子系统之间的联系纽带,主要包括代理信息库、监控项目库、检测任务结果库、账户管理库和权限管理库,该子系统的功能是组织、存储和管理整个监控系统的数据,并向其它子系统提供数据支持,具体是存储监控项目执行子系统所得到的检测结果数据,给告警子系统提供最新的检测结果数据,给统计分析子系统提供过往的检测结果数据等;告警子系统,该子系统包括告警处理模块和告警信息库,该子系统的功能是按照设定的告警策略,对最新的检测结果数据进行分析,当所监控web服务器出现异常时,实现及时告警,并进行告警抑制,当所监控web服务器恢复正常时实现及时的告警清除;所述的告警策略包括监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条数和监控项目的检测响应时间阀值等参数的设置;所述的监控项目告警分析前溯条数是指告警子系统在每次进行告警分析时要提取所设定前溯条数的最近检测结果,该监控项目告警分析前溯条数为系统所设定的大于等于I的自然数;所述的监控项目告警产生抑制条数是指即告警子系统只有连续分析到此抑制条数的表示监控项目出现错误的检测结果后才产生告警,该监控项目告警产生抑制条数为系统所设定的大于等于I的自然数;监控项目告警清除抑制条数是指告警子系统在监控项目异常前提下,连续分析到此条数的正常检测结果时才产生告警清除,该监控项目告警清除抑制条数为系统所设定的大于等于I的自然数;统计分析子系统该子系统包括统计分析模块、监控报告通知模块和统计信息库,该子系统的功能是负责本发明所述监控系统的统计功能,具体是统计检测结果数据,并保存在统计信息库中;定时生成监控报告,并发送给指定管理人员;统计的指标包括监控项目可用率、监控项目检测平均响应时间、监控项目检测最长响应时间、监控项目检测最短响应时间、监控项目检测响应时间分布、不可用时间段、检测失败次数和累计故障总时长;通信子系统该子系统包括短信模块、邮件模块和其他通信模块,该子系统的功能是为告警子系统和统计分析子系统提供各类通知途径,将告警子系统产生的告警信息通过短信、邮件或其它方式推送给用户,将统计分析子系统生成的监控报告发送给指定管理人员。
2.根据权利要求I所述的实现对web服务器可用性进行检测的监控系统,其特征在于 所述的监控项目执行子系统中的各个模块的具体功能如下监控项目调度模块监控项目调度模块是本发明监控系统最核心的调度模块,负责从监控项目库中提取监控项目信息,根据监控项目的变化,调整调度计划,修改监控项目的执行;调度所有监控项目,按照监控项目的监控属性执行检测任务的调度,把检测任务发送给检测任务调度模块,并保存检测执行结果;所述监控项目的监控属性,包括监控项目标识ID、监控项目更新时间、监控项目创建时间、监控项目的存在状态、监控项目的监控时间间隔、监控时间段开始时间、监控时间段结束时间、监控项目在检测失败后的重试次数、监控项目在检测失败后重试时间间隔、监控项目的检测响应时间阀值、监控项目的运行状态、监控项目检测的超文本传送协议HTTP/安全超文本传输协议HTTPS请求方法、监控项目检测的HTTP/HTTPS请求头信息、监控项目检测的HTTP/HTTPS验证用户名、监控项目检测的 HTTP/HTTPS验证密码、监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条数;检测任务调度模块检测任务调度模块是监控项目执行子系统的调度执行模块,负责各个监控项目的调度执行,向监控项目调度模块提供接口,接收来自监控项目调度模块的检测任务,将检测任务分解为多个检测操作,并将检测操作形成检测指令分配给各个代理点执行,并收集监控返回结果,回送给监控项目调度模块;代理模块代理模块负责接收和执行来自检测任务调度模块的检测指令,并返回检测操作的响应结果;所述的检测任务调度模块与代理模块之间采用服务器-客户端模式进行连接,其中检测任务调度模块为服务器,代理模块为客户端;检测任务调度模块与代理模块之间通过HTTP/HTTPS协议和流推送来实现双向通信;代理模块能够连接到检测任务调度模块,注册该代理模块所在代理点的状态信息;保持与检测任务调度模块的长连接,与检测任务调度模块进行心跳;从检测任务调度模块获取检测指令并执行,返回相应检测结果;代理模块部署在一个或多个代理点上;所述代理点是指网络中安装和运行代理模块的物理网元;所述的检测任务调度模块分配给代理模块的检测指令分为三类统一资源定位符URL检测操作指令、代理点环境检测操作指令、代理模块升级操作指令;所述的统一资源定位符URL检测操作指令是指检测任务调度模块发送包含待检测监控项目的URL地址的命令给代理模块,促使代理模块启动检测过程;所述的代理点环境检测操作指令是指检测任务调度模块发送指令给代理模块,促使代理模块检测所在代理点的网络情况;所述的代理模块升级操作指令是指检测任务调度模块发送包含升级后的代理模块可执行代码包的URL 地址的指令给代理模块,促使代理模块自动下载升级后的代理模块可执行代码包,以完成自动升级;所述的核心数据库子系统中各个模块的具体功能如下 代理信息库代理信息库用于保存所有代理点的基本信息和状态信息;基本信息包括代理点标识ID、代理点网络位置、代理点的类型、代理验证标识ID ;代理状态信息包括 代理连接情况、代理运行环境相关信息、代理域名系统DNS相关信息;其中基本信息由系统管理员录入,代理状态信息由所述的监控项目执行子系统检测和更新;监控项目库监控项目库用于存储监控项目的信息,主要包括监控项目标识ID、监控项目的URL地址、监控项目更新时间、监控项目创建时间、监控项目的存在状态、监控项目的监控时间间隔、监控时间段开始时间、监控时间段结束时间、监控项目在检测失败后的重试次数、监控项目在检测失败后重试时间间隔、监控项目的检测响应时间阀值、监控项目的运行状态、监控项目检测的HTTP/HTTPS请求方法、监控项目检测的HTTP/HTTPS请求头信息、监控项目检测的HTTP/HTTPS验证用户名、监控项目检测的HTTP/HTTPS验证密码、监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条数;检测任务结果库用于存储检测任务的结果,对外提供检测任务的搜索、查询等服务; 检测任务结果包括基本信息和扩展信息,所述的基本信息包括监控项目标识ID、检测任务发起时间和各个代理点返回的检测数据;所述的扩展信息包括内容异常标志位和检测状态标志位;检测任务结果的基本信息是只读的,而扩展信息可由其他模块修改;账户管理库用于存储系统注册用户的基本信息;信息主要包括注册用户的标识ID, 注册用户名,注册用户的邮箱,注册用户的手机号码,注册用户的登陆密码; 权限管理库存储系统所有注册用户的权限信息,权限信息包括注册用户的标识ID、 注册用户的类型和注册用户的权限;所述的告警子系统中各个模块的具体功能如下告警处理模块告警模块主要负责分析检测结果数据,及时向用户反馈所监控web服务器的故障,具体是定时去检测任务结果库中读取最新的检测结果数据,根据检测结果数据分析被监控web服务器的可用性;利用所得到的所监控web服务器的可用性信息,结合告警信息库和用户设定的告警策略来决定是否向注册用户或管理员发送告警或告警清除信息;告警信息库存储监控项目的告警和故障信息,包括发送告警的记录、监控项目的每次故障发生的开始时间、结束时间和故障类型等;在告警处理模块需要时,告警信息库会向告警处理模块提供所有监控项目的上次检测状态;同时提供特定监控项目前N次检测的结果状态,以便告警处理模块决定是否要发送告警或告警清除信息,其中N是一个自然数,由创建该特定监控项目的注册用户设定;所述的统计分析子系统中各个模块的具体功能如下统计分析模块根据统计需求,定时从检测任务结果库中获取检测任务结果,对检测任务结果按不同时间段进行归类统计和分析,形成中间结果数据,并将这些中间结果数据保存到统计信息库中;监控报告模块定时将监控项目的运行状况、告警信息、统计报表等通知给相关系统管理人员,具体是按照报表发送周期定时从统计信息库、告警信息库等处获取相应周期内的相关信息通过邮件等方式发送给指定接收人员;统计信息库存储统计分析模块所产生的中间结果数据,中间结果数据主要包括有 检测失败时间段、检测失败次数、累计故障总时长、平均可用率、可用率级别、可用率排名、 故障类型、各时间段域名系统DNS解析响应时间、各时间段传输控制协议TCP连接响应时间、各时间段数据上传响应时间、各时间段等待响应时间、各时间段页面下载响应时间,其中上述的各种响应时间均包括最长响应时间、最短响应时间、平均响应时间、平均响应时间分布、响应时间稳定性级别和响应时间稳定性排名等数据;前面所述的可用率级别分为高级、中级和低级三个级别,高级是指监控项目在统计时间段内的可用率保持在100%,中级是指监控项目在统计时间段内的可用率维持在95% 100 %,低级是指监控项目在统计时间段内的可用率低于95% ;前面所述的响应时间稳定性级别分为不稳定、稳定和非常稳定三个级别,非常稳定级别是指监控项目在统计时间段内不同时段上其平均响应时间的标准方差小于1,稳定级别是指监控项目在统计时间段内不同时段上其平均响应时间的标准方差在1-2之间,不稳定级别是指监控项目在统计时间段内不同时段上其平均响应时间的标准方差大于2 ;所述的通信子系统中各个模块的具体功能如下短信模块短信模块的主要功能是为本发明监控系统提供短信通信能力,具体功能是 短信发送、长短信自动拆分、短信排队和流量控制、短信发送结果通知、短信自动重发等;短信模块作为一个单独HTTP/HTTPS服务进行部署,对外开放HTTP/HTTPS接口,通过HTTP/HTTPS调用来发送短信,短信模块对外隐藏了短信发送的细节,不需要用户了解短信发送的具体方式;邮件模块邮件模块的主要功能是为本发明监控系统提供邮件通信能力;其他通信模块其他通信模块的主要功能是为本发明监控系统提供智能手机信息推送能力。
3.根据权利要求I和2所述的实现对web服务器可用性进行检测的监控系统,其特征在于所述的监控项目是本发明所述监控系统的最小监控单位,是一个静态的概念,由要进行监控的一个统一资源定位符URL和其监控属性组成,其中监控属性包括监控项目标识 ID、所监控统一资源定位符URL的承载协议、监控策略、告警策略、代理点和监控状态;上面所述的监控项目标识ID是监控项目的唯一标识,从零开始,依次递增,不重复;所述的所监控统一资源定位符URL的承载协议是指访问该监控统一资源定位符URL的网络协议;所述的监控策略进一步包括监控频率、执行时间段和超时时间三个子属性;所述的检测任务是指按照设定的时间间隔对指定的监控项目所进行的检测,一个检测任务可由在一个或多个代理点上执行的一个或多个检测操作构成;所述的检测操作是指对监控项目实施检测的具体过程。
4.根据权利要求I和2所述的实现对web服务器可用性进行检测的监控系统,其特征在于本发明所述的监控系统的子系统之间、模块之间,采用统一接口进行信息的交互,统一接口采用超文本传送协议HTTP/安全超文本传输协议HTTPS协议与爪哇脚本对象标记法JSON格式数据相结合的方式来实现;所述的JSON格式数据的具体格式为 { “key”:” value”},其中key表示数据名称,value表示数据的具体取值,各数据并不按照顺序排列,只靠key区分JSON通过put ( “key”, ” value”)来存数据,通过get ( “key”) 来取数据。
5.根据权利要求I和2所述的实现对web服务器可用性进行检测的监控系统,其特征在于所述的代理模块采用基于虚拟机技术的瘦客户端方式来实现,检测任务调度模块把检测指令发送给代理模块;所述的检测指令有可选的数据项和必选的代码项组成,数据项是指与该检测任务相关的数据或下载该检测任务相关数据的统一资源定位符URL,代码项是指该检测任务的可执行代码或下载该检测任务可执行代码的统一资源定位符URL ;代理模块可以缓存检测任务的可执行代码,当本地缓存的可执行代码与新收到的检测任务指令中可执行代码版本一致的话,可以直接使用本地缓存的可执行代码,而不需要再下载。
6.实现对web服务器可用性进行检测的监控方法,其特征在于所述监控方法包括下列操作步骤(1)根据监控需求,建立监控项目库,并根据网络情况,建立代理信息库;(2)监控项目调度模块按照设定的调度策略,把监控项目分配到检测任务调度模块,把返回的监控结果保存在检测任务结果库中;(3)检测任务调度模块将检测指令发送到所设定的代理点执行检测任务,并收集监控返回结果,回送给监控项目调度模块;(4)代理模块执行来自检测任务调度模块的检测指令,并返回检测操作的响应结果;(5)统计分析模块定时从检测任务结果库中获取检测任务结果,对检测任务结果按不同时间段进行归类统计和分析,形成中间结果数据,并将这些中间结果数据保存到统计信息库中;(6)告警处理模块定时从检测任务结果库中读取最新未读取过的检测结果,并对检测结果进行分析和处理,并把处理结果保存在告警信息库中;(7)监控报告通知模块定时将监控项目的运行状况、告警信息、统计报表等通过通信子系统通知给相关管理人员。
7.根据权利要求6所述的实现对web服务器可用性进行检测的监控方法,其特征在于 所述步骤(2)的具体内容包括下列操作步骤(21)按照设定的流量控制调度方法,启动检测间隔定时器,在每个监控项目的检测周期到达时触发监控项目给检测任务调度模块;(22)启动结果超时定时器等待检测任务的检测结果,如果在结果超时定时器到期时监控结果仍未返回,则认为本次检测任务执行失败,自动创建超时失败检测结果;否则接收检测任务调度模块返回的检测结果;(23)监控项目调度模块对检测结果进行数据提取,并保存到检测任务结果库中;所述的提取的检测结果数据包括检测任务标识ID、检测任务的开始时间、检测任务的结束时间、域名系统DNS解析时间、传输控制协议TCP连接建立时间、检测的上传时间、检测的下载时间、检测发送的HTTP请求内容、检测接收到的HTTP响应内容、检测接收到的HTTP响应码、检测使用的代理点标识ID、错误标识ID和错误信息。
8.根据权利要求7所述的实现对web服务器可用性进行检测的监控方法,其特征在于 所述步骤(21)中设定的流量控制调度方法的具体内容是监控项目调度模块按照均匀调度方法对监控项目进行调度,具体可以采用对监控项目标识ID取模的方式来实现。
9.根据权利要求7所述的实现对web服务器可用性进行检测的监控方法,其特征在于 所述步骤(21)和步骤(22)中定时器的实现方法是由于监控项目调度模块所使用的定时器数量多,至少是监控项目数量的两倍,且定时器触发时间间隔不长,所以定时器的实现方法对本发明监控项目调度模块的性能有很大影响,本发明具体可采用如下三种实现方法 第一种方法是把所有的检测任务都放入一个执行队列池,并设定每个检测任务执行的时间,所述的执行队列池会扫描所有检测任务,如果时间到了某个检测任务的执行时间,那么该检测任务被执行;第二种方法是按照优先级队列实现定时器,即按照每个定时器的下一次到期时间对定时器进行排序,然后启动一个定时器,每次仅计算队头定时器的到期时间,并按照这个时间设置定时,到期后取出该队头定时器,并重新计算该定时器下一次定时时间并重新放入优先级队列;第三种方法是使用一个扫描定时器,按照秒级定时,每秒扫描所有定时器,如果发现有定时器到期,则产生一个检测任务到任务队列中。
10.根据权利要求6所述的实现对web服务器可用性进行检测的监控方法,其特征在于所述步骤(3)的具体内容包括下列操作步骤(31)检测任务的调度执行对外开放接口,接收监控项目调度模块发来的检测任务; 接口调用者主要是监控项目调度模块,也可以是本发明系统之外的其他实体;根据检测任务的属性,将检测任务形成检测指令推送给相应代理点并启动超时计时器;等待代理点返回检测结果,将检测结果返回给监控项目调度模块;(32)负责各个代理点的管理、状态更新和在线升级作为服务器维护与代理点之间的连接;根据代理点连接状态等更新代理库,状态包括代理点是否可用、代理模块版本、代理点所在网路信息等内容;负责进行代理模块的自动在线升级。
11.根据权利要求6所述的实现对web服务器可用性进行检测的监控方法,其特征在于所述步骤(4)的具体内容包括下列操作步骤(41)代理模块从检测指令所携带的数据中取出要监控URL的信息;(42)执行URL检测任务,具体包括下列子步骤(421)解析所监控URL中域名,获取IP 地址和端口号;(422)建立套接字socket连接;(423)上传请求;(424)等待所监 控web服务器返回结果;(425)获取结果;(43)生成结果数据,结果数据中应该包括检测任务基本信息、接收到检测任务的时间、 步骤(42)中每个子步骤的起始时间和执行结果、完整的请求和响应消息。
12.根据权利要求6所述的实现对web服务器可用性进行检测的监控方法,其特征在于所述步骤(5)的具体内容包括下列操作步骤(51)统计分析模块定时从检测任务结果库中读取检测任务结果;(52)将检测任务结果按照监控项目进行归类,然后对每个监控项目进行统计,产生中间结果数据;所述的对每个监控项目进行统计的统计项目包括检测失败时间段、检测失败次数、累计故障总时长、平均可用率、故障类型、响应时间、可用率级别、可用率排名、响应时间稳定性级别、响应时间稳定性排名;(53)统计分析模块将产生的中间结果数据保存到统计信息库中;(54)按照设定的发送频率定期从统计信息库中取出统计数据,通过通信子系统发送给用户。
13.根据权利要求6所述的实现对web服务器可用性进行检测的监控方法,其特征在于所述步骤(6)的具体内容包括下列操作步骤(61)故障确认告警处理模块定时从检测任务结果库中读取最新的未被读取过的检测任务结果,然后进行分析,如果根据分析结果和告警策略发现某个监控项目发生异常,再去告警信息库中查看该监控项目上次的状态,如果上次的状态为正常,则表示该监控项目发生故障,通过通信子系统告知用户,并将故障信息存入告警信息库;(62)告警抑制当监控项目故障确认后,会告知用户,同时会将此次故障存入告警信息库;当该监控项目又被检测到故障后,则查询告警信息库,如果该监控项目目前已处于故障状态并且已经告知用户了,则不需再次告知用户,即告警抑制;(63)告警清除告警处理模块定时从检测任务结果库中读取最新的未被读取过的检测任务结果,然后进行分析,如果根据分析结果和告警策略发现某个监控项目正常,再去告警信息库中查看该监控项目上次的状态,如果上次的状态为故障,则表示该监控项目故障已修复,通过通信子系统告知用户,并将告警清除信息存入告警信息库。
全文摘要
实现对web服务器可用性进行检测的监控系统,该系统包括监控项目执行子系统、核心数据库子系统、告警子系统、统计分析子系统和通信子系统,其中监控项目执行子系统由监控项目调度模块、检测任务调度模块和代理模块组成,核心数据库子系统由代理信息库、监控项目库、检测任务结果库等组成,告警子系统由告警处理模块和告警信息库组成,统计分析子系统由统计分析模块、监控报告模块和统计信息库组成;本发明基于该系统,还提出实现对web服务器可用性进行检测的监控方法;由于采用分布式和瘦客户代理相结合的模式,本发明实现了对web服务器的无侵入式实时在线检测,并能够将web服务器的故障和恢复情况及时反馈给服务器管理者。
文档编号H04L29/06GK102624570SQ20121012643
公开日2012年8月1日 申请日期2012年4月27日 优先权日2012年4月27日
发明者廖建新, 张铁鹰, 樊伟钰, 王 锋, 胡云亭 申请人:杭州东信北邮信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1