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

著录项
  • CN201210126433.2
  • 20120427
  • CN102624570A
  • 20120801
  • 杭州东信北邮信息技术有限公司
  • 廖建新;张铁鹰;王锋;胡云亭;樊伟钰
  • H04L12/24
  • H04L12/24 H04L12/26 H04L29/06

  • 浙江省杭州市文三路398号4层
  • 浙江(33)
摘要
实现对web服务器可用性进行检测的监控系统,该系统包括监控项目执行子系统、核心数据库子系统、告警子系统、统计分析子系统和通信子系统,其中监控项目执行子系统由监控项目调度模块、检测任务调度模块和代理模块组成,核心数据库子系统由代理信息库、监控项目库、检测任务结果库等组成,告警子系统由告警处理模块和告警信息库组成,统计分析子系统由统计分析模块、监控报告模块和统计信息库组成;本发明基于该系统,还提出实现对web服务器可用性进行检测的监控方法;由于采用分布式和瘦客户代理相结合的模式,本发明实现了对web服务器的无侵入式实时在线检测,并能够将web服务器的故障和恢复情况及时反馈给服务器管理者。
权利要求

1.实现对web服务器可用性进行检测的监控系统,其特征在于:所述监控系统包括如下 子系统:

监控项目执行子系统:该子系统包括监控项目调度模块、检测任务调度模块和代理模块, 该子系统的功能是负责监控项目的调度、执行检测任务,保存检测结果等,是本发明所述监 控系统的最核心后台子系统;

核心数据库子系统:该子系统是整个监控系统的数据中心,是其它各子系统之间的联系 纽带,主要包括代理信息库、监控项目库、检测任务结果库、账户管理库和权限管理库,该 子系统的功能是组织、存储和管理整个监控系统的数据,并向其它子系统提供数据支持,具 体是:存储监控项目执行子系统所得到的检测结果数据,给告警子系统提供最新的检测结果 数据,给统计分析子系统提供过往的检测结果数据等;

告警子系统,该子系统包括告警处理模块和告警信息库,该子系统的功能是按照设定的 告警策略,对最新的检测结果数据进行分析,当所监控web服务器出现异常时,实现及时告 警,并进行告警抑制,当所监控web服务器恢复正常时实现及时的告警清除;所述的告警策 略包括监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条 数和监控项目的检测响应时间阀值等参数的设置;所述的监控项目告警分析前溯条数是指告 警子系统在每次进行告警分析时要提取所设定前溯条数的最近检测结果,该监控项目告警分 析前溯条数为系统所设定的大于等于1的自然数;所述的监控项目告警产生抑制条数是指即 告警子系统只有连续分析到此抑制条数的表示监控项目出现错误的检测结果后才产生告警, 该监控项目告警产生抑制条数为系统所设定的大于等于1的自然数;监控项目告警清除抑制 条数是指告警子系统在监控项目异常前提下,连续分析到此条数的正常检测结果时才产生告 警清除,该监控项目告警清除抑制条数为系统所设定的大于等于1的自然数;

统计分析子系统:该子系统包括统计分析模块、监控报告通知模块和统计信息库,该子 系统的功能是负责本发明所述监控系统的统计功能,具体是:统计检测结果数据,并保存在 统计信息库中;定时生成监控报告,并发送给指定管理人员;统计的指标包括:监控项目可 用率、监控项目检测平均响应时间、监控项目检测最长响应时间、监控项目检测最短响应时 间、监控项目检测响应时间分布、不可用时间段、检测失败次数和累计故障总时长;

通信子系统:该子系统包括短信模块、邮件模块和其他通信模块,该子系统的功能是为 告警子系统和统计分析子系统提供各类通知途径,将告警子系统产生的告警信息通过短信、 邮件或其它方式推送给用户,将统计分析子系统生成的监控报告发送给指定管理人员。

2.根据权利要求1所述的实现对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.根据权利要求1和2所述的实现对web服务器可用性进行检测的监控系统,其特征在 于:

所述的监控项目是本发明所述监控系统的最小监控单位,是一个静态的概念,由要进行 监控的一个统一资源定位符URL和其监控属性组成,其中监控属性包括监控项目标识ID、 所监控统一资源定位符URL的承载协议、监控策略、告警策略、代理点和监控状态;上面所 述的监控项目标识ID是监控项目的唯一标识,从零开始,依次递增,不重复;所述的所监控 统一资源定位符URL的承载协议是指访问该监控统一资源定位符URL的网络协议;所述的 监控策略进一步包括监控频率、执行时间段和超时时间三个子属性;所述的检测任务是指按 照设定的时间间隔对指定的监控项目所进行的检测,一个检测任务可由在一个或多个代理点 上执行的一个或多个检测操作构成;所述的检测操作是指对监控项目实施检测的具体过程。

