云监控[1-2]涉及监控基础设施、平台和定制指标整个过程,可确保系统工作负载在最佳水平运行。云监控主要用于分析系统中每个任务的内存使用情况,有助于确定任务的使用模式,并允许在达到某些阈值时设置警报,以平衡工作负载并保持高可用性。云监控数据分析[3]涉及大量信息的查询和处理操作。在此过程中,需要从任意粒度范围(例如以分钟或小时聚合)中检索特定属性的数据,以估计概率分布函数(probability distribution function,PDF),并预测未来的工作负载[4]。由于跟踪的数量可能很大,随着跟踪数据的积累,这些操作需要一个可扩展且可靠的云体系结构。
为此,国内外学者针对云监控技术进行了大量研究,并取得了丰硕成果。赖朝安等[5]研究了双层随机规划的云监控平台定价策略,结合极点算法建立服务商与客户之间的动态博弈模型。尹学渊等[6]提出了1种基于虚拟机内存实时在线分析的虚拟机监控技术,实现了虚拟机细粒度状态信息监控。杨淑棉等[7]提出了一种基础设施即服务(infrastructure as a service,IaaS)模式下基于物理内存分析的实时监控取证方法,可实现虚拟机中的异常行为检测,从而有效防止虚拟主机运行恶意软件、违法犯罪等问题。上述方法仅针对各自领域的云监控平台进行了研究,无法扩展到其他数据集,模型可拓性有待提高。为了允许高级跟踪数据分析,所设想的云体系结构应该适应对任意跟踪数据集的访问。此外,云架构需要一个基于万维网(world wide web,Web)的界面来构建结构化的数据查询,并显示结果。
为此,本文在研究了集成云平台和分布式计算基础上,提出了一种包含双层结构的云监控数据分析平台,并对系统中数据密集型跟踪分析的体系结构和关键技术进行研究。
云监控数据分析平台体系结构如图1所示。该结构主要分为2个子系统:其一为较小数据量提供数据分析方法的核心结构;其二为分析大型数据集提供有效分布式计算算法的扩展结构。
图1 云监控数据分析平台体系结构
Fig.1 Architecture of cloud monitoring data analysis platform
核心架构可分为3层:顶层为智能搜索层;中间层为应用程序接口(application programming interface,API);底层为云计算层(包括物理接口)。这3层相互作用,进行工作负载跟踪,并监视任何异常模式。
核心结构工作过程如图2所示。
图2 核心结构工作过程框图
Fig.2 Block diagram of core structure working process
智能搜索层为用户提供了编辑分析、配置参数、启动数据访问和处理请求及显示查询结果等功能。该层提供了用户与云平台[8]交互的源,并充当客户端应用程序与云平台通信的API接口。用户向云平台发送服务请求,一旦认证成功,将在客户端上生成含有关分析结果的信息的查询结果。此外,考虑到用户感兴趣的目标不只一个,智能搜索模块也提供类似于目录的自动索引功能。
API层充当连接智能搜索层和存储跟踪的云计算层的桥梁。API层的核心构建在3个模块上,即搜索模块、分析包和页面生成器。需要注意的是,系统所有资源都是通过超文本传输协议(hyper text transfer protocol,HTTP)发送处理请求。作为响应,可调用分析包。分析包利用搜索模块提取感兴趣的数据集。然后,搜索模块通过HTTP,由云平台的API向云服务商发送一个搜索查询。当返回数据后,分析包生成结果并向客户端发送成功响应通知。在接收到成功响应时,系统将初始化另一个请求,以便通过HTTP协议绘制该特定数据集的预测数据。最后,系统发送一个生成页面的请求,并调用页面生成器模块生成分析结果。
云计算层的数据接口主要进行数据存储和访问,且基于云平台主要使用切分和复制实现搜索、索引功能。此外,云计算层还包括众多物理组件,如交换机、接口、数据库等。
如果用户想要监控数据中的异常值,首先与智能搜索层交互,输入所需的参数来启动该过程。同时,智能搜索层交互将带有指定参数的HTTP请求发送到特定Web服务。当认证成功,该服务立即建立连接,并从云平台检索所需数量的数据。最后,将这些数据处理的结果以页面形式呈现给用户。
云监控数据分析平台除核心架构外,还扩展了一个额外的组件,以便对大量数据集进行复杂的计算。该组件由多个分布式复杂计算应用程序复合构成,用于管理和调度用户应用程序。扩展结构包含请求/接收资源管理器、数据节点组件(可连接到其他Hadoop分布式文件系统(hadoop distributed file system,HDFS)数据节点)和服务协议这3部分。扩展结构有利于用户在Hadoop文件系统[9]中存储数据,并为用户提供了高可用性和可扩展的存储功能。
扩展结构的工作过程如图3所示。
图3 扩展结构的工作过程框图
Fig.3 Block diagram of extended structure working process
与核心结构类似,用户通过特定的输入参数访问数据页面。然后,这些参数以HTTP请求的形式转发到API中。API执行请求,并将接收到的参数包装为JSON消息[10]发送到云平台的主节点。节点接收JSON消息并将查询请求提交给云服务商。需要注意的是,API中的请求发送模块将以JSON格式编码的消息传递到云平台的主节点。同时,运行在云平台主节点上的请求接收器模块接收消息并对其进行解码。节点间的消息传递使用高级消息队列协议(advanced message queuing protocol,AMQP)[11]执行。当成功完成任务后,云平台将保存结果,并通过安全外壳协议(secure shell,SSH)将结果传输到API,并向用户发送一个成功响应。此外,API将发送另一个请求,从而为特定结果生成查询页面。
扩展结构还支持相应的机器学习库,如模糊C均值聚类算法[12],通过将跟踪数据划分成所需的集合来分析跟踪数据。
由于现实环境中的数据大多为非结构化数据,导入系统时没有直接可用于索引的功能,因此需要设计高效的数据索引方法。本文使用形式化语言自动为每个正在加载的记录创建唯一id。自动生成的唯一id在架构文件中的定义如下所示。
<name=″*″,class=″*″,index=″true″>
<uniqueKey>id<uniqueKey>
该定义中:“*”为省缺值,可自由定义;name为记录的命名;class为记录所属类别;index为true时为可被索引,否则表示不可索引;id为记录唯一标识。
云平台支持不同类型的数据上传技术,例如索引处理程序、结构化数据的数据导入处理程序以及通过网络上传数据。
数据查询通过HTTP请求发送到云平台,请求包含集合名称和数据量。例如,如果用户打算从云平台请求10 000条数据记录,则查询示例表示如下。
s=SearchOptions();s.query.rows('10000')
该示例中:SearchOptions为查询操作函数;s为其实例化。
需要注意的是,云平台仅支持JSON格式的数据查询操作。当查询完成后,将在HTTP响应中返回查询的数据集。返回的数据集由分析模块进一步处理。
本节通过案例验证本文所提模型:通过分析跟踪数据,预测系统工作量,并了解时间序列中的运行模式。系统开发环境使用JAVA中的Spring框架作为输入,开发架构的工作原型,以跟踪特定时间戳下海量搜索引擎数据库服务器作业时的CPU和内存使用情况。为简化仿真过程,作如下假设。
①任务或作业名称以数字标志符进行区分。
②CPU和内存的消耗可通过线性变换模拟。
③任意大数据集的平均值服从正态分布。
本文采用Python库实现了核心组件分析包中的CPU负载使用情况预测。
分析考虑10 000个数据点的数据集,将数据块分成4个子块,并令每个子块的持续时间为L。预测CPU的负载是指在L的每个周期结束时,根据上一个子块的趋势及增长对下一个子块CUP负载进行预测。最后,利用三次指数平滑方法对长度为4L的时间序列数据进行预测。图4中,平滑常数α=0.2、β=0.2、γ=0.05。
核心结构负载预测指数平滑结果如图4所示。
图4 核心结构负载预测指数平滑结果
Fig.4 Exponential smoothing results of core structure load forecasting
扩展组件分析结果如图5所示。
图5 扩展组件分析结果
Fig.5 Extended component analysis results
如前文所示,扩展组件分析时首先使用机器学习k-均值聚类算法对时间序列工作负载数据进行分类,即将跟踪数据分类为不同的k值。工作负载分类旨在发现跟踪数据中任务事件的异常。本节在106个数据点上运行聚类算法,得到不同的k值,即4、8和12。由图5可知,在监控数据集中,代表任务CPU和内存使用的大多数数据点的值都相当低。这些任务事件平均分别使用约0.001 6和0.003 1CPU和内存。另一方面,只有较少的任务具有较高的CPU和内存使用率,即平均分别为0.287和0.018。
为提高云监控中数据分析能力,本文设计了包含双层结构的云监控数据分析平台。该平台主要包含2个子系统:其一为较小数据量提供数据分析方法的核心结构;其二为分析大型数据集提供有效分布式计算算法的扩展结构。该平台为系统CPU及内存使用分析过程提供了一定依据。
然而,本文系统在仿真时存在诸多限定,如数据集为模拟数据、系统运行时未考虑网络攻击等复杂行为。后续研究一方面可将大数据及人工智能技术引入系统,进一步提升系统预测能力;另一方面还可研究区块链、信息安全等技术,以满足系统数据安全及防止数据泄漏等需求。
© 2019-2021 All rights reserved. 北京转创国际管理咨询有限公司 京ICP备19055770号-1
Beijing TransVenture International Management Consulting Co., Ltd.
地址:梅州市丰顺县留隍镇新兴路881号
北京市大兴区新源大街25号院恒大未来城7号楼1102室
北京市海淀区西禅寺(华北项目部)
深圳市南山区高新科技园南区R2-B栋4楼12室
深圳市福田区华能大厦
佛山顺德区北滘工业大道云创空间
汕头市龙湖区泰星路9号壹品湾三区
长沙市芙蓉区韶山北路139号文化大厦
欢迎来到本网站,请问有什么可以帮您?
稍后再说 现在咨询