陈 洁,于永刚,刘明恒,潘盛合,徐克付
(1.中国移动(深圳)有限公司,广东深圳518048;2.中国科学院信息工程研究所,北京100093)
安全管理平台中基于云计算的日志分析系统设计
陈 洁1,于永刚1,刘明恒1,潘盛合1,徐克付2
(1.中国移动(深圳)有限公司,广东深圳518048;2.中国科学院信息工程研究所,北京100093)
安全管理平台(SMP)是实现安全管理工作常态化运行的技术支撑平台,在实际应用中需要实时处理来自安全设备所产生的海量日志信息。为解决现有SMP中海量日志查询效率低下的问题,设计基于云计算的SMP日志存储分析系统。基于Hive的任务转化模式,利用Hadoop架构的分布式文件系统和MapReduce并行编程模型,实现海量SMP日志的有效存储与查询。实验结果表明,与基于关系数据的多表关联查询方法相比,该系统使得SMP日志的平均查询效率提高约90%,并能加快SMP集中管控的整体响应速度。
安全管理平台;云计算;Hadoop架构;海量日志;并行处理
安全管理平台(Security Management Platform, SMP)是企业内部为了实现安全资产的全网管控,而开发的集中式安全管理与控制平台。集中管控的设备包括网络设备、安全设备、主机等多种设备类型,通过对这些设备资产所产生的日志信息进行分析,进而保障企业信息安全。传统的SMP日志收集分析平台一般是基于关系数据的多表关联查询数据库,海量数据分析工作在单个服务器上串行处理,查询效率很低。随着SMP所管控设备资产以及日志内容的增加,每天产生的日志量呈指数级增长。在如此大规模日志数据存储条件下,如何实现高效的数据存储、查询都面临着新的挑战。
云计算是处理海量数据的一种有效手段[1],在很多领域都得到了广泛应用[2]。为解决SMP海量日志查询性能低下的问题,本文设计云计算环境下的SMP日志存储分析系统,在研究云计算理论基础上[3],引入Hadoop分布式系统基础架构,构建基于Hadoop并行处理的海量日志分析系统。云计算环境下的Hadoop架构具有强大的数据处理能力,其特有的分布式文件系统(Hadoop Distributed File System,HDFS)以及并行编程模型MapReduce为海量数据的有效存储提供了技术支持[4],并为SMP海量日志分析平台提供了解决方案。
云计算[5]是IT技术发展的新趋势,目前受到学术界和工业界的广泛关注[6]。云计算基本原理是利用非本地或远程服务集群为互联网用户提供服务[7],使得用户可以将资源切换到需要的应用上,根据需要访问计算机和存储系统[8]。相比传统的单机计算环境,云环境可以有效地利用分布式集群的庞大计算资源满足海量数据管理对计算资源和存储资源的需求[9],具有易于维护、易于扩展和易于管理等特性[10]。面对快速增长的数据规模,云计算技术能够快速调整并分配所需资源以适应数据的快速膨胀[11];同时能够提供具有弹性的、组织松散的存储模式以及建立在这种存储模式之上的可配置分布式并行计算资源[12]。云计算技术的应用正逐渐成为海量数据管理任务的新趋势[13]。
2.1 Hadoop云计算架构
Hadoop[14]是一个分布式系统基础架构,由Apache基金开发,它提供了在分布式计算环境下所需要的可靠性、可扩展软件,是目前实现并行化云计算的一个主流方式。Hadoop框架主要由HDFS和MapReduce[15]两部分构成,其固有的特定结构可以将分布式应用部署到大型廉价集群上,非常适合海量数据的高效存储与管理。
HDFS是一个高度容错的分布式文件系统,在实际运用中可以提供高吞吐量的数据访问,适合超大数据集的应用程序。
HDFS架构如图1所示,HDFS内部机制是将一个文件分割成一个或多个Block,这些Block被存储在一组Dadanode中,Datanode在Namenode的指挥下进行Block的创建、删除和复制,同时确定Block与数据节点的映射。典型的部署方式是由一台专门的机器来运行一个Namenode,集群中的其他机器各运行一个Datanode实例。
图1 HDFS架构
MapReduce作为并行处理海量数据集的软件框架,其概念和处理框架在很多领域都得到了广泛应用[16]。MapReduce由多个Map和Reduce操作组成,其基本思想可以描述为按一定映射规则将输入的<key,value>对转换成另一个<key,value>对输出[17]。图2说明了用MapReduce处理大数据的过程,其核心计算过程是将大数据集分解为成百上千的小数据集,每个数据集分别由集群中的一个节点进行处理并生成中间结果,然后这些中间结果又由大量节点进行合并,形成最终结果。输入数据使用并行处理中的计算机集群分区方法,这也是处理海量数据的理想方法。
图2 基于MapReduce的数据简化
2.2 基于Hadoop的SMP日志分析系统
为加强企业全网安全集中管理,提升企业全网安全时间响应能力,建设响应迅速的高性能信息安全管理平台已成为企业一项非常重要而紧迫的任务。在这种背景需求下,将云计算引入到企业安全管理平台(SMP)中是企业信息化安全管理建设的重要内容。
根据预算,SMP接入57台设备,每天产生的日志量最多可达到一亿条,这个数字将随着SMP所纳入的安全设备的增加以及日志量的聚集,呈现急速增长的趋势。随着分析功能需求的扩展,日志形式会逐渐呈现多样化,例如有些日志数据将会呈现半结构化的特性。这些半结构化数据与关系型数据库并不能很好地匹配,而且由于其海量性,在单一机器上处理需要很长时间,因此对SMP海量日志数据进行有效处理非常困难。
Hadoop的HDFS是具有高可靠性和高扩展性的分布式文件系统,可以提供海量的文件存储能力,而Hadoop所包含的另一个核心框架MapReduce实现了并行处理的编程框架,使得程序分布到集群上并发执行。因此,Hadoop的2个核心模块能够方便地实现数据分发、负载均衡以及以容错的方式并行处理大量数据,在实际应用中非常适合SMP海量数据的有效存储与管理。虽然Hbase高性能数据库也适合分布式处理的应用,但目前本文系统只考虑海量日志高效的查询分析功能,暂时不需要更复杂的操作场景,选择Hadoop的HDFS+MapReduce架构更适合系统应用的个性化需求。
SMP系统的主要设备类型包括主机、网络设备、安全设备、数据库、中间件等11种类型,涵盖设备336台,日志记录包括所有用户的操作行为及操作结果,每天产生的日志可达到6亿条。为了快速进行海量日志的存储与查询,设计基于Hadoop的SMP日志分析系统框架如图3所示。其中,Hive将任务转化为MapReduce可以处理的形式,便于Map-Reduce的应用。
图3 基于Hadoop的SMP日志分析系统框架
SMP日志分析系统主要包括4个模块:日志采集模块,查询分析模块,存储处理模块,结果输出模块。
SMP所管控的设备每天都会产生大量日志,而系统所设计的采集模块可以将所有的日志传送到日志接收节点上,接收节点将日志导入到Hive中方便进行后续日志分发及分布式处理。将Hive模块部署在Hadoop集群中的Master节点上。
日志采集模块收集海量日志后,当执行日志分析查询时,查询分析模块可以将日志数据进行结构映射,接收用户发出的查询请求来提供大规模的查询分析功能。
利用Hadoop典型的HDFS+MapReduce处理模型,存储处理模块负责将日志传输进入HDFS,进行日志分布式存储,同时执行由Hive提交的MapReduce任务,这时Namenode开始初始化创建任务对象,根据划分信息分别创建Map和Reduce任务。初始化完成后,Namenode采用调度算法为每个Datanode分配计算任务,当所有任务完成后, Namenode标记任务为成功状态,将报告发给Hive,这时完成所有日志的分布式存储与分发处理。
最后查询用户可以通过结果输出模块将查询请求提交到Hive,Hive返回所有的日志查询结果,Hive与结果输出模块为一个相互交互的过程。
通过4个模块的交互过程,完成SMP所有日志的分布式存储与分发过程。基于Hadoop的SMP日志分析系统框架可以并发处理SMP所产生的海量日志,加快整体的SMP海量日志的查询速度,提高SMP在企业中的运行性能。
在云环境中,测试利用Hadoop并行计算思想处理SMP安全设备海量日志的查询性能,选择基于传统关系数据的Oracle多表关联查询方法作为结果对比的基准方法,验证本文系统的有效性。
3.1 实验环境与数据集
实验环境配置如下:基于CDH4构建一个集群云环境,全部机器配置为CentOS6.2,内存16 GB,磁盘空间200 GB。Vmhdmaster和Vmhdmaster-sec分别为一主一备Master节点,Vmhbasemaster和Vmhdmanager分别为2个不同功能的管理节点, Vmhdzkp01为Zookeeper节点,剩下10个为数据节点。各计算节点的配置及其在集群中的角色如表1所示。
实验数据集来源于SMP所产生的海量日志,主要包括主机、网络设备、安全设备、数据库、中间件等11种设备类型所产生的所有操作记录日志,日志记录字段包括操作时间、操作用户名、客户端IP、操作内容、操作结果,每条日志大小分别3 KB左右。在实验中,分别设置在查询日志数目为1×106~10× 106条的条件下,本文Hadoop方法与Oracle方法所需查询时间作为实验结果进行性能对比。
表1 实验所使用的集群环境
3.2 实验结果
将查询数设置为1×106条开始进行实验,在多组实验中,逐渐增加查询数目,直到查询数为10×106条,设置查询数增长步长为1×106条,以此测试在不同查询数条件下,2种方法所需查询时间,如图4所示,可以看出,随着查询数的增加,基准方法所需要的查询时间趋于指数级增长,其数据量的急剧增长给整个查询性能带来很大影响,表现为图4中较大斜率曲线的变化趋势;基于Hadoop方法的查询性能随着查询数据量的急剧增加,所需的查询时间变化趋于直线,性能稳定。
图4 查询时间与查询数的关系
在不同查询数目下,2种方法所需的查询时间如表2所示,可以看出,基于Oracle方法的查询时间远大于基于Hadoop的方法。当查询数(n)为1×106条时,测试时间达到90 s,而Hadoop方法却只需8 s,性能提升率为91%;当查询数增加至10×106条时, Oracle方法查询时间急速增加到1000 s,而Hadoop方法只需30 s,性能提升率达到98%。
表2 查询时间测试结果s
比较数据量的增长幅度对查询性能的影响,选择查询数分别为1×106,2×106,10×106的测试数据, 2种方法在不同数据增长比例的情况下,查询时间变化情况如表3所示。当查询数从1×106~2×106的数据量变化时,这时数据量的增长率为50%,Oracle方法与Hadoop方法查询时间分别提高25%和20%,性能差异度为5%;而当数据量增长率达到90%时,也即查询数从1×106急剧变化到10×106条的情况下, Oracle方法与Hadoop方法查询时间分别提升了95%和73%,性能差异度达到20%,结果说明在数据量急剧增长的情况下,基于Hadoop的方法相比Oracle方法查询时间性能提升幅度更大,在这种情况下,说明基本Hadoop的方法更适合海量数据处理。
表3 不同数据增长比例下查询时间的提升率比较
图5描述了分别在1×106和2×106查询数情况下的查询时间比较,可以得出,在2种不同查询数的条件下,基于Hadoop的查询性能远优于Oracle方法。查询数从1×106~2×106的增长过程中, Hadoop方法查询时间增加幅度较小,而Oracle方法的查询时间增加幅度较大,说明Hadoop方法在查询数目急剧增长的情况下,查询时间增长幅度却不大,基于Hadoop方法的日志分析系统在查询时具有更强的鲁棒性和稳定性。
图5 不同查询数下的查询时间对比
本文在研究云计算理论的基础上,基于Hadoop并行处理框架设计一种新的SMP海量日志分析系统,有效解决了SMP海量日志查询效率不高的问题。实验结果表明,在云计算环境下,基于Hadoop框架的查询性能相比基准方法提升90%以上,在提高查询性能的基础上,进一步提高了SMP平台在实际应用中系统整体响应速度。考虑到云计算的产生背景和技术特点,其面临的安全问题会越来越突出,因此,下一步将研究海量日志分析在云计算应用环境下的信息安全问题。
[1] 孟必平,王腾蛟,李红燕.分片位图索引:一种适用于云数据管理的辅助索引机制[J].计算机学报,2012, 35(11):2307-2313.
[2] 贾兴华,张云勇,陈清金.基于云计算的上网记录查询分析系统[J].电信技术,2011,(10):27-30.
[3] 罗军舟,金嘉晖,送爱波.云计算:体系架构与关键技术[J].通信学报,2011,32(7):3-21.
[4] Hayes B.Cloud Computing[J].Communications of the ACM,2008,51(7):9-11.
[5] Popa L,Yu M.Cloud Police:Taking Access Control Out of the Network[C]//Proceedings of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks. New York,USA:ACM Press,2010:1-6.
[6] 俞能海,郝 卓,徐甲甲.云安全研究进展综述[J].电子学报,2013,41(2):371-381.
[7] 刘振鹏,张 宁,卞昭玲.云计算技术在档案馆中的应用探讨[J].兰台世界,2010,(16):17-19.
[8] 蒋鸿玲,邵秀丽,李耀芳.基于MapReduce的僵尸网络在线监测算法[J].电子与信息学报,2013,35(7): 1732-1738.
[9] Dash D,Kantere V,Ailamaki A.An Economic Model for Self-tuned Cloud Caching[C]//Proceedings of the 25th International Conference on Data Engineering. New York,USA:IEEE Computer Society,2009:1687-1693.
[10] 冯登国,张 敏,张 妍.云计算安全研究[J].软件学报,2011,22(1):71-83.
[11] 张大朋,蔡 克,张 敏.云计算数据安全支撑平台架构研究[J].计算机研究与发展,2011,48(增刊): 261-267.
[12] Michael A,Armando F,Rean G,et al.A View of Cloud Computing[J].Communications of the ACM,2010, 53(4):50-58.
[13] Borthakur D.TheHadoopDistributedFileSystem: Architecture and Design[C]//Proceedings of the 26th Symposium on Mass Storage Systems and Technologies. Washington D.C.,USA:IEEE Computer Society,2010: 1-10.
[14] Ghemawat D J.MapReduce:Simplified Data Processing on Large Clusters[J].Communications of the ACM, 2008,51(1):137-149.
[15] 黎建辉,刘 勇,王卫华.MapReduce计算模型下的化合物LC-MS鉴定[J].计算机科学与探索,2011, 5(12):1094-1104.
[16] 蒋鸿玲,邵秀丽,李耀芳.基于MapReduce的僵尸网络在线监测算法[J].电子与信息学报,2013,35(7): 1732-1738.
[17] 张桂刚,李 超,张 勇.一种基于海量信息处理的云存储模型研究[J].计算机研究与发展,2012,49(增刊): 32-36.
编辑 陆燕菲
Design of Log Analysis System Based on Cloud Computing in Security Management Platform
CHEN Jie1,YU Yonggang1,LIU Mingheng1,PAN Shenghe1,XU Kefu2
(1.China Mobile(Shenzhen)Co.,Ltd.,Shenzhen 518048,China;2.Institute of Information Engineering, Chinese Academy of Sciences,Beijing100093,China)
With the development of cloud computing,massive data can be very easy to be stored and managed.Security Management Platform(SMP)is a support platform which realizes security management normalized operation.In a real application,this platform needs to process the massive information which generates from security device in real time. Considering the problem of low query efficiency,an efficient log analysis system based on the cloud computing for SMP is presented.It introduces the Hadoop distributed system infrastructure,and in the meantime,based on the study of transformation mission of the Hive,Hadoop Distributed File System(HDFS)and MapReduce are applied to effective storage and query of massive log.Experimental results show that,using proposed system can obtain a general increase in the query performance by about 90%compared with the existing Oracle storage method,and it can also further improve response speed of the SMP.
SecurityManagementPlatform(SMP);cloudcomputing;Hadooparchitecture;massivelog; parallel processing
陈 洁,于永刚,刘明恒,等.安全管理平台中基于云计算的日志分析系统设计[J].计算机工程, 2015,41(2):21-25.
英文引用格式:Chen Jie,Yu Yonggang,Liu Mingheng,et al.Design of Log Analysis System Based on Cloud Computing in Security Management Platform[J].Computer Engineering,2015,41(2):21-25.
1000-3428(2015)02-0021-05
:A
:TP311
10.3969/j.issn.1000-3428.2015.02.005
国家自然科学基金资助项目(61003295)。
陈 洁(1982-),女,工程师、博士,主研方向:信息安全,大数据分析,云计算;于永刚、刘明恒、潘盛合,工程师;徐克付,副研究员。
2014-03-05
:2014-07-18E-mail:chenxg58@126.com