4.根据权利要求1和2所述的实现对web服务器可用性进行检测的监控系统,其特征在 于:本发明所述的监控系统的子系统之间、模块之间,采用统一接口进行信息的交互,统一 接口采用超文本传送协议HTTP/安全超文本传输协议HTTPS协议与爪哇脚本对象标记法 JSON格式数据相结合的方式来实现;所述的JSON格式数据的具体格式为:{“key”:”value”}, 其中key表示数据名称,value表示数据的具体取值,各数据并不按照顺序排列,只靠key区 分;JSON通过put(“key”,”value”)来存数据,通过get(“key”)来取数据。

5.根据权利要求1和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网站在管理方面逐渐暴露出多 方面的问题:现场维护工程师或客户对web网站运行状态、性能变化趋势缺乏必要的监控和 运行状况分析手段;web网站在提供服务时,由于种种突发情况,可能造成访问web网站时 间过长,以致用户体验不好,而现场维护工程师却不能及时的发现和解决问题;web网站在 长时间超负载的运行即将宕机的情况下,现场维护工程师或客户无法在第一时间知道并进行 处理,导致web网站发生故障,无法提供服务;当现场维护工程师或客户发现web网站无法 提供服务时,通常需要一系列的检查,所以无法快速的定位到故障发生的原因,不能够快速 的恢复服务;web网站存在安全漏洞隐患,如彩铃网站被外挂脚本攻击、网站内容被篡改等, 而web网站很难彻底根除安全隐患。因此如何能够实时在线无侵入地对网络web服务器进行 可用性监控成为目前电信网一个急需要解决的技术难题。

有鉴于此,本发明的目的是发明一种实现对web服务器可用性进行检测的监控系统和方 法,能够实现对web服务器的实时在线无侵入检测,达到web服务器可用性的实时监控和故 障告警功能。

为了达到上述目的,本发明提出了实现对web服务器可用性进行检测的监控系统,所述 监控系统包括如下子系统:

监控项目执行子系统:该子系统包括监控项目调度模块、检测任务调度模块和代理模块, 该子系统的功能是负责监控项目的调度、执行检测任务,保存检测结果等,是本发明所述监 控系统的最核心后台子系统;

核心数据库子系统:该子系统是整个监控系统的数据中心,是其它各子系统之间的联系 纽带,主要包括代理信息库、监控项目库、检测任务结果库、账户管理库和权限管理库,该 子系统的功能是组织、存储和管理整个监控系统的数据,并向其它子系统提供数据支持,具 体是:存储监控项目执行子系统所得到的检测结果数据,给告警子系统提供最新的检测结果 数据,给统计分析子系统提供过往的检测结果数据等;

告警子系统,该子系统包括告警处理模块和告警信息库,该子系统的功能是按照设定的 告警策略,对最新的检测结果数据进行分析,当所监控web服务器出现异常时,实现及时告 警,并进行告警抑制,当所监控web服务器恢复正常时实现及时的告警清除;所述的告警策 略包括监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条 数和监控项目的检测响应时间阀值等参数的设置;所述的监控项目告警分析前溯条数是指告 警子系统在每次进行告警分析时要提取所设定前溯条数的最近检测结果,该监控项目告警分 析前溯条数为系统所设定的大于等于1的自然数;所述的监控项目告警产生抑制条数是指即 告警子系统只有连续分析到此抑制条数的表示监控项目出现错误的检测结果后才产生告警, 该监控项目告警产生抑制条数为系统所设定的大于等于1的自然数;监控项目告警清除抑制 条数是指告警子系统在监控项目异常前提下,连续分析到此条数的正常检测结果时才产生告 警清除,该监控项目告警清除抑制条数为系统所设定的大于等于1的自然数;

统计分析子系统:该子系统包括统计分析模块、监控报告通知模块和统计信息库,该子 系统的功能是负责本发明所述监控系统的统计功能,具体是:统计检测结果数据,并保存在 统计信息库中;定时生成监控报告,并发送给指定管理人员;统计的指标包括:监控项目可 用率、监控项目检测平均响应时间、监控项目检测最长响应时间、监控项目检测最短响应时 间、监控项目检测响应时间分布、不可用时间段、检测失败次数和累计故障总时长;

