面向云平台可信性验证的可靠数据采集方法与流程

文档序号:16063067发布日期:2018-11-24 12:23阅读:1247来源:国知局

本发明属于云计算的可信评估领域,涉及一种面向云平台可信性验证的可靠数据采集方法,主要针对iaas模式的云服务。

背景技术

近年来,随着云计算成为信息技术发展的热点,越来越多的企业和个人用户选择把业务系统部署到云平台上,充分利用云计算按使用量计费的商业模式来节约成本。但是,由于云计算具有资源集中、开放和共享的特点,使得其更容易受到攻击,安全防范难度更大;同时,用户数据在其不可控的云端存储,失去了对私有数据的绝对控制,使得云计算的安全问题日益凸显,而近年来针对云平台的安全事件不断出现,也极大影响了用户对云计算的信任度。因此,云平台的可信性评测已经成为制约云计算产业发展壮大的重要问题。

针对云平台的可信性评测,较为常见的方案是建立第三方可信性评测平台,在此平台上收集各类与云平台可信评测相关的sla参数、用户评价信息等数据,并对这些数据使用特定算法加以评估,得出云平台可信性评估报告,供云平台的用户参考。在这一过程中,需要采集的数据来源多样、种类繁多,相应的数据采集工具也各不相同,如netlogger、framesaver、quatschtool等等。通常来说,各类数据采集工具来自不同的供应商,其调用接口、数据交换格式等存在很大差异,也很少针对数据采集的可靠性问题设计专门的处理机制。为此,在构建云平台第三方可信性评测平台的过程中,设计通用的可靠数据采集方法是有必要的。



技术实现要素:

针对上述问题,本发明设计了一种基于可靠的消息队列服务、可靠的数据采集终端的云平台可信性验证数据采集方法。

本发明采用的技术方案由数据采集工具、可靠数据采集终端、数据采集服务器等部分组成,系统架构如附图1所示。面向云平台可信性验证的可靠数据采集方法基本思路如下:在云平台各个计算节点/虚拟主机上,部署数据采集工具和可靠的数据采集终端。数据采集终端周期性调用数据采集工具完成数据采集,将采集到的数据进行解析和预处理,封装为报文,签名并加密后发送给数据采集服务器。数据采集服务器(以集群形式组织)上运行有可靠消息队列服务负责缓存报文,同时运行有数据分析处理程序负责解析报文内容、持久化存储数据和评估云平台可信性。

该方法的步骤包括:

步骤一,在云平台内部环境中部署数据采集服务器;

步骤二,在云平台各计算节点/虚拟主机上部署数据采集工具和可靠数据采集终端;

步骤三,启动可靠数据采集终端并完成自检。可靠数据采集终端程序启动后,首先加载配置,然后检查预写日志(wal,writeaheadlog)中的内容,判断终端上一次运行是否正常结束。如果上一次运行异常终止,则需要将未成功发送的数据进行重发;

步骤四,自检结束后,可靠数据采集终端进入数据采集阶段。按照配置要求,周期性地调用数据采集工具完成数据采集。采集得到的数据,经过简单的数据预处理、消息签名、加密后封装为数据报文。数据报文将被首先写入预写日志,然后发送给数据采集服务器。

步骤五,数据采集服务器以集群的形式组织,部署可靠的消息队列服务(如kafka),可以将收到的消息持久化存储在集群中,供数据分析处理程序进行后续处理。

通过上述步骤,本发明的方法能够有效地保证数据采集的可靠性,为建立第三方云平台可信性评测平台提供支持。

附图说明

图1是本发明所设计的“面向云平台可信性验证的可靠数据采集方法”系统架构图;

图2是本发明所设计的“可靠数据采集终端”模块图;

图3是本发明所设计的“可靠数据采集终端”软件流程图

具体实施方式

下面结合附图和具体实施方式对本发明做进一步的说明。

在云计算环境下云平台的可信性评估问题方面,目前学术界已经有一些研究成果,但主要集中在如何采集数据、如何进行评价方面,在工业界还没有完整的解决方案。需要解决的问题包括:1)云服务状态的持续监控问题。由于云环境的动态、开放的特性,仅仅依靠静态的/一次性的安全审计来实现信任评估是不够的,需要在云服务运作的过程中持续地对云平台的服务水平、可信性、可靠性、安全性等因素进行监控;2)多层次数据采集问题。评估云服务水平及可信性所需要的数据种类较多,数据来源各不相同,仅仅从云服务器端收集数据是不够的,还需要从虚拟的云主机内部采集数据;3)数据采集方式的一致性、可靠性问题。由于需要采集的数据种类繁多,在云服务可信性评估领域,还没有一站式的数据采集工具,为了弥合不同数据采集工具的差异,同时保证数据采集的可靠性和安全性,需要设计统一的数据采集终端。

