石油云平台资源监控与预警模型的制作方法
【技术领域】
[0001] 本发明涉及一种监控模型,具体为石油云平台资源监控与预警模型。
【背景技术】
[0002] 对石油云平台的监控是石油云平台研究的重要内容,也是影响石油云平台发展的 重要因素,对石油云平台的发展和利用均具有重要意义。随着石油云平台的规模和硬件性 能不断提升,传统的石油云平台监控系统已经无法实时监控石油云平台的状态信息。
【发明内容】
[0003] 针对上述技术问题,本发明提供一种石油云平台资源监控与预警模型,利用分组 技术,设计一套对石油云平台进行实时监并预警的模型。
[0004] 具体技术方案为:
[0005] 石油云平台监控与预警模型,包括中控模块,服务模块、代理模块、远程管理模块 以及预警模块;
[0006] 多个服务模块分别与中控模块之间通过心跳协议通讯,多个代理模块分组,每组 分别与一个服务模块之间通过心跳协议通讯;
[0007] (D代理模块
[0008] 代理模块通过算法得到如下信息:
[0009] (a)进程信息:1分钟运行进程数、5分钟运行进程数和15分钟运行进程数;
[0010] (b)CPU的信息:用户时间百分比、NICE时间百分比、系统时间百分比、I/O时间百分 比、空闲时间百分比、所有CPU的用户时间百分比、所有CPU的NICE时间百分比、所有CPU的系 统时间百分比、所有CHJ的I/O等待时间百分比和所有CPU的空闲时间百分比;
[0011] (C)内存信息:总内存、使用内存和空闲内存;
[0012] (d)交换区信息:总交换区、使用交换区和空闲交换区;
[0013] (e)磁盘信息:磁盘每秒IO次数、磁盘读速度、磁盘读字节数、磁盘写速度和磁盘写 字节数;
[0014] ⑴网络流量信息:IP接受包率、IP回应包率、IP请求包率、TCP接受段率、TCP发送 段率、TCP重发段率、UDP接受包率和UDP接受包率;
[0015]代理模块将上述采集的信息通过心跳协议每隔3秒发送给服务模块,由服务模块 处理这些信息。
[0016] ⑵服务模块
[0017] 服务模块将代理模块采集的信息统一存储到缓存中,定时将信息写入数据库中; 数据库提供了两种接口,MySQL和Oracle;信息被分为即时信息、一月历史信息和三月历史 信息,即时信息每5秒从缓存中取出信息更新即时信息,一月历史信息和三月历史信息每30 秒从缓存中取出信息将信息存储到历史信息中;信息供预警模块进行数据挖掘使用;
[0018] 服务模块将自身的状态信息和代理模块采集的信息,通过心跳协议每隔3秒发送 给中控模块。
[0019] ⑶中控模块
[0020]中控模块接受服务模块发送过来的信息,服务模块出现故障及时告知代理模块, 代理模块进行处理,同时通过计算出石油云平台的负载均衡算法,使得石油云平台的负载 处于一定的稳定、平衡状态之中。
[0021 ] (4)预警模块
[0022]预警模块由处于Hadoop环境中的集群设计出的κ-means对海量数据的挖掘算法, 对海量数据进行挖掘分析,判断节点的运行状态及是否正常,并将信息及时反馈给用户。 [0023] (5)远程管理模块
[0024]用来管理该石油云平台监控与预警模型。
[0025]其中代理模块的算法为:
[0026]采用分组机制适应不同规模的机群以及对大规模机群的实时响应,采用拓扑结构 解决Group的单点故障,用监控与预警相结合对机群实时监控,具体包括以下过程:
[0027] (1)机群分组
[0028]根据机群的规模确定将机群分成N组,
I其中, clusterSize为机群的总节点数,则每组的节点数
[0029]多余的节点数采用平均分配到随机组中,每一组均有一个服务器,称为Group,其 下的所有节点均由代理负责采集信息,称为Agent,Agent采集的信息分为静态信息和动态 信息,机群分组包含以下执行步骤:
[0030] ① Agent将信息通过通信协议定时交给Group处理;
[0031] ②Group对信息进行分类,将信息分为即时信息和历史信息,又将历史信息分成1 月历史信息和3月历史信息;
[0032] ③Group定时将上述信息写入指定数据库中,以供用户实时监控且为预警方法提 供数据基础;
[0033]④Group对Agent的响应时间为3秒,符合大部分机群规模实时响应需求;
[0034] (2)解决单点故障
[0035] Group存在单点故障,即当某个Group出现故障时,该Group下的Agent将不能工作, 采用Group的冗余机制和星形拓扑结构,为每个GroupSiH 个备用Group,称作 SecondaryGroup,SecondaryGroup与Group具有同样的功能,但是当没有Agent与 SecondaryGroup通信时,SecondaryGroup只开启了 一个监听线程,不断地监听是否有Agent 连接进来,一旦有Agent连接进来,SecondaryGroup将会启动数据处理功能,由于Group与 SecondaryGroup的灵活切换需要一个中心节点去处理,因此又引入星形拓扑结构,其中心 节点为服务器,又称为Contro INode,所有Group和SecondaryGroup与Contro INode直接相 连,由此便形成了一个星形拓扑结构,解决单点故障包含以下具体步骤:
[0036] ① Agent在启动时记录一个Group与SecondaryGroup的映射关系;
[0037] ②ControlNode实时记录着每个Group与SecondaryGroup的映射关系;
[0038] ③一旦某个Group出现故障时,Agent将会自动识别到当前的Group已经出现故障, Agent会自动与SecondaryGroup建立通讯,将采集的信息交给SecondaryGroup处理;
[0039] ④Contro INode与此同时将映射Group->SecondaryGroup打上标记,表不该Group 已经出现故障,需要进行人工恢复;
[0040] ⑤当Group的故障恢复时,ControlNode将会取消此映射的标记,同时通知 SecondaryGroup暂定处理由Agent采集的信息且通过SecondaryGroup告知Agent Group的 故障已经解决;
[0041 ]⑥Agent接受到指令之后,重新与Group建立通讯,Group单点故障解决。
[0042]本发明提供的石油云平台资源监控与预警模型,采用分组机制,将模型分为五个 模块,分别为中控模块、服务模块、代理模块、远程管理模块和预警模块,适用不同规模的石 油云平台,且实现石油云平台的负载均衡而合理利用石油云平台的资源,对石油云平台进 行实时监控和预警。
【附图说明】
[0043]图1是本发明的结构示意图;
[0044]图2是本发明的代理模块的采集节点信息示意图。
【具体实施方式】
[0045]下面结合中国石化胜利油田物探研究院具有2000节点的集群规模对本发明做进 一步的说明。
[0046] (1)环境设置:
[0047] 中控模块:1个;
[0048]服务模块:20个;
[0049]代理模块:100个/服务模块;
[0050] 远程管理模块:1个;
[0051 ]预警模块:每个服务模块分别安装信号发射器。
[0052]石油云平台资源监控与预警模型的结构如图1所示。
[0053]具体的,代理模块是与服务模块建立通信的,相当于客户端。如图2所示,代理模块 实时采集节点的信息,包括静态信息和动态信息,具体信息见附表1和附表2。然后,代理模 块通过心跳协议每隔3秒将采集的信息发送给服务模块,发送的是静态信息还是动态信息 取决于远程管理模块的命令,默认自动发送动态信息。之后,代理模块获取服务模块返回的 信息,主要包括了服务模块的后继模块信息,以防止服务模块出现故障之后,代理模块能将 信息自动发送到后继服务模块。
[0054]表 1
[0059] 服务模块既相当于服务器又相当于客户端,当与中控模块通信时,相当于客户端; 与代理模块通信时,又相当于服务器。当服务模块作为客户端时,只需要每隔3秒通过心跳 协议将自己的状态信息和其下的所有的代理模块个数发送给中控模块,然后获取由中控模 块反馈回来的信息,该信息主要是本身在环形拓扑图中的前继与后继。
[0060] 当服务模块作为服务器时,是用来与代理模块通信的。其作用是通过心跳协议每 隔3秒接受来自于代理模块的信息,该信息包含了由代理模块采集的动态信息或者静态信 息,这主要取决于代理模块对远程管理模块的命令反馈。服务模块将这些信息存储在缓存 中,然后,每隔5秒更新即时表,每隔30秒存储到历史表。数据库支持MySQL集群数据库和 Oracle数据库,即MySQL有两个数据库,一个存储即时数据,另一个则存储历史数据。
[0061] 服务模块同时每隔3秒通过心跳协议将自己的前继与后继发送给代理模块,使其 代理模块发现服务模块出现故障时,自动连接到后继服务模块上去。
[0062] 中控模块和服务模块建立通信,中控模块相当于服务器,服务模块相当于客户端, 中控模块只有一个,服务模块数量根据石油云平台的规模确定。服务模块每3秒通过心跳协 议将自己的状态信息和代理模块的个数发送给中控模块,中控模块实时记录下服务模块的 状态信息和代理模块的个数。通过这些信息,中控模块可以计算出石油