通信子系统:该子系统包括短信模块、邮件模块和其他通信模块,该子系统的功能是为 告警子系统和统计分析子系统提供各类通知途径,将告警子系统产生的告警信息通过短信、 邮件或其它方式推送给用户,将统计分析子系统生成的监控报告发送给指定管理人员。

所述的监控项目执行子系统中的各个模块的具体功能如下:

监控项目调度模块:监控项目调度模块是本发明监控系统最核心的调度模块,负责从监 控项目库中提取监控项目信息,根据监控项目的变化,调整调度计划,修改监控项目的执行; 调度所有监控项目,按照监控项目的监控属性执行检测任务的调度,把检测任务发送给检测 任务调度模块,并保存检测执行结果;所述监控项目的监控属性,包括监控项目标识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服务器可用性进行检测的监控方法,所述监控方法包括下列 操作步骤:

(1)根据监控需求,建立监控项目库,并根据网络情况,建立代理信息库;

(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服务器的故障和恢复情况及时反馈给网站管理者。

图1是本发明所提出的实现对web服务器可用性进行检测的监控系统的结构示意图。

图2是本发明所提出的实现对web服务器可用性进行检测的监控方法的流程图。

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细 描述。

参见图1,介绍本发明提出的实现对web服务器可用性进行检测的监控系统,所述监控 系统包括如下子系统:

监控项目执行子系统:该子系统包括监控项目调度模块、检测任务调度模块和代理模块, 该子系统的功能是负责监控项目的调度、执行检测任务,保存检测结果等,是本发明所述监 控系统的最核心后台子系统;

核心数据库子系统:该子系统是整个监控系统的数据中心,是其它各子系统之间的联系 纽带,主要包括代理信息库、监控项目库、检测任务结果库、账户管理库和权限管理库,该 子系统的功能是组织、存储和管理整个监控系统的数据,并向其它子系统提供数据支持,具 体是:存储监控项目执行子系统所得到的检测结果数据,给告警子系统提供最新的检测结果 数据,给统计分析子系统提供过往的检测结果数据等;

告警子系统,该子系统包括告警处理模块和告警信息库,该子系统的功能是按照设定的 告警策略,对最新的检测结果数据进行分析,当所监控web服务器出现异常时,实现及时告 警,并进行告警抑制,当所监控web服务器恢复正常时实现及时的告警清除;所述的告警策 略包括监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项目告警清除抑制条 数和监控项目的检测响应时间阀值等参数的设置;所述的监控项目告警分析前溯条数是指告 警子系统在每次进行告警分析时要提取所设定前溯条数的最近检测结果,该监控项目告警分 析前溯条数为系统所设定的大于等于1的自然数,比如10,表示告警子系统在每次进行告警 分析时,要提取10条最近的检测结果;所述的监控项目告警产生抑制条数是指即告警子系统 只有连续分析到此抑制条数的表示监控项目出现错误的检测结果后才产生告警,该监控项目 告警产生抑制条数为系统所设定的大于等于1的自然数,比如8,表示告警子系统只有连续 分析到8条表示监控项目出现错误的检测结果后才产生告警;监控项目告警清除抑制条数是 指告警子系统在监控项目异常前提下,连续分析到此条数的正常检测结果时才产生告警清除, 该监控项目告警清除抑制条数为系统所设定的大于等于1的自然数,比如6,表示告警子系 统在监控项目异常前提下连续分析到6条正常检测结果时才产生告警清除;

统计分析子系统:该子系统包括统计分析模块、监控报告通知模块和统计信息库,该子 系统的功能是负责本发明所述监控系统的统计功能,具体是:统计检测结果数据,并保存在 统计信息库中;定时生成监控报告,并发送给指定管理人员;统计的指标包括:监控项目可 用率、监控项目检测平均响应时间、监控项目检测最长响应时间、监控项目检测最短响应时 间、监控项目检测响应时间分布、不可用时间段、检测失败次数和累计故障总时长;

通信子系统:该子系统包括短信模块、邮件模块和其他通信模块,该子系统的功能是为 告警子系统和统计分析子系统提供各类通知途径,将告警子系统产生的告警信息通过短信、 邮件或其它方式推送给用户,将统计分析子系统生成的监控报告发送给指定管理人员。

所述的监控项目执行子系统中的各个模块的具体功能如下:

监控项目调度模块:监控项目调度模块是本发明监控系统最核心的调度模块,负责从监 控项目库中提取监控项目信息,根据监控项目的变化,调整调度计划,修改监控项目的执行; 调度所有监控项目,按照监控项目的监控属性执行检测任务的调度,把检测任务发送给检测 任务调度模块,并保存检测执行结果;所述监控项目的监控属性,包括监控项目标识ID(监 控项目的唯一标识,从0开始,依次递增,不会重复)、监控项目更新时间、监控项目创建时 间、监控项目的存在状态即该监控项目是否已被删除、监控项目的监控时间间隔、监控时间 段开始时间、监控时间段结束时间、监控项目在检测失败后的重试次数、监控项目在检测失 败后重试时间间隔、监控项目的检测响应时间阀值、监控项目的运行状态(即该监控项目的 运行状态是暂停还是运行)、监控项目检测的超文本传送协议HTTP/安全超文本传输协议 HTTPSHTTP/HTTPS请求方法(即是GET请求方法还是POST请求方法)、监控项目检测的 HTTP/HTTPS请求头信息、监控项目检测的HTTP/HTTPS验证用户名、监控项目检测的 HTTP/HTTPS验证密码、监控项目告警分析前溯条数、监控项目告警产生抑制条数、监控项 目告警清除抑制条数;

检测任务调度模块:检测任务调度模块是监控项目执行子系统的调度执行模块,负责各 个监控项目的调度执行,向监控项目调度模块提供接口,接收来自监控项目调度模块的检测 任务,将检测任务分解为多个检测操作,并将检测操作形成检测指令分配给各个代理点执行, 并收集监控返回结果,回送给监控项目调度模块;

代理模块:代理模块负责接收和执行来自检测任务调度模块的检测指令,并返回检测操 作的响应结果;所述的检测任务调度模块与代理模块之间采用服务器‑客户端模式进行连接, 其中检测任务调度模块为服务器,代理模块为客户端;检测任务调度模块与代理模块之间通 过HTTP/HTTPS协议和流推送(Comet Streaming)来实现双向通信;代理模块能够连接到检测 任务调度模块,注册该代理模块所在代理点的状态信息;保持与检测任务调度模块的长连接, 与检测任务调度模块进行心跳;从检测任务调度模块获取检测指令并执行,返回相应检测结 果;代理模块部署在一个或多个代理点上,代理模块的数目根据实际监控项目的需要可设置 很多个,在图1中示意性画了三个;所述代理点是指网络中安装和运行代理模块的物理网元; 所述的检测任务调度模块分配给代理模块的检测指令分为三类: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服务器可用性进行检测的监控方法,所述监 控方法包括下列操作步骤:

(1)根据监控需求,建立监控项目库,并根据网络情况,建立代理信息库;

(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的监控项目,检测周期为1分钟, 选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)按照设定的发送频率(每日、每周或每月)定期从统计信息库中取出统计数据,通过 通信子系统发送给用户。

所述步骤(6)的具体内容包括下列操作步骤:

(61)故障确认:告警处理模块定时从检测任务结果库中读取最新的未被读取过的检测 任务结果,然后进行分析,如果根据分析结果和告警策略发现某个监控项目发生异常,再去 告警信息库中查看该监控项目上次的状态(故障或正常),如果上次的状态为正常,则表示该 监控项目发生故障,通过通信子系统告知用户,并将故障信息存入告警信息库;

(62)告警抑制:当监控项目故障确认后,会告知用户,同时会将此次故障存入告警信 息库;当该监控项目又被检测到故障后,则查询告警信息库,如果该监控项目目前已处于故 障状态并且已经告知用户了,则不需再次告知用户,即告警抑制;

(63)告警清除:告警处理模块定时从检测任务结果库中读取最新的未被读取过的检测 任务结果,然后进行分析,如果根据分析结果和告警策略发现某个监控项目正常,再去告警 信息库中查看该监控项目上次的状态(故障或正常),如果上次的状态为故障,则表示该监控 项目故障已修复,通过通信子系统告知用户,并将告警清除信息存入告警信息库。

对本发明所提出的监控系统和监控方法,发明人已经进行了一些验证性试验,获得了满 意的实验效果。

本文发布于:2024-09-24 06:29:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/73383.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议