基于上述考虑,本发明的实施由数据采集工具、可靠数据采集终端以及数据采集服务器三部分组成,如附图1所示。数据采集工具由第三方提供,根据具体的数据采集需要进行选择。可靠数据采集终端由数据采集工具适配器、任务调度模块、加密/签名模块、预写日志模块、消息传输模块等组成,如附图2所示。其中的任务调度模块可以使用quartz工具包构建,其他模块都可以使用jdk自带的api实现。同时为了能够在数据采集终端异常退出后自动重新启动,可以使用supervisor工具将数据采集终端包装为一个系统服务,由supervisor自动监控数据采集终端的执行情况,并在适当的时候重启数据采集终端。

可靠数据采集终端的设计,是本发明的核心,其执行流程如附图3所示,包括如下步骤:

步骤一,可靠数据采集终端启动后,首先读取配置文件。配置文件以键值对的形式组织,包含下列信息:

1)数据采集服务器地址:

serveraddress=xxx.xxx.xxx.xxx:yyyy

2)预写日志所在目录:

waldir=/…/…/

3)quartz定时器任务配置文件:

quartz=…/quartz.properties

4)数据采集工具及相应适配器:

tool.meminfo=cat/proc/meminfo

adapter.meminfo=aaa

tool.top=/usr/bin/top-n1

adapter.top=bbb

注:每个数据采集工具及相应的适配器在配置文件中分别对应一条配置记录。如上面的例子中是meminfo和top工具的配置信息。可以看到,meminfo和top工具的执行命令分别为cat/proc/meminfo以及/usr/bin/top-n1;meminfo和top工具的适配器程序分别为aaa和bbb。使用java语言作为开发工具的情况下,aaa和bbb应该为适配器类的完整类名。

步骤二,完成配置信息读取后,数据采集终端需要检查预写日志的内容,如果数据采集终端的上一次运行没有正常退出,则需要检查预写日志中是否有未发送成功的报文记录,如果有,需要重发报文,否则,数据采集终端可以正常启动。预写日志的格式如下:

crc:针对message内容进行的crc校验结果

messageid:报文的唯一id

type:wal的类型,可能取值为:1(sent,表示报文已发出,但服务端可能并没有收到);2(acknowledged,表示服务端已经成功收到报文并向数据采集终端确认)

length:message部分的长度

message:报文内容,长度可变,其长度由length字段决定

从预写日志的格式可以看出,一条发送成功的报文,在预写日志中对应两条记录;如果仅找到一条记录,则需要重发该条报文。通过这种形式,可以保证报文发送的可靠性。

步骤三,报文补发结束后。根据配置,数据采集终端依赖quartz框架实现数据采集工作的周期性调度。任务调度方面,quartz支持crontab风格的任务时间设定,如:

00/316-23**?

表示任务从16点至23点之间每三分钟执行一次。同时,quartz提供了job和jobdetail类来实现具体的业务逻辑。

步骤四,根据任务调度配置,quartz框架周期性地启动数据采集工具完成数据采集工作。采集得到的数据,由适配器进行解析与处理,并加密、签名后封装为报文,本发明中,数据报文格式如下:

crc:针对message内容进行的crc校验结果

clientid:当前数据采集终端id,可以在部署数据采集终端时设置

signature:报文的签名

length:报文中message部分的长度

message:报文内容,长度可变,其长度由length字段决定

进一步地,报文中,message部分格式如下:

uri:数据采集项的uri标识,用于唯一确定这一消息所刻画的云平台可信评估参数。

timestamp:long型的时间戳,表示数据采集的时间。

value:实际采集到的数据值,其格式和含义由uri决定

步骤五:生成的报文,首先写入预写日志,然后通过数据采集服务器上部署的可靠消息队列服务的客户端发送给数据采集服务器。发送成功的消息,将进一步将发送成功的结果写入预写日志。

通过上述的步骤,已经能够确保采集到的数据被可靠地发送到数据采集服务器;而数据采集终端自身的可靠性,可以借助supervisor工具来实现,具体来说,可以将数据采集终端程序封装为服务进程,使用supervisorctl启动该服务进程,交由supervisord进行监控,当数据采集终端程序所在服务进程异常退出或被意外杀死时,自动重新启动该进程的执行。

数据采集服务器的构建相对较为简单,可以使用现有的可靠消息队列服务,如kafka,来搭建。

本方法能够有效地保证云平台可信性验证过程中数据的可靠采集。同时在实施过程中,本方法可以通过适当调整数据采集的周期来控制数据采集终端的cpu和内存资源消耗,因而可以认为,本发明提出的方案,在有效保证数据采集可靠性的同时,不会对云平台造成过多的资源消耗。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1